포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 607

 
안녕하세요, EA가 대기 주문 만 설정하고 동반하지 않는 경우 오류를 처리할 수 있어야 하나요?
 
Example2 :
안녕하세요, EA가 보류 중인 주문만 설정하는 경우 오류를 처리할 수 있어야 합니까?

네.

예를 들어 .

 
artmedia70 :

네.

예를 들어 .


이 함수는 오류 처리에 적합합니까?
 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 :
이 함수는 오류 처리에 적합합니까?

너무 짧습니다. 이것조차도 완벽하지 않습니다.

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

따라서 함수가 1을 반환하면 주문 시도를 반복하고 0이면 주문 열기 기능을 종료합니다.

 
안녕하세요! 누구든지 MT4에서 디버깅을 사용합니까? MT5에서는 모든 것이 작동하지만 여기서는 작동하지 않습니다.
 

시민 여러분, 왜 알파리 터미널에서 주문을 할 수 없는지 누가 알겠습니까?

OrderSend 기능 은 다음과 같습니다.

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

0과 같은 매개변수가 없습니다. 확인했습니다.

터미널 조건에 따른 정지 및 이익을 위한 최소 거리 = 0.1

터미널은 오류 130을 제공하고 잘못된 중지 또는 이익에 대해 씁니다.

매개변수 SL 및 TP는 각각 11 및 1입니다(정규화 후).

Aforex, Diven FX, ForexClub, AlfaForex 터미널에서는 동일한 코드로 문제가 없습니다.

 
fmv_for_a_way :

시민 여러분, 왜 알파리 터미널에서 주문을 할 수 없는지 누가 알겠습니까?

OrderSend 기능은 다음과 같습니다.

0과 같은 매개변수가 없습니다. 확인했습니다.

터미널 조건에 따른 정지 및 이익을 위한 최소 거리 = 0.1

터미널은 오류 130을 제공하고 잘못된 중지 또는 이익에 대해 씁니다.

매개변수 SL 및 TP는 각각 11 및 1입니다(정규화 후).

Aforex, Diven FX, ForexClub, AlfaForex 터미널에서는 동일한 코드로 문제가 없습니다.


정지 없이 매수/매도하고 sl=0;tp=0을 취한 다음 수정-->sl=100;tp=300
 
pako :

정지 없이 매수/매도하고 sl=0;tp=0을 취한 다음 수정-->sl=100;tp=300


그런 생각은 이미 절망에서 찾아왔다 ...

그러나 문제는 올바르게 지정된 모든 매개 변수를 사용하여 주문이 이루어지지 않는 이유입니다.

이것은 금색 차트이기 때문에 숫자 11과 1은 매우 정확합니다. 번역에서 이것은 10점과 110점을 의미합니다.

중지 및 이익의 가격과 매개변수를 확인했습니다. 이익과 정지 사이 에는 정확히 120포인트가 있으며, 어떤 이유로 시가 = 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]

보류중인 주문 을 시도하는 것도 아무 것도 가져 오지 않았습니다....

모든 것이 점점 더 훌륭합니다.

 

모두에게 좋은 하루!

다음 조건 을 인코딩하는 가장 좋은 방법을 알려주세요

예외 없이 1부터 20까지의 모든 캔들이 약세라면 (각 캔들의 시가와 종가 사이의 포인트 수는 중요하지 않음)

주문을 엽니다.

고맙습니다.