EAに必要な簡単なコード(2つのオープンオーダーの修正) - ページ 4 12345 新しいコメント Simon Gniadkowski 2012.04.04 10:01 #31 これは、数回前の私の返信から ... ... 最も簡単な方法です ... .... "私は特定の時間、具体的には23:00 GMT+2だと思いますが、2つの 保留 中の注文を 設定しました。どちらの注文も23:00のローソク足のオープンから同じ距離、この場合は14ピップス離れています。両方ともTakeProfitが28ピップ(この場合)、StopLossが55ピップ です。 23:00のローソク足を参照することで、元のTPがどこにあったかを計算 することができます。 Simon Gniadkowski 2012.04.04 11:05 #32 これを試してみてください ... ... コンパイルはできますが、Strategy Testerでは まだ試していません ... .... ファイル: madmax.mq4 10 kb 削除済み 2012.04.05 18:48 #33 RaptorUK: これを試してみてください ... ... コンパイルはできますが、Strategy Testerではまだ試していません ... .... SLとTPは正しいようだし、OrderSendも前のコードと同じようにレイアウトされているのに、なぜか'OrderSenderror 130'と表示されます。なぜこのようなことが起こるのでしょうか? 私はコードのこの部分を取りました int CountOpenOrders = 0; double Candle23Open; int Spread = MarketInfo(Symbol(), MODE_SPREAD); Candle23Open = Open[ iBarShift(NULL, 0, StrToTime("23:00") ) ]; // price value of the Open of the 23:00 hour candle for(int iPos = OrdersTotal()-1; iPos >= 0 ; iPos--) { if(OrderSelect(iPos,SELECT_BY_POS) && OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() && OrderType() < 2 // less than 2 is either OP_BUY (0) or OP_SELL (1) ) CountOpenOrders++; } // end of for(int iPos if(CountOpenOrders == 2) // we have 2 open orders, should we modify or have the already been modified ? { for(iPos = OrdersTotal()-1; iPos >= 0 ; iPos--) { if(OrderSelect(iPos,SELECT_BY_POS) && OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() ) { if(OrderType() == 1) // OP_SELL (1) { if(OrderTakeProfit() > Candle23Open - ((TakeProfitModified - 1) * Point) + Spread ) // check if TakeProfit has already been modified if(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Candle23Open - (TakeProfitModified * Point) + Spread, 0, Blue)) { Print("Error modifying order : ",GetLastError()); return(0); } } if(OrderType() == 0) // OP_BUY (0) { if(OrderTakeProfit() < Candle23Open + ((TakeProfitModified - 1) * Point) ) // check if TakeProfit has already been modified if(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Candle23Open + (TakeProfitModified * Point), 0, Blue)) { Print("Error modifying order : ",GetLastError()); return(0); } } } } } } この部分を取ってきて、前のEA(オリジナルのもの)に入れたところ、注文は開くのですが、変更されません。しかし、あなたが提供したEAでOrderSendのエラーが修正されれば、うまくいくかもしれないと思います。 それと、この部分に if(!OrderModify は何のためにあるのでしょうか? ありがとうございました。 madmax3 Simon Gniadkowski 2012.04.05 21:08 #34 madmax3:ああ、この部分にも。は何のためにあるのでしょうか?ありがとうございました。マッドマックス3 OrderModify()のドキュメントを確認 しましたか? 何を返すのでしょうか? Simon Gniadkowski 2012.04.05 21:11 #35 madmax3: SLやTPは正しいようだし、「OrderSend」も前のコードと多少同じようにレイアウトされているのに、なぜか「OrderSend error 130」が出てしまいます。なぜこのようなことが起こるのでしょうか? 5桁のブローカーを考慮し、TPとSLを調整しましたか? あなたのブローカーは5桁のブローカーですか? 削除済み 2012.04.09 12:58 #36 変数(askとbidの距離)を記入し損ねただけで、動くようになりました。OrderModifyのドキュメントには、!は説明されていないと思います。 コードはうまく動作しているように見えますが、1つの問題は、2つの取引が開いているときに買い取引のみを変更し、買い取引と売り取引の両方を変更しないことです。任意のアイデアはなぜですか? ありがとうございます。 madmax3 Simon Gniadkowski 2012.04.09 13:02 #37 madmax3: 私はそれを動作させることができましたが、変数(アスクとビッドの距離)を記入するのを失念していました。OrderModifyのドキュメントには、この!私は信じています。 コードはうまく動作しているように見えますが、1つの問題は、2つの取引が開いているときに買い取引だけを修正し、買い取引と売り取引の両方を修正しないことです。 ありがとうございます。 madmax3 OrderModifyはboolを返します ... ... boolとの関係では、! はNOTです ... ... だから、!OrderModify()は、... ... を意味します。もし、OrderModifyがfalseを返したら、つまり失敗したらという意味です。 私はあなたのコードをもう一度見てみます。あるいは、私のコードに変更を加えてみてください。 Tjipke de Vries 2012.04.09 13:18 #38 madmax3: 変数(askとbidの距離)の記入をミスっただけで、動くようになった。OrderModifyのドキュメントには、この「!」の説明はありません。と思っています。 コードはうまく動作しているように見えますが、1つの問題は、2つの取引が開いているときに買い取引のみを修正し、買い取引と売り取引の両方を修正しないことです。任意のアイデアはなぜですか? ありがとうございます。 マッドマックス3 買いと売りの両方の取引で同じpipでStopLossを変更させたいのでしょうか? もし、そのようにしたいのであれば、もう一度考えてみてください。 また、正しい方向への新しいポイントごとにトレードを修正しないでください。修正できるようにtrailingstepを選択してください(xxポイントでは、tradecontext too busyエラーの多くを避けるために10以上を選択できます)。 "!"はコーディングにないようなもの Simon Gniadkowski 2012.04.09 13:23 #39 madmax3: コードはうまく動作しているように見えますが、1つの問題は、2つの取引が開いているときに買い取引のみを変更し、買い取引と売り取引の両方を変更しないことです。何かアイデアはありますか? ログにエラーがないか確認してください ... もしストラテジーテスターで 実行しているならばジャーナルタブを、ライブまたはデモで実行しているならばエキスパートタブを確認してください。 何か見つけたら教えてください ... ... 削除済み 2012.04.09 14:02 #40 RaptorUK: ログにエラーがないか確認してください ... Strategy Tester で実行している場合は journal タブを、Live または Demo で実行している場合は experts タブを確認してください。 何か見つけたら教えてください ... ...2012.04.09 21:21:27 2012.01.17 00:59 Tester: 注文 #1, sell 0.01 EURUSD is opened at 1.264982012.04.09 21:21:27 2012.01.17 02:21 Tester: order #2, buy 0.01 EURUSD is opened at 1.26795 2012.04.09 21:21:27 2012.01.17 02:21 MadMax EURUSD,H1: modify #2 buy 0.01 EURUSD at 1.26795 sl: 1.26218 tp: 1.27352 ok 2012.04.09 21:21:27 2012.01.17 03:00 MadMax EURUSD,H1: modify #2 buy 0.01 EURUSD at 1.26795 sl: 1.26218 tp: 1.27480 ok なぜか買いの取引が2回修正されます(2回目の修正は必要なTPに行きますが、いくつかの取引では9時や10時など特定の全体時刻に修正し続けるようです)。 Simple code needed for [Archive!] FOREX - Trends, HELP, failed cancel order 12345 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これは、数回前の私の返信から ... ... 最も簡単な方法です ... ....
"私は特定の時間、具体的には23:00 GMT+2だと思いますが、2つの 保留 中の注文を 設定しました。どちらの注文も23:00のローソク足のオープンから同じ距離、この場合は14ピップス離れています。両方ともTakeProfitが28ピップ(この場合)、StopLossが55ピップ です。
23:00のローソク足を参照することで、元のTPがどこにあったかを計算 することができます。
これを試してみてください ... ... コンパイルはできますが、Strategy Testerでは まだ試していません ... ....
これを試してみてください ... ... コンパイルはできますが、Strategy Testerではまだ試していません ... ....
SLとTPは正しいようだし、OrderSendも前のコードと同じようにレイアウトされているのに、なぜか'OrderSenderror 130'と表示されます。なぜこのようなことが起こるのでしょうか?
私はコードのこの部分を取りました
この部分を取ってきて、前のEA(オリジナルのもの)に入れたところ、注文は開くのですが、変更されません。しかし、あなたが提供したEAでOrderSendのエラーが修正されれば、うまくいくかもしれないと思います。
それと、この部分に
は何のためにあるのでしょうか?
ありがとうございました。
madmax3
ああ、この部分にも。
は何のためにあるのでしょうか?
ありがとうございました。
マッドマックス3
SLやTPは正しいようだし、「OrderSend」も前のコードと多少同じようにレイアウトされているのに、なぜか「OrderSend error 130」が出てしまいます。なぜこのようなことが起こるのでしょうか?
変数(askとbidの距離)を記入し損ねただけで、動くようになりました。OrderModifyのドキュメントには、!は説明されていないと思います。
コードはうまく動作しているように見えますが、1つの問題は、2つの取引が開いているときに買い取引のみを変更し、買い取引と売り取引の両方を変更しないことです。任意のアイデアはなぜですか?
ありがとうございます。
madmax3
私はそれを動作させることができましたが、変数(アスクとビッドの距離)を記入するのを失念していました。OrderModifyのドキュメントには、この!私は信じています。
コードはうまく動作しているように見えますが、1つの問題は、2つの取引が開いているときに買い取引だけを修正し、買い取引と売り取引の両方を修正しないことです。
ありがとうございます。
madmax3
OrderModifyはboolを返します ... ... boolとの関係では、! はNOTです ... ... だから、!OrderModify()は、... ... を意味します。もし、OrderModifyがfalseを返したら、つまり失敗したらという意味です。
私はあなたのコードをもう一度見てみます。あるいは、私のコードに変更を加えてみてください。
変数(askとbidの距離)の記入をミスっただけで、動くようになった。OrderModifyのドキュメントには、この「!」の説明はありません。と思っています。
コードはうまく動作しているように見えますが、1つの問題は、2つの取引が開いているときに買い取引のみを修正し、買い取引と売り取引の両方を修正しないことです。任意のアイデアはなぜですか?
ありがとうございます。
マッドマックス3
買いと売りの両方の取引で同じpipでStopLossを変更させたいのでしょうか?
もし、そのようにしたいのであれば、もう一度考えてみてください。
また、正しい方向への新しいポイントごとにトレードを修正しないでください。修正できるようにtrailingstepを選択してください(xxポイントでは、tradecontext too busyエラーの多くを避けるために10以上を選択できます)。
"!"はコーディングにないようなもの
コードはうまく動作しているように見えますが、1つの問題は、2つの取引が開いているときに買い取引のみを変更し、買い取引と売り取引の両方を変更しないことです。何かアイデアはありますか?
ログにエラーがないか確認してください ... Strategy Tester で実行している場合は journal タブを、Live または Demo で実行している場合は experts タブを確認してください。 何か見つけたら教えてください ... ...
2012.04.09 21:21:27 2012.01.17 02:21 MadMax EURUSD,H1: modify #2 buy 0.01 EURUSD at 1.26795 sl: 1.26218 tp: 1.27352 ok
2012.04.09 21:21:27 2012.01.17 03:00 MadMax EURUSD,H1: modify #2 buy 0.01 EURUSD at 1.26795 sl: 1.26218 tp: 1.27480 ok
なぜか買いの取引が2回修正されます(2回目の修正は必要なTPに行きますが、いくつかの取引では9時や10時など特定の全体時刻に修正し続けるようです)。