[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 379

 

böyle bir tesadüf bulutu ve ben manuel işlem yaptım sonuç var eurusd 5 dakika zamanınız var mı kontrol edin....

Bu yüzden bu stratejiye dayalı bir Uzman Danışman oluşturmak istiyorum, sadece _2 koşulunda anlaşmaları kapatmam gerekiyor :), kahretsin, hiç çözemiyorum, kapanış işlevini bile aldım ve bana hata veriyor .....

 
DanLett :
Yani bu işlev, her şey olmadan tek başına hata üretir mi, üretmez mi?
 

yeniden oluşturuldu, her şeyi sildi, ancak işlevden ayrıldı ve kaydedildi - ancak hata yok

ama sadece int start derhal hata ekleyin ... sorun ne olabilir?

 
int start()
  {
void DeleteOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ot;
  
 
  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot==OP_BUYLIMIT || ot==OP_BUYSTOP || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) {
        if (OrderSymbol()==sy && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) {
            OrderDelete(OrderTicket(), CLR_NONE);
          }
        }
      }
    }
  }
}

  }
 
Dengesiz parantezler.
 
int start()
 {
 }
   
 //+----------------------------------------------------------------------------+
//| Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                    |
//+----------------------------------------------------------------------------+
//| Версия   : 13.06.2007                                                      |
//| Описание : Удаление ордеров. Версия функции для тестов на истории.         |
//+----------------------------------------------------------------------------+
//| Параметры:                                                                 |
//| sy - наименование инструмента   (NULL - текущий символ)                    |
//| op - операция                   ( -1  - любой ордер)                       |
//| mn - MagicNumber                ( -1  - любой магик)                       |
//+----------------------------------------------------------------------------+
void DeleteOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ot;
  
 
  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot==OP_BUYLIMIT || ot==OP_BUYSTOP || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) {
        if (OrderSymbol()==sy && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) {
            OrderDelete(OrderTicket(), CLR_NONE);
         }
        }
      }
    }
  }
}
 
MQL4'te dahili fonksiyonlar yoktur, sadece harici fonksiyonlar vardır.
 
şimdi kontrol edeceğim
 

çalışmıyor...

o zaman bu fonksiyonla koşul_2 altındaki siparişi kapatmak için siparişi kapatmak

 if ((High[ 2 ]==High[ 1 ])||(Close[ 2 ]==High[ 1 ])||(High[ 2 ]==Open[ 1 ]))

İşte koşul_1'de bir ticaret açmanın koşulu

   if (Close[ 2 ]<Open[ 2 ])
 {
   if (Close[ 1 ]>Open[ 1 ])
   {
       if ( OrdersTotal ()<= 0 )
      {
         if ((Low[ 2 ]==Low[ 1 ])||(Close[ 2 ]==Low[ 1 ])||(Low[ 2 ]==Open[ 1 ]))
          {
         OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 , 0 , 0 , "DLSexp" , 12345 , 0 , Green );
          }
      }
   }
 }
 

DanLett :

Prosedürü şöyle çağırın, örneğin:

 int start()
 {
 DeleteOrders( NULL , - 1 , - 1 );
 }

//+----------------------------------------------------------------------------+
//| Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                    |
//+----------------------------------------------------------------------------+
//| Версия   : 13.06.2007                                                      |
//| Описание : Удаление ордеров. Версия функции для тестов на истории.         |
//+----------------------------------------------------------------------------+
//| Параметры:                                                                 |
//| sy - наименование инструмента   (NULL - текущий символ)                    |
//| op - операция                   ( -1  - любой ордер)                       |
//| mn - MagicNumber                ( -1  - любой магик)                       |
//+----------------------------------------------------------------------------+

void DeleteOrders( string sy= "" , int op=- 1 , int mn=- 1 ) {
   int i, k= OrdersTotal (), ot;
  
 
   if (sy== "" || sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
      ot= OrderType ();
       if (ot==OP_BUYLIMIT || ot==OP_BUYSTOP || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) {
         if ( OrderSymbol ()==sy && (op< 0 || ot==op)) {
           if (mn< 0 || OrderMagicNumber ()==mn) {
             OrderDelete ( OrderTicket (), CLR_NONE );
         }
        }
      }
    }
  }
}
Neden: