Author: Copyright � 2009, MetaQuotes Software Corp.
Orders Execution
It Closes Orders by itself It automatically opens orders when conditions are reachedChecks for the total of open orders
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites

Profitability Reports

NZD/USD Oct 2024 - Jan 2025
104.00 %
Total Trades 6
Won Trades 2
Lost trades 4
Win Rate 33.33 %
Expected payoff 0.10
Gross Profit 14.40
Gross Loss -13.80
Total Net Profit 0.60
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
103.00 %
Total Trades 5
Won Trades 1
Lost trades 4
Win Rate 20.00 %
Expected payoff 0.08
Gross Profit 12.60
Gross Loss -12.20
Total Net Profit 0.40
-100%
-50%
0%
50%
100%
jpytest
//+------------------------------------------------------------------+
//|                                                      jpytest.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern double LotSize=0.1; //Ðàçìåð ëîòà äëÿ òîðãîâëè
int MagicNumber;
int OpenedOrder;

double ExtendPoint=1;   //äëÿ ÄÖ ñ äîïîëíèòåëüíûì çíàêîì ExtendPoint=10


int init()
  {
   return(0);
  }

int deinit()
  {
   return(0);
  }

int start()
 {
  MagicNumber=900;
  datetime curtime=iTime(NULL,PERIOD_M1,0);
  if (ExistPositions(Symbol(),-1 , MagicNumber)) {
   if ((TimeHour(curtime)==5 && TimeMinute(curtime)==55) || (TimeHour(curtime)==6 && TimeMinute(curtime)==0))
   OrderClose(OpenedOrder,LotSize,Ask,3);
  } 
  else {
   if (TimeHour(curtime)==4 && TimeMinute(curtime)==0) 
   iSetOrder(Symbol(), OP_SELL, 20*ExtendPoint,10000);
  }

  MagicNumber=901;
  if (ExistPositions(Symbol(),-1 , MagicNumber)) {
   if ((TimeHour(curtime)==12 && TimeMinute(curtime)==55) || (TimeHour(curtime)==13 && TimeMinute(curtime)==0))
   OrderClose(OpenedOrder,LotSize,Bid,3);
  } 
  else {
   if (TimeHour(curtime)==10 && TimeMinute(curtime)==0) 
   iSetOrder(Symbol(), OP_BUY, 15*ExtendPoint,10000);
  }

  return(0);
 }

bool iSetOrder(string symbol, int cmd, double stoploss, double takeprofit, string comment=""){
int Dist_SL =stoploss; // Çàäàííûé SL (pt)
  int Dist_TP =takeprofit; // Çàäàííûé TP (pt)
  double Prots=0.10; // Ïðîöåíò ñâîá. ñð.
  string Symb=symbol; // Ôèíàíñ. èíñòðóìåíò
  double i=0;
  double SL;
  double TP;
  color arr;
  double price;
   
   
//--------------------------------------------------------------- 2 --
  while(i<5) // Öèêë îòêðûòèÿ îðä.
  {
  if (cmd==OP_BUY) {
  SL=Bid - New_Stop(stoploss)*Point; // Âû÷èñëåíèå SL îòêð.
  TP=Bid + New_Stop(takeprofit)*Point; // Âû÷èñëåíèå TP îòêð.
  Alert("Ïîïûòêà îòêðûòü Buy. Îæèäàíèå îòâåòà..");
  price=Ask;
  arr=Maroon; 
  } else
  {
  SL=Ask + New_Stop(stoploss)*Point; // Âû÷èñëåíèå SL îòêð.
  TP=Ask - New_Stop(takeprofit)*Point; // Âû÷èñëåíèå TP îòêð.
  price=Bid;
  arr=Green; 
 
  }//if else
  if (stoploss==0) SL=0;
  if (takeprofit==0) TP=0;

  int ticket=OrderSend(symbol,cmd,LotSize,price,3,SL,TP,comment,MagicNumber,0,arr);//Îòêðûòèå Buy  
 
  //--------------------------------------------------------- 7 --
  if (ticket>0) // Ïîëó÷èëîñü :)
  {
  Alert ("Îòêðûò îðäåð Buy ",ticket);
  OpenedOrder=ticket;
  return(True);
  break; // Âûõîä èç öèêëà
  }
  //--------------------------------------------------------- 8 --
  int Error=GetLastError(); // Íå ïîëó÷èëîñü :(
  switch(Error) // Ïðåîäîëèìûå îøèáêè
  {
  case 135:Alert("Öåíà èçìåíèëàñü. Ïðîáóåì åù¸ ðàç..");
  RefreshRates(); // Îáíîâèì äàííûå
  i=i+1;
  continue; // Íà ñëåä. èòåðàöèþ
  case 136:Alert("Íåò öåí. Æä¸ì íîâûé òèê..");
  while(RefreshRates()==false) // Äî íîâîãî òèêà
  Sleep(1); // Çàäåðæêà â öèêëå
  continue; // Íà ñëåä. èòåðàöèþ
  case 146:Alert("Ïîäñèñòåìà òîðãîâëè çàíÿòà. Ïðîáóåì åù¸..");
  Sleep(500); // Ïðîñòîå ðåøåíèå
  i=i+0.3;
  RefreshRates(); // Îáíîâèì äàííûå
  continue; // Íà ñëåä. èòåðàöèþ
  }
  switch(Error) // Êðèòè÷åñêèå îøèáêè
  {
  case 2 : Alert("Îáùàÿ îøèáêà.");
  break; // Âûõîä èç switch
  case 5 : Alert("Ñòàðàÿ âåðñèÿ êëèåíòñêîãî òåðìèíàëà.");
  break; // Âûõîä èç switch
  case 64: Alert("Ñ÷åò çàáëîêèðîâàí.");
  break; // Âûõîä èç switch
  case 133:Alert("Òîðãîâëÿ çàïðåùåíà");
  break; // Âûõîä èç switch
  default: Alert("Âîçíèêëà îøèáêà ",Error);// Äðóãèå âàðèàíòû  
  }
  break; // Âûõîä èç öèêëà
  }
//--------------------------------------------------------------- 9 --
  return(False);  
}
int New_Stop(int Parametr) // Ïðîâåðêà ñòîï-ïðèê.
  {
  int Min_Dist=MarketInfo(Symbol(),MODE_STOPLEVEL);// Ìèíèì. äèñòàíöèÿ
  if (Parametr < Min_Dist) // Åñëè ìåíüøå äîïóñò.
  {
  Parametr=Min_Dist; // Óñòàíîâèì äîïóñò.
  Alert("Óâåëè÷åíà äèñòàíöèÿ ñòîï-ïðèêàçà.");
  }
  return(Parametr); // Âîçâðàò çíà÷åíèÿ
  }

bool ExistPositions(string sy="", int op=-1, int mn=-1, datetime ot=0) {
  int i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
  if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
  if (OrderSymbol()==sy || sy=="") {
  if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
  if (op<0 || OrderType()==op) {
  if (mn<0 || OrderMagicNumber()==mn) {
  if (ot<=OrderOpenTime()) return(True);
  }
  }
  }
  }
  }
  }
  return(False);
}

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---