Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 607

 
Merhaba, EA yalnızca bekleyen siparişleri belirler ve bunlara eşlik etmezse, hataları işleyebilmeli midir?
 
Example2 :
Merhaba, EA yalnızca bekleyen siparişleri ayarlarsa, hataları işleyebilmeli mi?

Evet.

Örneğin .

 
artmedia70 :

Evet.

Örneğin .


Bu işlev hata işleme için uygun mu?
 int ERRORS ( int Error)   // Error - номер ошибки  
  {
   if (Error== 0 )
       return ( 0 );         // Нет ошибки      
   // 4-торговый сервер занят,132-рынок закрыт,137-брокер занят
   if (Error== 4 ||Error== 132 ||Error== 137 )  
      {
       Sleep ( 240000 );     // Пауза 240 сек.
       return ( 1 );         // Сообщаем о преодол. ошибке
      }
   // 128,142,143 - истек срок ожидания и т.д.
   if (Error== 128 ||Error== 142 ||Error== 143 ) 
      {      
       Sleep ( 60000 );     // Пауза 60 сек.
       return ( 1 );         // Сообщаем о преодол. ошибке 
      }    
   // 135-цена изменилась,138-цена устарела
   if (Error== 135 ||Error== 138 )               
      {      
       return ( 1 );         // Сообщаем о преодол. ошибке
      }        
   // 6-нет связи,129-неправильные цены,
   // 130-неправильные стопы,136-нет цен
   if (Error== 6 ||Error== 129 ||Error== 130 ||   
  Error== 136 ||Error== 137 ||Error== 138 )    
      {
       Sleep ( 5000 );       // Пауза 5 сек. 
       return ( 1 );         // Сообщаем о преодол. ошибке
      }
   // 146-подсистема торговли занята
   if (Error== 146 )               
      {      
       // Пока подсистема занята
       while ( IsTradeContextBusy ())
         {
         Sleep ( 10 );     // Пауза 0.01 сек.
         }
       return ( 1 );         // Сообщаем о преодол. ошибке
      }         
   // Критическая ошибка
   Alert ( "Ошибка №" ,Error, ". Дальнейшая работа советника невозможна." ); 
   return ( 2 );           // Сообщаем о критич. ошибке
  }
 
Example2 :
Bu işlev hata işleme için uygun mu?

Çok kısa bir şey. Bu bile mükemmel değil.

 //*********************ф-ия обработки ошибок*************************|
int Fun_Error( int Error) 
{
       switch (Error)
   { // Преодолимые ошибки
   case 0 : return ( 1 );
   case 4 : //Print("Торговый сервер занят. Пробуем ещё раз...");
   Sleep ( 500 ); // Простое решение
   return ( 1 ); // Выход из функции
   case 128 :   //Истек срок ожидания совершения сделки
   return ( 1 );
   case 129 : //Print("Цена изменилась. Пробуем ещё раз...");
   return ( 1 ); // Выход из функции
   case 132 : //Print("Рынок закрыт. Пробуем ещё раз...");
   Sleep ( 123000 ); // Это было сделано для робо. У них первые 2 минуты в понедельник рынок закрыт, а надо было ставить ордера в 00:00
   return ( 1 ); // Выход из функции
   case 135 : //Print("Цена изменилась. Пробуем ещё раз...");
   RefreshRates (); // Обновим данные
   return ( 1 ); // Выход из функции
   case 136 : //Print("Нет цен. Ждём новый тик...");
   while ( RefreshRates ()== false ) // До нового тика
   Sleep ( 1 ); // Задержка в цикле
   return ( 1 ); // Выход из функции
   case 137 : //Print("Брокер занят. Пробуем ещё раз...");
   Sleep ( 500 ); // Простое решение
   return ( 1 ); // Выход из функции
   case 138 : //Print("Новые цены. Пробуем ещё раз...");
   Sleep ( 1 ); // Задержка в цикле
   return ( 1 ); // Выход из функции
   case 146 : //Print("Подсистема торговли занята. Пробуем ещё...");
   Sleep ( 500 ); // Простое решение
   return ( 1 ); // Выход из функции
   case 4107 : //Print("Неправильный параметр цены для торговой функции. Пробуем ещё...");
   Sleep ( 50 ); // Простое решение
   return ( 1 ); // Выход из функции
// Критические ошибки
   case 1 :
   return ( 0 );
   case 2 : Alert ( "Общая ошибка. Перегрузите терминал и\или компьютер." );
   return ( 0 ); // Выход из функции
   case 5 : Alert ( "Старая версия терминала." );
   //Work=false; // Больше не работать
   return ( 0 ); // Выход из функции
   case 64 : Alert ( "Счет заблокирован." );
   //Work=false; // Больше не работать
   return ( 0 ); // Выход из функции
   case 130 : Alert ( "Неправильные стопы." );
   return ( 0 ); // Выход из функции
   case 133 : Alert ( "Торговля запрещена." );
   return ( 0 ); // Выход из функции
   case 134 : Alert ( "Недостаточно денег для совершения операции." );
   return ( 0 ); // Выход из функции
   case 4051 : Alert ( "Недопустимое значение параметра функции." );
   return ( 0 ); // Выход из функции
   case 4108 : Alert ( "Неверный номер тикета." );
   return ( 0 ); // Выход из функции
   default : //Print("Возникла ошибка ",Error); // Другие варианты
   return (0); // Выход из функции
   }
} //******************************************************************|

