inputstring Symbol_Main="EURUSD"; //Валютная пара, на которую ставим советникinputENUM_TIMEFRAMES Time_Frame=PERIOD_H1; //Таймфрейм, на который ставим советник//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
/* Определим график валютной пары и таймфрейм, на который будем устанавливать советник. *//* Если текущий график валютной пары и текущий таймфрейм совпадают со входными параметрами */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 initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- достаточно ли количество баров для работы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 Handleif((BolBandsHandle<0) || (demaHandle<0))
{
Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
return(-1);
}
return(0);
}
アルテムTrishkinは私に同じ質問に答えた、それはリンク(uppersand)なので、それは任意の場所に立つことができます。
ヴァレリーさん、ありがとうございました。もし、同じような問題にぶつかったら、この点を必ず検討します。
メリー・クリスマス
敬具 ウラジミール
皆さん、ハッピートレードでご機嫌をとってくださいね。
プログラミング言語「MQL5」の勉強を続けています。以前公開 されていたコードを少し修正したところ、このような結果になりました。
もしかしたら、誰かに必要とされるかもしれない。
ウラジミールさん、ありがとうございます。
皆さん、ご機嫌いかがでしょうか?
少し時間ができたので、自習を続けることにしました。しかし、突然問題にぶつかった。先ほど、Expert Advisor Trailing_Stop_(v.2).mq5 で、トレードサーバーにこのようなリクエストをしたところ。
は、コードのコンパイル時に問題はありませんでした。これで、コンパイラは次のようなエラーを発生するようになりました。
enum'ENUM_TRADE_REQUEST_ACTIONS' に 0 を変換できない Trailing_Stop_(v.2).mq5 411 30
中括弧で囲んだリクエストの 後のゼロを削除すると
その時はエラーにならないんですけどね。よろしくお願いします。
ウラジミールさん、ありがとうございます。
皆さん、ご機嫌いかがでしょうか?
少し時間ができたので、自習を続けることにしました。しかし、突然問題にぶつかった。先ほど、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" を欠く列挙型 であるためエラーとなります。
というのが正しい方法でしょう。
MqlTradeRequest request={};そう、今はゼロにするためにゼロを書かないことです。
ウラジミールさん、ありがとうございました。
長く生きて、長く学ぶ!MQL5 Referenceの 開発者がこの点を随所で修正してくれれば、最高なんですけどね。
敬具 ウラジミール
皆さん、おはようございます。
プログラミング言語「MQL5」の独学を続けています。ZigZagインジケータからシグナルを取得する関数を書いてみることにしました。徹底的に勉強し始めたら、すぐに疑問が湧いてきました。その入力パラメーターに あるんです。
私は英語が堪能ではないので、Google翻訳を使わせてもらっています。純粋な訳は何か。
Depth - глубинаDeviation - отклонениеBackstep - шаг назад質問です。
専門家の皆様、わかるまで教えてください
敬具 ウラジミール
皆さん、おはようございます。
プログラミング言語「MQL5」の独学を続けています。ZigZagインジケータからシグナルを取得する関数を書いてみることにしました。徹底的に勉強し始めたら、すぐに疑問が湧いてきました。その入力パラメーターに あるんです。
私は英語が堪能ではないので、Google翻訳を使わせてもらっています。純粋な訳は何か。
質問です。
専門家のみなさん、わかるまで教えてください
敬具 ウラジミール
初級編 - 助けになる検索、 " 前進しない " - 全体のストーリーはここで後進する!!!!:-)
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&page=2</b></p>
PSの初歩的なことですが...
初級 - 助けになる検索、 " 前に進んでいない " - 全体の話はここで後ろに動いている!!!!:-)
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&page=2</b></p>
PSの初歩的なことですが...
ローマンさん、どうもありがとうございました。最も簡潔で、かつ分かりやすい説明をしていただきました。
ウラジミールさん、謹んで申し上げます。
ローマンさん、どうもありがとうございました。最も簡潔で、かつ理解しやすい説明をしていただきました。
ウラジミールさん、謹んで申し上げます。
皆さん、ごきげんよう。
あるExpert Advisorをテストしているときに、問題が発生しました。EA初期化関数のコードは以下の通りです。
EAをテストして いる間、ログにメッセージが表示される。
ボリンジャーバンドと DEMA 指標のハンドルのチェックに問題があることがわかりました。私はすでにボリンジャーバンドとDEMA指標のハンドルをチェックしたので、私は質問を持っている:私はこれらのエラーを修正するために私のコードで何を変更する必要がありますか?
ウラジミールさん、ありがとうございます。