どのデザインが正しいのでしょうか? - ページ 3 12345678 新しいコメント PapaYozh 2010.06.15 14:52 #21 Techno: PapaYozh いずれもクローズのみですが、モディファイについてはいかがでしょうか。クローズと修正のために2つの異なるループを持つよりも、完全な処理のために2つのティックを持つ方が良いですか? もし何かが閉じられ、何かが修正されなければならないのなら、for (i=0; i<OrderTotals(); i++)という構造はすべて不正確です。 OrdersTotal()-1を0にする必要があります。 for ( i=OrderTotals()-1; i>=0; i-- ) { Sergey Guliaev 2010.06.15 14:56 #22 つまり、このデザインでいいのでしょうか? void Close_All() { int Total = OrdersTotal(); for (int i=Total; i >=1; i--) { if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true) { switch(OrderType()) { case OP_BUY : OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5); break; case OP_SELL: OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),5); break; default : break; } } } } Sergey Guliaev 2010.06.15 15:02 #23 しかし、やはり正常化は理解できない。 価格を計算すれば、端末の桁まで持っていかなければならないことは明らかなのですが、それは一つです。 しかし、この場合、フローから得られた現在値で 決済しているので、当然ながらDigitsより長くなることはあり得ません。 TheXpert 2010.06.15 15:06 #24 valenok2003: しかし、ここではフローから導き出された現在値で決済しており、当然ながらDigitsより長くなることはありえない。 これは、正規化されていない見積もりを持つテスターの場合です。 techno 2010.06.15 15:07 #25 valenok2003:しかし、やはり正常化は理解できない。 価格を計算すれば、端末の桁まで持っていかなければならないことは明らかなのですが、それは一つです。しかし、この場合、フローから得られた現在値で決済しているので、当然ながらDigitsより長くなることはあり得ません。桁数が4の 場合、Bidが1.32343545654になることがあります。滅多にないことだが、そういうこともある。 Sergey Guliaev 2010.06.15 15:09 #26 Techno: Digits=4 の時、Bid が 1.32343545654 になることがありますが、この現象が発生します。滅多にないことだが、そういうこともある。 生きて、学ぶ。ありがとうございます。 Vladyslav Goshkov 2010.06.15 21:36 #27 valenok2003: つまり、このデザインでいいのでしょうか? そうではありません。楽器の「記号」に対するチェックはありません。複数の商品で注文を出す場合、一方の商品の注文を他方の商品の価格で決済するリスクがあります。EAが移動したチャートのシンボルの注文を決済する必要がある場合は、チャートの「シンボル」を使用する必要があります。 EAが移動したチャートに関わらず、すべての注文を決済する必要がある場合は、注文の「シンボル」を読み取り、該当する「シンボル」のアスクとビッドの使用を要求する必要があります。そして、コードには不要な動作があります。 頑張ってください。 [Deleted] 2010.06.15 22:21 #28 valenok2003: つまり、このデザインでいいのでしょうか? void CloseThisSymbolAll() { for (int trade = OrdersTotal() - 1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { while (!IsTradeAllowed()) Sleep(1000); if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), slip, Blue); if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), slip, Red); Print ("close ALL orders Type : order : Bid "+OrderType()+" : "+OrderOpenPrice()+" : "+Bid); } } } } こんな感じでやってください。 Sergey Guliaev 2010.06.16 08:53 #29 VladislavVG: はい、そしてコードに余分なアクションがあります。 このような意味であればint Total = OrdersTotal(); の場合、コードの透明性を高めるために、ここに余分な変数があります。 それとも、何か別の話をしているのでしょうか? Sergey Guliaev 2010.06.16 09:33 #30 Techno: Digits=4でBidが1.32343545654になることもある。滅多にないことだが、そういうこともある。 ただし、close.mq4 スクリプトの例(MT4標準配信)では、正規化は行われない。 if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) { cmd=OrderType(); //---- first order is buy or sell if(cmd==OP_BUY || cmd==OP_SELL) { while(true) { if(cmd==OP_BUY) price=Bid; else price=Ask; result=OrderClose(OrderTicket(),OrderLots(),price,3,CLR_NONE); if(result!=TRUE) { error=GetLastError(); Print("LastError = ",error); } else error=0; if(error==135) RefreshRates(); else break; } } } 12345678 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
PapaYozh いずれもクローズのみですが、モディファイについてはいかがでしょうか。クローズと修正のために2つの異なるループを持つよりも、完全な処理のために2つのティックを持つ方が良いですか?
もし何かが閉じられ、何かが修正されなければならないのなら、for (i=0; i<OrderTotals(); i++)という構造はすべて不正確です。
OrdersTotal()-1を0にする必要があります。
つまり、このデザインでいいのでしょうか?
しかし、やはり正常化は理解できない。
価格を計算すれば、端末の桁まで持っていかなければならないことは明らかなのですが、それは一つです。
しかし、この場合、フローから得られた現在値で 決済しているので、当然ながらDigitsより長くなることはあり得ません。
しかし、ここではフローから導き出された現在値で決済しており、当然ながらDigitsより長くなることはありえない。
しかし、やはり正常化は理解できない。
価格を計算すれば、端末の桁まで持っていかなければならないことは明らかなのですが、それは一つです。
しかし、この場合、フローから得られた現在値で決済しているので、当然ながらDigitsより長くなることはあり得ません。
Digits=4 の時、Bid が 1.32343545654 になることがありますが、この現象が発生します。滅多にないことだが、そういうこともある。
生きて、学ぶ。ありがとうございます。
つまり、このデザインでいいのでしょうか?
そうではありません。楽器の「記号」に対するチェックはありません。複数の商品で注文を出す場合、一方の商品の注文を他方の商品の価格で決済するリスクがあります。EAが移動したチャートのシンボルの注文を決済する必要がある場合は、チャートの「シンボル」を使用する必要があります。 EAが移動したチャートに関わらず、すべての注文を決済する必要がある場合は、注文の「シンボル」を読み取り、該当する「シンボル」のアスクとビッドの使用を要求する必要があります。そして、コードには不要な動作があります。
頑張ってください。
つまり、このデザインでいいのでしょうか?
はい、そしてコードに余分なアクションがあります。
の場合、コードの透明性を高めるために、ここに余分な変数があります。
それとも、何か別の話をしているのでしょうか?
Digits=4でBidが1.32343545654になることもある。滅多にないことだが、そういうこともある。
ただし、close.mq4 スクリプトの例(MT4標準配信)では、正規化は行われない。