フラクタルブレイクアウトスタック - ページ 3 123456 新しいコメント Zachary 2013.03.14 01:22 #21 OrderModifyとOrderSelectの両方の関数でパラメータを入れ替えたのですが、効果がありません。流れは論理的で、すべてのパラメータを再確認しました。これはバックテスト 中に起こっていることですが、問題ではないはずです。 Tjipke de Vries 2013.03.14 09:14 #22 //----------------------------------------------// //-----------------EXITING ORDERS---------------// for(int i=OrdersTotal()-1; i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber || OrderSymbol() !=Symbol()) continue; double SL=OrderStopLoss(); bool result; int error; //Different OrderTypes if(OrderType()==OP_BUY) { if(BreakEven > 0) { if(Bid - OrderOpenPrice() >= Point * BreakEven * mypoint) //make input for BreakEven StopLoss) { //and don't forget mypoint !!! if(OrderStopLoss() < OrderOpenPrice()) { SL = OrderOpenPrice()+Point; } } } } if(OrderType()==OP_SELL) { //For you to do } if(SL != OrderStopLoss()) result=OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0,CLR_NONE); if(result!=TRUE) { error=GetLastError(); Print("ModifyError = ",OrderTicket()," ",error);} }コーディングを読みやすくする自分の文章との違いを見る この方が読みやすい カウント{{{{{{{{{{}}}}}}}}}}。 Simon Gniadkowski 2013.03.14 09:56 #23 ZacharyRC:まだ困っています。原因を探るため、エラーを実施しました。ジャーナルに報告されました。1)エラー4051=不正なパラメータ2) 無効な注文変更用チケット //----------------------------------------------// //-----------------EXITING ORDERS---------------// for(int i=OrdersTotal()-1; i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber || OrderSymbol() !=Symbol()) continue; if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) Print(GetLastError(),i); if(OrderType()==OP_BUY) { if(Move.BE && StopLoss > 0) { if(Bid - OrderOpenPrice() >= Point * StopLoss) { if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red); Print("Cant Modify Order"+GetLastError(),i); } } } } else { if(Move.BE && StopLoss > 0) { if(OrderOpenPrice() - Ask >= Point * StopLoss) { if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red); Print("Cant Modify Order"+GetLastError(),i); } } } } }買いの 場合、SLがOpen priceより 上にあるのはなぜですか? OrderOpenPrice() + Point * MoveStopTo Simon Gniadkowski 2013.03.14 10:17 #24 deVries: BUYの場合、OrderOpenPrice()の上にOrderStopLoss()を持つことが可能です。 笑...おっと<赤い顔のスマイリー>。 Tjipke de Vries 2013.03.14 10:18 #25 RaptorUK: 笑 ....おっと<赤い顔のスマイリー>。 恥ずかしながら、私の投稿を削除してください Simon Gniadkowski 2013.03.14 10:26 #26 ZacharyRC:まだ困っています。原因を探るため、エラーを実施しました。ジャーナルは報告した。1)エラー4051=不正なパラメータ2) 無効なチケットで注文を変更する OK、多分あなたのエラーメッセージはスプリアスです. if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) Print(GetLastError(),i); OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red); Print("Cant Modify Order"+GetLastError(),i);もし、OrderSelect()がうまくいくなら、なぜGetLastError()を呼んでいる のですか? もし、それがエラーを表示するなら、それはOrderSelect()が原因ではないでしょう。OrderModify()の場合も同じで、もし変更がうまくいってもGetLastError()を呼び出すのですが、なぜですか? 関数が失敗したときだけ呼び出すのです ... ... if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) { if(!OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red)) Print("Cant Modify Order, error# " + GetLastError()," index ", i); Simon Gniadkowski 2013.03.14 10:26 #27 deVries: 恥ずかしながら私の投稿を削除してください いや、私も人間だから間違いはある、それを知られても気にしない:-) Zachary 2013.03.18 16:47 #28 あーーーー大好きです。あなたの指摘は両方とも非常に理にかなっています。{{{{{}}}-同様にもっと簡単です!エラーは関数が 失敗した場合にのみ呼び出されるべきです。お二人ともありがとうございました!週末がうまくいくことを願っています。 Zachary 2013.03.18 19:43 #29 RaptorUK: 買いの 場合、SLがOpen priceより上になるには? OrderOpenPrice() + Point * MoveStopTo SLは注文の下にあります。本当に売りのセクションを参照していないのでしょうか? else{ if(Move.BE && StopLoss > 0) { if(OrderOpenPrice() - Ask >= Point * StopLoss) { if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red); Print("Cant Modify Order"+GetLastError(),i); } Simon Gniadkowski 2013.03.18 19:44 #30 RaptorUK: 笑 ....おっと<赤い顔のスマイリー>。 私のミスです。 123456 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
OrderModifyとOrderSelectの両方の関数でパラメータを入れ替えたのですが、効果がありません。
流れは論理的で、すべてのパラメータを再確認しました。
これはバックテスト 中に起こっていることですが、問題ではないはずです。
コーディングを読みやすくする
自分の文章との違いを見る この方が読みやすい カウント{{{{{{{{{{}}}}}}}}}}。
まだ困っています。原因を探るため、エラーを実施しました。
ジャーナルに報告されました。
1)エラー4051=不正なパラメータ
2) 無効な注文変更用チケット
買いの 場合、SLがOpen priceより 上にあるのはなぜですか? OrderOpenPrice() + Point * MoveStopTo
BUYの場合、OrderOpenPrice()の上にOrderStopLoss()を持つことが可能です。
笑 ....おっと<赤い顔のスマイリー>。
恥ずかしながら、私の投稿を削除してください
まだ困っています。原因を探るため、エラーを実施しました。
ジャーナルは報告した。
1)エラー4051=不正なパラメータ
2) 無効なチケットで注文を変更する
OK、多分あなたのエラーメッセージはスプリアスです.
もし、OrderSelect()がうまくいくなら、なぜGetLastError()を呼んでいる のですか? もし、それがエラーを表示するなら、それはOrderSelect()が原因ではないでしょう。
OrderModify()の場合も同じで、もし変更がうまくいってもGetLastError()を呼び出すのですが、なぜですか? 関数が失敗したときだけ呼び出すのです ... ...
恥ずかしながら私の投稿を削除してください
あーーーー大好きです。あなたの指摘は両方とも非常に理にかなっています。
{{{{{}}}-同様にもっと簡単です!
エラーは関数が 失敗した場合にのみ呼び出されるべきです。
お二人ともありがとうございました!週末がうまくいくことを願っています。
買いの 場合、SLがOpen priceより上になるには? OrderOpenPrice() + Point * MoveStopTo
SLは注文の下にあります。
本当に売りのセクションを参照していないのでしょうか?
笑 ....おっと<赤い顔のスマイリー>。