Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 607

 
Ciao, se un EA imposta solo gli ordini pendenti e non li segue, dovrebbe essere in grado di gestire gli errori?
 
Example2:
Ciao, se un EA imposta solo ordini pendenti, dovrebbe essere in grado di gestire gli errori?

Sì.

Per esempio.

 
artmedia70:

Sì.

Per esempio.


Una tale funzione sarebbe adatta alla gestione degli errori?
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:
Una funzione come questa sarebbe adatta alla gestione degli errori?

Qualcosa è troppo corto. Anche questo non è completo.

//*********************ф-ия обработки ошибок*************************|
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); // Выход из функции
   }
}//******************************************************************|

Di conseguenza, se la funzione restituisce 1, dovremmo provare a piazzare di nuovo un ordine; se restituisce 0, usciremo dalla funzione per aprire gli ordini.

 
Ciao a tutti, qualcuno usa il debug in MT4? In MT5 tutto funziona qui non va.
 

Cittadini, potete dirmi perché il terminale Alpari non è in grado di effettuare un ordine?

La funzione OrderSend si presenta così

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

Non ci sono parametri uguali a zero. Ho controllato.

La distanza minima di arresto e di guadagno secondo le condizioni del terminale = 0,1.

Il terminale genera l'errore 130 e scrive di un profitto o uno stop non valido.

I parametri SL e TP sono 11 e 1 (dopo la normalizzazione), rispettivamente.

Sui terminali Aforex, Diven FX, ForexClub, AlfaForex - nessun problema con lo stesso codice.

 
fmv_for_a_way:

Cittadini, potete dirmi perché il terminale Alpari non è in grado di effettuare un ordine?

La funzione OrderSend si presenta così

Non ci sono parametri uguali a zero. Ho controllato.

La distanza minima di arresto e di guadagno secondo le condizioni del terminale = 0,1.

Il terminale genera l'errore 130 e scrive di un profitto o uno stop non valido.

I parametri SL e TP sono 11 e 1 (dopo la normalizzazione), rispettivamente.

Sui terminali Aforex, Diven FX, ForexClub, AlfaForex - nessun problema con lo stesso codice.


comprare/vendere senza stop e takeaway sl=0;tp=0, poi modificare-->sl=100;tp=300
 
pako:

Comprare/vendere senza stop e takeout sl=0;tp=0, poi modificare-->sl=100;tp=300


Il pensiero mi è già venuto per disperazione...

Tuttavia, la domanda è perché con tutti i parametri corretti l'ordine non viene effettuato.

Poiché questo è un grafico dell'oro, i numeri 11 e 1 sono abbastanza corretti. Tradotto significa 10 e 110 pips.

Ho controllato i prezzi e i parametri di stop e di profitto. Ci sono esattamente 120 pip tra il profitto e lo stop, e per qualche motivo il prezzo di apertura = 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]

Il tentativo di piazzare un ordine in sospeso non ha portato a nulla ....

Diventa sempre più miracoloso.

 

Buona giornata a tutti!

Potreste dirmi il modo migliore per codificare la seguente condizione

Se tutte le candele da 1 a 20 sono ribassiste senza eccezione (il numero di punti tra l'apertura e la chiusura di ogni candela non ha importanza)

Per aprire un ordine.

Non posso leggere altro, solo aprire un ordine.

Motivazione: