2EMAのクロスEAを作成したのですが、アドバイスが必要です。 - ページ 4 1234 新しいコメント Tjipke de Vries 2013.12.22 07:07 #31 prupru: 今、もっと大きな問題があります。私のブローカーは、注文を部分的に実行する傾向があります。 親愛なるお客様へ お客様の取引は価格587.318で部分的に(15.84のうち2.32ロット)開始されたことをここにお知らせします。 この問題について何かご質問がありましたら、ご遠慮なくお問い合わせください。 よろしくお願いします。 ブローカー 以下はサポートからのコメントです。 ボラティリティが高い時や流動性が低い時、指値注文が部分的に執行されることがありますので、ご了承ください。これは、価格が合致した場合、ポジションが即座に全額または一部で満たされることを意味します。お客様の場合、注文は部分的に執行されたので、通知書が届いたのです。 注文が部分的に成立しているにもかかわらず、すべての注文を決済する方法はわかりました。 edit: シンボル注文とマジックナンバー注文をちゃんとチェックしないといけないことに今気づきました。 edit: 部分的に閉じていても注文を閉じるようにするclose all orders関数はこちらです。 //Close all my Orders void CloseAllOrders() { int notMyOrders = 0; while (OrdersTotal()>notMyOrders) { notMyOrders = 0; for(int i = OrdersTotal()-1; i >= 0 ; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) {notMyOrders++; continue;} if(OrderType()<= 1)CloseOrder(); } } return; } かきなおし 削除済み 2013.12.23 17:44 #32 deVries: リライト wow! 4、5回読み返したけど、理解できたよ。ありがとうございます。 そして...OrderSelectが falseを返したらどうなるのでしょうか? OrderSelectがfalseを返すことはよくあることですか?それは可能ですか? Tjipke de Vries 2013.12.23 18:00 #33 prupru: わあああああああああああああああああああああああああああああああああああああああああああああああああ4、5回読み直したけど、理解できたよ。ありがとうございます。そして...OrderSelectが falseを返したらどうなるのでしょうか?オーダーセレクトがfalseを返すことはよくあることですか?それは可能ですか? for(int i = OrdersTotal()-1; i >= 0 ; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; i= 0 ループから戻る i = -1 if(OrderSelect(-1,SELECT_BY_POS,MODE_TRADES)==false) break;// ==> 取引のチェックを 終了し、ループを抜けます。 次のCloseOrder() //CloseOrder void CloseOrder() {double PR=0; while(!IsTradeAllowed()) Sleep(10); RefreshRates(); if(OrderType()==OP_BUY) PR=Bid; if(OrderType()==OP_SELL) PR=Ask; if(!OrderClose(OrderTicket(),OrderLots(),PR,Slippage,CLR_NONE)) { Print("Close order error: ",GetLastError()); Print("Type ", OrderType()," PR ",PR, " Ask ", Ask, " Bid ", Bid, " OrderTicket ", OrderTicket(), " OrderLots ", OrderLots()); } return;} //--------------------------- end of close order GetLastError() から返される一般的なエラーは何ですか? CloseOrderが失敗した場合、次の取引も失敗している可能性があります。 このような状況を回避するためにはどうしたらよいのでしょうか? 削除済み 2013.12.24 08:13 #34 deVries:このような事態を避けるためには、どうすればいいのでしょうか? まだわかりません。よく考えてみないと。 今、別の問題で行き詰っています。 Windows2003のVPSにEAを置いたのですが、「terminated by timeout」というエラーが返ってくるのです。 しかも、このエラーはcloseとopenを繰り返している間ではなく、expert jushがクロスをチェックしてアイドル状態になったときに出る。 つまり、プログラムは新しいバーが開くかどうかをチェックし、trailingstop = 0なのでトレーリングストップ関数は 呼ばれず、新しいバーが開いたらEMAのクロスをチェックし、クロスがないので(タイムアウトエラーが出た時はEMAラインがクロスから遠かった)プログラムはreturnes(0)になるのですが、これはどうしたことでしょう。 サイクルはありません!どうしてタイムアウトで終了してしまうのでしょうか? Tjipke de Vries 2013.12.24 09:27 #35 prupru: まだわからない。よく考えてみないと。 今、別の問題で行き詰っています。 Windows2003のVPSにEAを置いたのですが、「terminated by timeout」というエラーが返ってくるのですが、自宅のPCではこんなエラーは見たことがありません。 しかも、このエラーはcloseとopenを繰り返している間ではなく、expert jushがクロスをチェックしてアイドル状態になったときに出る。 つまり、プログラムは新しいバーが開くかどうかをチェックし、trailingstop = 0なのでトレーリングストップ関数は呼ばれず、新しいバーが開いたらEMAのクロスをチェックし、クロスがないので(タイムアウトエラーが出た時はEMAラインがクロスから遠かった)プログラムはreturnes(0)になるのですが、これはどうしたことでしょう。 サイクルはありません!どうしてタイムアウトで終了してしまうのでしょうか? This is not a cycle ? while(!IsTradeAllowed()) Sleep(10); 削除済み 2013.12.24 09:48 #36 deVries: これはサイクルではないのですか? EAを終了させた時間帯はEMAラインが交差していないため、NewOrder関数が 呼ばれず、NewOrder関数内にあるサイクルが実行されなかったということです。 IsStopped条件追加 while( (!IsTradeAllowed()) && (!IsStopped()) ) Sleep(10); while ( (LotRemains>0) && (!IsStopped()) ) while ( (OrdersTotal()>0) && (!IsStopped()) ) 削除済み 2013.12.24 13:16 #37 多分、タイムアウトエラーは、私がVPSプロセッサリソースを使い果たしたので、ポップアウトします。私はより高価なプランに変更し、私はWindowsのuodateのような重い何かを実行するまで、私はそれらを見ていません。 1234 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
今、もっと大きな問題があります。私のブローカーは、注文を部分的に実行する傾向があります。
親愛なるお客様へ
お客様の取引は価格587.318で部分的に(15.84のうち2.32ロット)開始されたことをここにお知らせします。
この問題について何かご質問がありましたら、ご遠慮なくお問い合わせください。
よろしくお願いします。
ブローカー
以下はサポートからのコメントです。
ボラティリティが高い時や流動性が低い時、指値注文が部分的に執行されることがありますので、ご了承ください。これは、価格が合致した場合、ポジションが即座に全額または一部で満たされることを意味します。お客様の場合、注文は部分的に執行されたので、通知書が届いたのです。
注文が部分的に成立しているにもかかわらず、すべての注文を決済する方法はわかりました。
edit:
シンボル注文とマジックナンバー注文をちゃんとチェックしないといけないことに今気づきました。
edit: 部分的に閉じていても注文を閉じるようにするclose all orders関数はこちらです。
かきなおし
リライト
wow!
4、5回読み返したけど、理解できたよ。ありがとうございます。
そして...OrderSelectが falseを返したらどうなるのでしょうか?
OrderSelectがfalseを返すことはよくあることですか?それは可能ですか?
わあああああああああああああああああああああああああああああああああああああああああああああああああ
4、5回読み直したけど、理解できたよ。ありがとうございます。
そして...OrderSelectが falseを返したらどうなるのでしょうか?
オーダーセレクトがfalseを返すことはよくあることですか?それは可能ですか?
i= 0
ループから戻る
i = -1
if(OrderSelect(-1,SELECT_BY_POS,MODE_TRADES)==false) break;// ==> 取引のチェックを 終了し、ループを抜けます。
次のCloseOrder()
GetLastError() から返される一般的なエラーは何ですか?
CloseOrderが失敗した場合、次の取引も失敗している可能性があります。
このような状況を回避するためにはどうしたらよいのでしょうか?
このような事態を避けるためには、どうすればいいのでしょうか?
まだわかりません。よく考えてみないと。
今、別の問題で行き詰っています。
Windows2003のVPSにEAを置いたのですが、「terminated by timeout」というエラーが返ってくるのです。
しかも、このエラーはcloseとopenを繰り返している間ではなく、expert jushがクロスをチェックしてアイドル状態になったときに出る。
つまり、プログラムは新しいバーが開くかどうかをチェックし、trailingstop = 0なのでトレーリングストップ関数は 呼ばれず、新しいバーが開いたらEMAのクロスをチェックし、クロスがないので(タイムアウトエラーが出た時はEMAラインがクロスから遠かった)プログラムはreturnes(0)になるのですが、これはどうしたことでしょう。
サイクルはありません!どうしてタイムアウトで終了してしまうのでしょうか?
まだわからない。よく考えてみないと。
今、別の問題で行き詰っています。
Windows2003のVPSにEAを置いたのですが、「terminated by timeout」というエラーが返ってくるのですが、自宅のPCではこんなエラーは見たことがありません。
しかも、このエラーはcloseとopenを繰り返している間ではなく、expert jushがクロスをチェックしてアイドル状態になったときに出る。
つまり、プログラムは新しいバーが開くかどうかをチェックし、trailingstop = 0なのでトレーリングストップ関数は呼ばれず、新しいバーが開いたらEMAのクロスをチェックし、クロスがないので(タイムアウトエラーが出た時はEMAラインがクロスから遠かった)プログラムはreturnes(0)になるのですが、これはどうしたことでしょう。
サイクルはありません!どうしてタイムアウトで終了してしまうのでしょうか?
This is not a cycle ?
これはサイクルではないのですか?
EAを終了させた時間帯はEMAラインが交差していないため、NewOrder関数が 呼ばれず、NewOrder関数内にあるサイクルが実行されなかったということです。
IsStopped条件追加