初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 747 1...740741742743744745746747748749750751752753754...1503 新しいコメント Vitaly Muzichenko 2017.05.12 17:18 #7461 Sergey Gritsay: Vitaliyさん、https://www.mql5.com/ru/docs/series/timeseries_access#synchronized、履歴を読み込むためのサンプルスクリプトがあるので、参考になるかもしれません。ありがとうございます、対処してみます。さて、すでに疑問が湧いてきました。次に重要なチェックは、その関数が呼び出されるプログラムの種類を確認することである。更新を呼び出す指標と同じ周期で時系列更新要求を送ることは、極めて好ましくないことを思い出してください。ヒストリカルデータの更新は、インジケータが動作するのと同じスレッドで行われるため、インジケータが持っているのと同じシンボル期間のデータを要求するのは望ましくないこと。そのため、衝突する可能性が高い。それを確認するために、MQL5_PROGRAM_TYPE修飾子を付けて MQL5InfoInteger() 関数を使用します。if(MQL5InfoInteger(MQL5_PROGRAM_TYPE)==PROGRAM_INDICATOR&&Period()==period&&Symbol()==symbol)return(-4) です。私のインジケータでは動作するはずです。 Vladimir M. 2017.05.14 00:17 #7462 諸君、ジグザグに苦戦中。4つの頂点の正確なデータを取得する必要があります。iCustomの最初の、最も必要な頂点が正しく表示されないことが判明しました。グラフィックイメージから遅れている、次の3つが正解です。同様のことはすでに発見されている -https://www.mql5.com/ru/forum/100123 ZigZagのデータをチェックするためだけに別のExpert Advisorを作成するなど、できることはすべて試してみました。自分の目で確かめてください。もしかしたら、どこかでミスがあったのかも?インストールするだけで、始値の可視化が可能になります。これだ //+------------------------------------------------------------------+ //| data_ZigZag.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" input string data_Zig_Zag_IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII; input int ExtDepth=12; input int ExtDeviation=5; input int ExtBackstep =3; input int n_zz=100;//n_zz =100; double pd_1,pd_2,pd_3,pd_4; int pn_1,pn_2,pn_3,pn_4; int zz_Handle; double zz_buf[]; datetime time[]; string this_sym; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- this_sym=Symbol(); //+------------------------------------------------------------------+ //--- сохраним текущий символ графика для дальнейшей работы советника именно на этом символе zz_Handle=iCustom(this_sym,0,"Examples\\Zigzag", ExtDepth, ExtDeviation, ExtBackstep ); Print(__FUNCTION__,"__LINE__",__LINE__," . . . . . ", "zz_Handle = ",zz_Handle," error = ",GetLastError()); //--- проверяем наличие хендла индикатора if(zz_Handle==INVALID_HANDLE) { //--- хендл не получен, выводим сообщение в лог об ошибке, завершаем работу с ошибкой Print(__FUNCTION__,"__LINE__",__LINE__," ----- ", "Не удалось получить хендл индикатора zz_Handle"," error = ",GetLastError()); return(-1); } //--- добавляем индикатор на ценовой график ChartIndicatorAdd(ChartID(),0,zz_Handle); //--- устанавливаем индексацию для массива zz_buf как в таймсерии ArraySetAsSeries(zz_buf,true); ArraySetAsSeries(time,true); //--- //+------------------------------------------------------------------+ return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { IndicatorRelease(zz_Handle); ArrayFree(zz_buf); ArrayFree(time); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //+------------------------------------------------------------------+ int zz_copy=0; //--- копируем данные из индикаторного массива в динамический массив zz_copy=CopyBuffer(zz_Handle,0,0,n_zz,zz_buf); //--- если есть ошибки, то выводим сообщение в лог об ошибке и выходим из функции if(zz_copy<0) { Print("Не удалось скопировать данные из индикаторного буфера zz_buf. error = ", GetLastError()); return; } //+------------------------------------------------------------------+ pd_1 =0; pd_2 =0; pd_3 =0; pd_4 =0; pn_1 =0; pn_2 =0; pn_3 =0; pn_4 =0; int zz_q=ArraySize(zz_buf); int q=0; for(q=0; q<zz_q; q++) { if(zz_buf[q]!=0 && zz_buf[q]!=EMPTY_VALUE) { if(pd_1==0) { pn_1=q; pd_1=zz_buf[q]; } else if(pd_2==0) { pn_2=q; pd_2=zz_buf[q]; } else if(pd_3==0) { pn_3=q; pd_3=zz_buf[q]; } else if(pd_4==0) { pn_4=q; pd_4=zz_buf[q]; } } if(pn_4>0)break; } //+------------------------------------------------------------------+ CopyTime(this_sym,Period(),0,n_zz,time); //+------------------------------------------------------------------+ ObjectDelete(0,"name1"); string name1="name1"; if(!ObjectCreate(0,name1,OBJ_ARROW_UP,0,time[pn_1],pd_1)) { Print(__FUNCTION__,"__LINE__",__LINE__, ": не удалось создать знак \"Стрелка вверх\"! Код ошибки = ",GetLastError()); } //--- установим размер знака ObjectSetInteger(0,name1,OBJPROP_WIDTH,6); //+------------------------------------------------------------------+ ObjectDelete(0,"name2"); string name2="name2"; if(!ObjectCreate(0,name2,OBJ_ARROW_UP,0,time[pn_2],pd_2)) { Print(__FUNCTION__,"__LINE__",__LINE__, ": не удалось создать знак \"Стрелка вверх\"! Код ошибки = ",GetLastError()); } //--- установим размер знака ObjectSetInteger(0,name2,OBJPROP_WIDTH,6); //+------------------------------------------------------------------+ ObjectDelete(0,"name3"); string name3="name3"; if(!ObjectCreate(0,name3,OBJ_ARROW_UP,0,time[pn_3],pd_3)) { Print(__FUNCTION__,"__LINE__",__LINE__, ": не удалось создать знак \"Стрелка вверх\"! Код ошибки = ",GetLastError()); } //--- установим размер знака ObjectSetInteger(0,name3,OBJPROP_WIDTH,6); //+------------------------------------------------------------------+ ObjectDelete(0,"name4"); string name4="name4"; if(!ObjectCreate(0,name4,OBJ_ARROW_UP,0,time[pn_4],pd_4)) { Print(__FUNCTION__,"__LINE__",__LINE__, ": не удалось создать знак \"Стрелка вверх\"! Код ошибки = ",GetLastError()); } //--- установим размер знака ObjectSetInteger(0,name4,OBJPROP_WIDTH,6); //+------------------------------------------------------------------+ ///* if(pd_1!=0 && pd_2!=0 && pd_3!=0 && pd_4!=0) Alert(__FUNCTION__,"__LINE__",__LINE__, " q =",q, " pd_1 =",pd_1, " pd_2 =",pd_2, " pd_3 =",pd_3, " pd_4 =",pd_4, " pn_1 =",pn_1, " pn_2 =",pn_2, " pn_3 =",pn_3, " pn_4 =",pn_4, " TimeCurrent()=",TimeCurrent() ); //*/ //+------------------------------------------------------------------+ } //+------------------------------------------------------------------+ 正確なデータを得るには? Как получить значение индикатора ZigZag в точках... 2006.04.09www.mql5.com Уважаемые гуру и другие адепты MQ4 Я прикрепил схемку. Это стандартный ZigZag... antonsinichkin 2017.05.15 06:54 #7463 こんにちは。一昨日からMQLの勉強を始めました。テスターでは、このような結果が得られます。キャッチが解らない。プロフェッショナルの皆様、ご教示ください。 fxtz 2017.05.23 21:23 #7464 質問 メタトレーダー4で、2ポジションから250ポジションまで、設定したストップロスと設定した利益をワンクリックでオープンするプログラムを書く ことは可能でしょうか?だから、一度にひとつずつ手動で開く必要はないんだ Artyom Trishkin 2017.05.23 22:55 #7465 fxtz:質問 メタトレーダー4で、2ポジションから250ポジションまで、設定したストップロスや利益をワンクリックでオープンするプログラムを書く ことができますか?1つ1つ開く必要はありませんはい、できます。しかし、あなたはこの質問をする場所を間違えています - ここ、MT5で。MT4の初心者向けのスレッドがいくつかあります。例えば--こちら。 Aleksey Vyazmikin 2017.05.23 22:58 #7466 antonsinichkin: こんにちは。一昨日からMQLの勉強を始めました。テスターでは、このような結果が得られます。どこがキャッチなのか、私にはわからない。著名な専門家の方々、ご教示ください。 印刷する前に文字列に変換してください。あるいは、何が問題なのかを説明する。 Vladimir Karputov 2017.05.27 07:56 #7467 このトピックに関連しないコメントは、「MQL4 MT4 MetaTrader 4初心者からの質問」に移動しました。 Agat 2017.06.02 04:27 #7468 こんにちは。MT5のビルド1604への最新アップデート後、私のインジケータが正しく動作しなくなりました。を使用しています。 いわゆる「液体」の指標。例えば、複数の期間のストキャスティクスを一つのウィンドウに並べています。さて、今度は短いものが描かれています 従来通り、少し長いものは数本しか描画されず、長いものは全く描画されない。 急に歴史を欠くようになった印象があります。何が問題なのか、教えてください。 RogozaIV 2017.06.02 09:01 #7469 mql4からmql5に乗り換えたところ、RTS指数のExpert Advisorをテストしているところですが、いくつかのディールをオープンする問題が発生しました。OrdersTotal()==0).なぜこの条件ではうまくいかないのか?ポジションを1つしか開けない場合はどうすればよいですか? Artyom Trishkin 2017.06.02 09:04 #7470 RogozaIV: 最近、mql4からmql5に乗り換えました。 RTS指数でExpert Advisorをテストしていますが、ポジションを開く条件の1つがif (...OrdersTotal()==0) と指定されているのに、複数のポジションを開く問題が発生しています。なぜこの条件ではうまくいかないのか?1つの取引だけを開くにはどうしたらよいですか?PositionsTotal() 1...740741742743744745746747748749750751752753754...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Vitaliyさん、https://www.mql5.com/ru/docs/series/timeseries_access#synchronized、履歴を読み込むためのサンプルスクリプトがあるので、参考になるかもしれません。
ありがとうございます、対処してみます。
さて、すでに疑問が湧いてきました。
次に重要なチェックは、その関数が呼び出されるプログラムの種類を確認することである。更新を呼び出す指標と同じ周期で時系列更新要求を送ることは、極めて好ましくないことを思い出してください。ヒストリカルデータの更新は、インジケータが動作するのと同じスレッドで行われるため、インジケータが持っているのと同じシンボル期間のデータを要求するのは望ましくないこと。そのため、衝突する可能性が高い。それを確認するために、MQL5_PROGRAM_TYPE修飾子を付けて MQL5InfoInteger() 関数を使用します。
if(MQL5InfoInteger(MQL5_PROGRAM_TYPE)==PROGRAM_INDICATOR&&Period()==period&&Symbol()==symbol)
return(-4) です。
私のインジケータでは動作するはずです。
諸君、ジグザグに苦戦中。
4つの頂点の正確なデータを取得する必要があります。iCustomの最初の、最も必要な頂点が正しく表示されないことが判明しました。グラフィックイメージから遅れている、次の3つが正解です。同様のことはすでに発見されている -https://www.mql5.com/ru/forum/100123
ZigZagのデータをチェックするためだけに別のExpert Advisorを作成するなど、できることはすべて試してみました。自分の目で確かめてください。もしかしたら、どこかでミスがあったのかも?インストールするだけで、始値の可視化が可能になります。これだ
テスターでは、このような結果が得られます。
キャッチが解らない。プロフェッショナルの皆様、ご教示ください。
質問 メタトレーダー4で、2ポジションから250ポジションまで、設定したストップロスと設定した利益をワンクリックでオープンするプログラムを書く ことは可能でしょうか?だから、一度にひとつずつ手動で開く必要はないんだ
質問 メタトレーダー4で、2ポジションから250ポジションまで、設定したストップロスや利益をワンクリックでオープンするプログラムを書く ことができますか?1つ1つ開く必要はありません
はい、できます。しかし、あなたはこの質問をする場所を間違えています - ここ、MT5で。
MT4の初心者向けのスレッドがいくつかあります。
例えば--こちら。
こんにちは。一昨日からMQLの勉強を始めました。
テスターでは、このような結果が得られます。
どこがキャッチなのか、私にはわからない。著名な専門家の方々、ご教示ください。
印刷する前に文字列に変換してください。あるいは、何が問題なのかを説明する。
いわゆる「液体」の指標。例えば、複数の期間のストキャスティクスを一つのウィンドウに並べています。さて、今度は短いものが描かれています
従来通り、少し長いものは数本しか描画されず、長いものは全く描画されない。
急に歴史を欠くようになった印象があります。何が問題なのか、教えてください。
最近、mql4からmql5に乗り換えました。 RTS指数でExpert Advisorをテストしていますが、ポジションを開く条件の1つがif (...OrdersTotal()==0) と指定されているのに、複数のポジションを開く問題が発生しています。なぜこの条件ではうまくいかないのか?1つの取引だけを開くにはどうしたらよいですか?
PositionsTotal()