MQL5言語をゼロから独学で学ぶ - ページ 79

 
Valeriy Yastremskiy:

アルテムTrishkinは私に同じ質問に答えた、それはリンク(uppersand)なので、それは任意の場所に立つことができます。

ヴァレリーさん、ありがとうございました。もし、同じような問題にぶつかったら、この点を必ず検討します。

メリー・クリスマス

敬具 ウラジミール

 

皆さん、ハッピートレードでご機嫌をとってくださいね。

プログラミング言語「MQL5」の勉強を続けています。以前公開 されていたコードを少し修正したところ、このような結果になりました。

input string Symbol_Main="EURUSD";          //Валютная пара, на которую ставим советник
input ENUM_TIMEFRAMES Time_Frame=PERIOD_H1; //Таймфрейм, на который ставим советник

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   /* Определим график валютной пары и таймфрейм, на который будем устанавливать советник. */
   /* Если текущий график валютной пары и текущий таймфрейм совпадают со входными параметрами */
   if(_Symbol==Symbol_Main && _Period==Time_Frame)
     {
      /* выводим окно сообщений на торговом терминале и продолжаем работу советника */
      MessageBox("Работа советника разрешена! Продолжим!");
      return(INIT_SUCCEEDED); //возвращаем для функции OnInit значение означающее "удачная инициализация"
     }
   /* Если текущий график валютной пары и текущий таймфрейм не совпадают со входными параметрами */
   if(_Symbol!=Symbol_Main && _Period!=Time_Frame)
     {
      /* выводим окно сообщений на торговом терминале и закрываем советник */
      MessageBox("Не совпадают валютная пара и таймфрейм! Выходим!");
      return(INIT_FAILED); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
     }
   /* Если текущий график валютной пары не совпадает со входным параметром */
   if(_Symbol!=Symbol_Main)
     {
      /* выводим окно сообщений на торговом терминале и закрываем советник */
      MessageBox("Не совпадает валютная пара! Выходим!");
      return(INIT_FAILED); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
     }
   /* Если текущий таймфрейм не совпадает со входным параметром */
   if(_Period!=Time_Frame)
     {
      /* выводим окно сообщений на торговом терминале и закрываем советник */
      MessageBox("Не совпадет таймфрейм! Выходим!");
      return(INIT_FAILED); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

もしかしたら、誰かに必要とされるかもしれない。

ウラジミールさん、ありがとうございます。

 

皆さん、ご機嫌いかがでしょうか?

少し時間ができたので、自習を続けることにしました。しかし、突然問題にぶつかった。先ほど、Expert Advisor Trailing_Stop_(v.2).mq5 で、トレードサーバーにこのようなリクエストをしたところ。

   /*  Создадим запрос на сервер и получим ответ с результатом */
   MqlTradeRequest request= {0};
   MqlTradeResult result= {0};

は、コードのコンパイル時に問題はありませんでした。これで、コンパイラは次のようなエラーを発生するようになりました。

enum'ENUM_TRADE_REQUEST_ACTIONS' に 0 を変換できない Trailing_Stop_(v.2).mq5 411 30

中括弧で囲んだリクエストの 後のゼロを削除すると

   /*  Создадим запрос на сервер и получим ответ с результатом */
   MqlTradeRequest request= {};
   MqlTradeResult result= {0};

その時はエラーにならないんですけどね。よろしくお願いします。

ウラジミールさん、ありがとうございます。

 
MrBrooklin:

皆さん、ご機嫌いかがでしょうか?

少し時間ができたので、自習を続けることにしました。しかし、突然問題にぶつかった。先ほど、Expert Advisor Trailing_Stop_(v.2).mq5 で、トレードサーバーにこのようなリクエストをしたところ。

は、コードのコンパイル時に問題はありませんでした。これで、コンパイラは次のようなエラーを発生するようになりました。

enum'ENUM_TRADE_REQUEST_ACTIONS' に 0 を変換できない Trailing_Stop_(v.2).mq5 411 30

中括弧で囲んだリクエストの 後のゼロを削除すると

その時はエラーにならないんですけどね。よろしくお願いします。

ウラジミールさん、ありがとうございます。

はい、今はゼロにするためにゼロを書かないでください。

ENUM_TRADE_REQUEST_ACTIONS で、値 "0" を欠く列挙型 であるためエラーとなります。

cannot convert 0 to enum 'ENUM_TRADE_REQUEST_ACTIONS'


というのが正しい方法でしょう。

MqlTradeRequest request={};

 
Vladimir Karputov:

そう、今はゼロにするためにゼロを書かないことです。

ウラジミールさん、ありがとうございました。

長く生きて、長く学ぶ!MQL5 Referenceの 開発者がこの点を随所で修正してくれれば、最高なんですけどね。

敬具 ウラジミール

 

皆さん、おはようございます。

プログラミング言語「MQL5」の独学を続けています。ZigZagインジケータからシグナルを取得する関数を書いてみることにしました。徹底的に勉強し始めたら、すぐに疑問が湧いてきました。その入力パラメーターに あるんです。

input int Depth      = 12;  // Depth
input int Deviation  = 5;   // Deviation
input int Backstep   = 3;   // Backstep

私は英語が堪能ではないので、Google翻訳を使わせてもらっています。純粋な訳は何か。

Depth - глубина
Deviation - отклонение
Backstep - шаг назад

質問です。

  1. 深さなら、何の深さ?
  2. 偏差がある場合、何からの偏差か、どのようなパラメータまたは値からの偏差か?
  3. 一歩後退というなら、なぜ一歩後退なのか。前に進んでいないのでしょうか?

専門家の皆様、わかるまで教えてください

敬具 ウラジミール

 
MrBrooklin:

皆さん、おはようございます。

プログラミング言語「MQL5」の独学を続けています。ZigZagインジケータからシグナルを取得する関数を書いてみることにしました。徹底的に勉強し始めたら、すぐに疑問が湧いてきました。その入力パラメーターに あるんです。

私は英語が堪能ではないので、Google翻訳を使わせてもらっています。純粋な訳は何か。

質問です。

  1. 深さなら、何の深さ?
  2. 偏差がある場合、何からの偏差か、どのようなパラメータまたは値からの偏差か?
  3. 一歩後退というなら、なぜ一歩後退なのか。前に進んでいないのでしょうか?

専門家のみなさん、わかるまで教えてください

敬具 ウラジミール

初級編 - 助けになる検索、 " 前進しない " - 全体のストーリーはここで後進する!!!!:-)