Buna göre, eğer fonksiyon 1 döndürdüyse, emir verme girişimini tekrarlıyoruz, eğer 0 ise, emir açma fonksiyonundan çıkıyoruz.

 
Merhaba! MT4'te hata ayıklama kullanan var mı? MT5'te her şey çalışıyor, burada çalışmıyor.
 

Vatandaşlar anlatın kim bilir neden Alpari terminalinde sipariş vermek mümkün değil.

OrderSend işlevi şöyle görünür

ticket_b = OrderSend ( Symbol (), OP_BUY , Lot_b, ( MarketInfo ( Symbol (), MODE_ASK )), 3 , (( MarketInfo ( Symbol (), MODE_ASK ))-SL), (( MarketInfo ( Symbol (), MODE_ASK ))+TP), "V 5.11 market" , Magic, 0 , CLR_NONE);

SL = NormalizeDouble (StopLoss * RealPoint, Digits );
TP = NormalizeDouble (TakeProfit * RealPoint, Digits );

Параметры 
Lot_b
Magic

Объявлены и посчитаны ранее.

RealPoint посчитан и равен 0 , 1

Sıfıra eşit parametre yoktur. Kontrol.

Terminal koşullarına göre durma ve kar için minimum mesafe = 0.1

Terminal 130 hatası veriyor ve yanlış bir durdurma veya kar hakkında yazıyor.

SL ve TP parametreleri sırasıyla 11 ve 1'dir (normalizasyondan sonra).

Aforex, Diven FX, ForexClub, AlfaForex terminallerinde - aynı kodla sorun yok.

 
fmv_for_a_way :

Vatandaşlar anlatın kim bilir neden Alpari terminalinde sipariş vermek mümkün değil.

OrderSend işlevi şöyle görünür

Sıfıra eşit parametre yoktur. Kontrol.

Terminal koşullarına göre durma ve kar için minimum mesafe = 0.1

Terminal 130 hatası veriyor ve yanlış bir durdurma veya kar hakkında yazıyor.

SL ve TP parametreleri sırasıyla 11 ve 1'dir (normalizasyondan sonra).

Aforex, Diven FX, ForexClub, AlfaForex terminallerinde - aynı kodla sorun yok.


durmadan al/sat ve sl=0;tp=0 alın, ardından değiştirin-->sl=100;tp=300
 
pako :

durmadan al/sat ve sl=0;tp=0 alın, ardından değiştirin-->sl=100;tp=300


Böyle bir düşünce zaten umutsuzluktan ziyaret etti ...

Ancak soru, tüm doğru belirtilen parametrelerle siparişin neden verilmediğidir.

Bu altın bir tablo olduğundan, 11 ve 1 sayıları oldukça doğrudur. Çeviride bu, 10 ve 110 puan anlamına gelir.

Kontrol edilen fiyatlar ve stop ve kar parametreleri. Kar ve stop arasında tam 120 puan var ve bir nedenden dolayı açılış fiyatı = 0.000.

 
2014.05.21 10:35:52.480 '6991883': order buy stop 0.25 XAUUSD opening at 1293.100 sl: 1282.100 tp: 1294.100 failed [Invalid S/L or T/P]

Bekleyen bir sipariş verme girişimi de hiçbir şey getirmedi....

Her şey giderek daha harika.

 

Hepinize iyi günler!

Lütfen bana aşağıdaki durumu kodlamanın en iyi yolunu söyleyin

İstisnasız 1'den 20'ye kadar olan tüm mumlar düşüş gösteriyorsa (her bir mumun açılması ve kapanması arasındaki nokta sayısı önemli değildir)

Bir sipariş açın.

Teşekkür ederim.