どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 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では全て動いているのですが、こちらでは動きません。
[Deleted]  

市民の皆さん、アルパリの端末で注文ができない理由を教えてください。

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.

端末はエラー130を発生させ、無効な利益またはストップについて書き込む。

SLとTPのパラメータはそれぞれ11と1(正規化後)。

Aforex, Diven FX, ForexClub, AlfaForexの端末では、同じコードで問題なく使用できます。

削除済み  
fmv_for_a_way:

市民の皆さん、アルパリの端末で注文ができない理由を教えてください。

OrderSend関数は次のようなものです。

0に等しいパラメータは存在しない。確認しました。

端末の条件による最小停止距離と利益距離=0.

端末はエラー130を発生させ、無効な利益またはストップについて書き込む。

SLとTPのパラメータはそれぞれ11と1(正規化後)。

Aforex, Diven FX, ForexClub, AlfaForexの端末では、同じコードで問題なく使用できます。


ストップとテイクアウェイなしの買い/売り sl=0;tp=0、その後修正-->sl=100;tp=300
[Deleted]  
pako:

ストップ&テイクアウトなしの買い/売り sl=0;tp=0、その後修正-->sl=100;tp=300


その思いは、すでに自棄になっている...。

しかし、問題は、すべてのパラメータが正しいのに、なぜ発注されないのかということです。

これはゴールドチャートなので、11と1という数字はかなり正しいです。訳すと10pipsと110pipsという意味です。

価格とストップとプロフィットのパラメーターを確認しました。利益とストップの間にちょうど120pipsあり、なぜか始値=0.000となっています。

[Deleted]  
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までのローソク足がすべて例外 なく弱気だった場合(各ローソク足の始点と終点の間のポイント数は関係ない)。

注文を開くには

もう何も読めない、ただ注文を開けるだけ。