https://www.mql5.com/ru/code/7796


深さは、2番目の高(低)より少ない(より)前のものよりも偏差ピップで、すなわち、ジグザグは常に発散することができますが、収束(または全体)より偏差によって、ジグザグは、深さのバーの後にのみできますバーの最小数である。バックステップは、高値(安値)間の最小のバー数です。


検索ボックスに、次のように入力します。例:ジグザグ・パラメーター、https://www.mql5.com/ru/search#!keyword=%D0%B7%D0%B8%D0%B3%20%D0%B7%D0%B0%D0%B3%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B&amp;page=2</b></p>

PSの初歩的なことですが...

ZigZag
ZigZag
  • www.mql5.com
ZigZag отслеживает и соединяет между собой крайние точки графика отстоящие друг от друга не менее чем на заданный процент по шкале цены.
 
Roman Shiredchenko:

初級 - 助けになる検索、 " 前に進んでいない " - 全体の話はここで後ろに動いている!!!!:-)

https://www.mql5.com/ru/code/7796


深さは、偏差ピップによって前のものよりも小さい(より)第二最大(最小)が存在しませんバーの最小数であり、すなわち、ジグザグは常に発散することができますが、それは(または全体をシフト)より偏差によって、ジグザグが唯一の深さバー後にできる収束することができます。バックステップは、高値(安値)間の最小のバー数です。


検索ボックスに、次のように入力します。例:ジグザグ・パラメーター、https://www.mql5.com/ru/search#!keyword=%D0%B7%D0%B8%D0%B3%20%D0%B7%D0%B0%D0%B3%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B&amp;page=2</b></p>

PSの初歩的なことですが...

ローマンさん、どうもありがとうございました。最も簡潔で、かつ分かりやすい説明をしていただきました。

ウラジミールさん、謹んで申し上げます。

 
MrBrooklin:

ローマンさん、どうもありがとうございました。最も簡潔で、かつ理解しやすい説明をしていただきました。

ウラジミールさん、謹んで申し上げます。

チェックありがとうございます!友好的です!陰口は言いません。それは笑顔で!
 

皆さん、ごきげんよう。

あるExpert Advisorをテストしているときに、問題が発生しました。EA初期化関数のコードは以下の通りです。

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- достаточно ли количество баров для работы
   if(Bars(_Symbol,_Period)<60) // общее количество баров на графике меньше 60?
     {
      Alert("На графике меньше 60 баров, советник не будет работать!!");
      return(-1);
     }
//--- получить хэндл индикатора Bollinger Bands и DEMA
   BolBandsHandle=iBands(NULL,PERIOD_M30,bands_period,bands_shift,deviation,PRICE_CLOSE);
   demaHandle=iDEMA(NULL,PERIOD_D1,dema_period,0,PRICE_CLOSE);
//--- Нужно проверить, не были ли возвращены значения Invalid Handle
   if((BolBandsHandle<0) || (demaHandle<0))
     {
      Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
      return(-1);
     }

   return(0);
  }

EAをテストして いる間、ログにメッセージが表示される。

2021.10.31 13:19:25.752 Core 2  genetic pass (0, 288) tested with error "OnInit returned non-zero code -1" in 0:00:00.000
2021.10.31 13:19:26.835 Core 2  genetic pass (0, 298) tested with error "OnInit returned non-zero code -1" in 0:00:00.000
2021.10.31 13:19:26.921 Core 1  genetic pass (0, 42) tested with error "OnInit returned non-zero code -1" in 0:00:00.000
2021.10.31 13:19:27.847 Core 2  genetic pass (0, 318) tested with error "OnInit returned non-zero code -1" in 0:00:00.000
2021.10.31 13:19:27.848 Core 2  genetic pass (0, 326) tested with error "OnInit returned non-zero code -1" in 0:00:00.000
2021.10.31 13:19:29.907 Core 2  genetic pass (0, 359) tested with error "OnInit returned non-zero code -1" in 0:00:00.000
2021.10.31 13:19:29.907 Core 2  genetic pass (0, 371) tested with error "OnInit returned non-zero code -1" in 0:00:00.000
2021.10.31 13:19:30.009 Core 1  genetic pass (0, 102) tested with error "OnInit returned non-zero code -1" in 0:00:00.000
2021.10.31 13:19:30.009 Core 1  genetic pass (0, 105) tested with error "OnInit returned non-zero code -1" in 0:00:00.000
2021.10.31 13:19:31.044 Core 1  genetic pass (0, 122) tested with error "OnInit returned non-zero code -1" in 0:00:00.000

и т.д.

ボリンジャーバンドと DEMA 指標のハンドルのチェックに問題があることがわかりました。私はすでにボリンジャーバンドとDEMA指標のハンドルをチェックしたので、私は質問を持っている:私はこれらのエラーを修正するために私のコードで何を変更する必要がありますか?

ウラジミールさん、ありがとうございます。