顧問を書くと問題がある。 - ページ 6 1234567 新しいコメント Alexander Mostovnek 2009.11.08 07:23 #51 khorosh >> : 小数点以下4桁、5桁の引用は? 4桁...5桁でも試してみました。NormalizeDoubleが動作しない :( Alexander Mostovnek 2009.11.08 08:31 #52 総じて、ちょっと不思議な感じですね...。最初の投稿で、私はEAのスクリーンショットを与え、それをアップグレードし始め、エラーが表示された受注エラー130を、その元の状態にすべてを返しましたが、エラーが消えていない!!!!!!!!!!!!!!。でも、全部元の状態で動いたんですよ!!!!これは一体何なんだ? Виталий 2009.11.08 08:36 #53 Noterday >> : そういうことなんです。なぜ10pipsのストップがいけないのか・・・。 ここで問題なのは、ストップロスを置くことができる最小距離が10pips以上(例:15pips)であるため、10pipsのストップは間違っている可能性があるということです。この値はディーリングルームで設定されます。 Alexander Mostovnek 2009.11.08 08:39 #54 200回試しました!相変わらずだなあ...。 Виталий 2009.11.08 08:59 #55 Noterday >> : 私も200個試しましたよ~。相変わらずだな...。 元のEAコードを掲載してもらえますか? Alexander Mostovnek 2009.11.08 09:07 #56 #property copyright "Мостовнек" #property link "" int init() { return(0); } int deinit() { return(0); } extern int Frame = 1; int start() { int total; for (int i = 0; i <= OrdersTotal(); i++) { if (OrderSelect( i-1, SELECT_BY_POS) == true) total++; } double Buffer1 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mx",0,0,1),4); double Buf1 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mx",0,6,1),4); double Buffer2 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mn",0,0,1),4); double Buf2 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mn",0,6,1),4); double ZZ_1 = NormalizeDouble(iCustom(NULL,0,"ZigZag",0,0,1),4); //----------------------------------------------------- if ( total == 0 && (( Buffer1 != EMPTY_VALUE || Buf1 != EMPTY_VALUE) && ( ZZ_1 == Buffer1 || ZZ_1 == Buf1))) { OrderSend(Symbol(),OP_SELL,0.1,Bid,10, ZZ_1+15*Point,Bid-20*Point,"SELL",0,0,Red); Print("Zigzag = ", ZZ_1," | Buffer1 = ", Buffer1); } if ( total == 0 && (( Buffer2 != EMPTY_VALUE || Buf2 != EMPTY_VALUE) && ( ZZ_1 == Buffer2 || ZZ_1 == Buf2))) { OrderSend(Symbol(),OP_BUY,0.1,Ask,10, ZZ_1-15*Point,Ask+20*Point,"BUY",0,0,Blue); Print("Zigzag = ", ZZ_1," | Buffer2 = ", Buffer1); } return(0); } Виталий 2009.11.08 09:51 #57 OrderSend()でストップロスを設定する原則は正しいです。ですから、そこは何も変える必要はありません。 Print()関数が実行されると、ZigZag=0となり、したがってストップロス:0+15*Point、すなわち0.0015に等しくなります。そのため、OrderSendError 130という エラーが発生します。 double ZZ_1 = NormalizeDouble(iCustom(NULL,0, "ZigZag",21,5,3,0,1),4);// 21,5,3 は外部指標変数で、ZigZag指標で宣言されている順に指定しなければならない。 同様に、double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4) とします。 double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4); double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4); double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4); ここでは外部変数を指定しない。 Wrote an advisor, there 初心者の方からの質問 MQL4 MT4 MetaTrader Access Higher timeframe indicator Alexander Mostovnek 2009.11.08 10:09 #58 しかし、MQL4のドキュメントに書かれているように、それらはオプションです。 そして、その中で double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4); double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4); double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4); double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4); 外部変数が全くない :) ちなみに、私のPRINT関数では、ZigZagは正常に出力されます。 Виталий 2009.11.08 10:58 #59 Noterday >> : しかし、MQL4のドキュメントに書かれているように、それらはオプションです。 そして、その中で double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4); double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4); double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4); double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4); 外部変数が全くない :) ちなみに、私のPRINT関数では、ZigZagは正常に出力されます。 これらの指標に外部変数がなければ、クレームはない :) 。でも、やっぱりストップ高は考えないと。もしかしたら、ヒントが得られるかもしれません。 KONDOR 2009.11.08 15:23 #60 ellizii >> : これらの指標に外部変数がなければ、クレームはない :) 。でも、やっぱりストップ高は考えないと。もしかしたら、ヒントが得られるかもしれません。 心配しないでください :) 開発者の皆様へ: BASIC TESTER/OPTIMIZER ストップミもそうでしょう。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
小数点以下4桁、5桁の引用は?
4桁...5桁でも試してみました。NormalizeDoubleが動作しない :(
そういうことなんです。なぜ10pipsのストップがいけないのか・・・。
ここで問題なのは、ストップロスを置くことができる最小距離が10pips以上(例:15pips)であるため、10pipsのストップは間違っている可能性があるということです。この値はディーリングルームで設定されます。私も200個試しましたよ~。相変わらずだな...。
元のEAコードを掲載してもらえますか?
OrderSend()でストップロスを設定する原則は正しいです。ですから、そこは何も変える必要はありません。
Print()関数が実行されると、ZigZag=0となり、したがってストップロス:0+15*Point、すなわち0.0015に等しくなります。そのため、OrderSendError 130という エラーが発生します。
double ZZ_1 = NormalizeDouble(iCustom(NULL,0, "ZigZag",21,5,3,0,1),4);// 21,5,3 は外部指標変数で、ZigZag指標で宣言されている順に指定しなければならない。
同様に、double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4) とします。
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4);
ここでは外部変数を指定しない。
しかし、MQL4のドキュメントに書かれているように、それらはオプションです。
そして、その中で
double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4);
外部変数が全くない :)
ちなみに、私のPRINT関数では、ZigZagは正常に出力されます。
しかし、MQL4のドキュメントに書かれているように、それらはオプションです。
そして、その中で
double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4);
外部変数が全くない :)
ちなみに、私のPRINT関数では、ZigZagは正常に出力されます。
これらの指標に外部変数がなければ、クレームはない :) 。でも、やっぱりストップ高は考えないと。もしかしたら、ヒントが得られるかもしれません。これらの指標に外部変数がなければ、クレームはない :) 。でも、やっぱりストップ高は考えないと。もしかしたら、ヒントが得られるかもしれません。
心配しないでください :) 開発者の皆様へ: BASIC TESTER/OPTIMIZER
ストップミもそうでしょう。