どのデザインが正しいのでしょうか? - ページ 4 12345678 新しいコメント Sergey Guliaev 2010.06.16 09:57 #31 Martingeil: こんな感じで作ってください。 if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) 紛らわしいのは、このセリフです。ここでは全く必要ないと思います。それとも私が間違っているのでしょうか? [Deleted] 2010.06.16 10:06 #32 valenok2003: 紛らわしいのは、このセリフです。ここでは全く必要ないと思います。それとも私が間違っているのでしょうか? それは、魔法の記号を切り取ること 検索するときは、まず、マジックのない記号だけの注文を検索し、そのような注文がなければ機能を停止する......、そのような記号の注文が見つかったら、その中からマジックを検索し、取引の流れに空きがあれば、マジックの一致するものをクローズさせる。 techno 2010.06.16 10:09 #33 valenok2003: 紛らわしいのは、このセリフです。ここでは全く必要ないと思います。それとも私が間違っているのでしょうか? 全オーダーを削除するということであれば、この行は不要です。正規化については、組み込みのスクリプトが、何をもって例とすべきと考えるのでしょうか。 Sergey Guliaev 2010.06.16 10:16 #34 Martingeil: その特定のキャラクターのマジカルをカットする必要がある 検索するときは、まず、マジェスティックなしのシンボルだけの注文を検索し、なければ機能を停止し、そのシンボルの注文があれば、それらを調べ、マジェスティックに一致するものを見つけ、取引の流れに空きがあれば、それらをクローズします。 また、MagicNumberはOrderMagicNumber()で取得するため、事前にどうやって知ることができるのでしょうか?また、セリフの他にOrderSymbol() == Symbol() が重複している。 また、この行 Print ("close ALL orders Type : order : Bid "+OrderType()+" : "+OrderOpenPrice()+" : "+Bid); そのようなmajikがない場合、機能は動作を停止し、そのようなmajikがある場合はそれらを検索します。 Sergey Guliaev 2010.06.16 10:25 #35 Techno: 注文をすべて削除するということであれば、この行は不要です。正規化については、組み込みのスクリプトが、何をもって例とすべきと考えるのでしょうか。 まあ、結局のところマルクスか。 Sergey Guliaev 2010.06.16 10:29 #36 Martingeil: この特定のシンボルのマジックをカットする必要があります。 注文を検索するとき、まずマジックナンバーのない注文を検索します。そのような注文がない場合、この関数は動作を停止します......そのような番号の注文を見つけた場合、すべての注文を調べてマジックナンバーを見つけ、取引の流れに空きがあればマジックナンバーに一致するすべての注文をクローズします。 なるほど、全注文を閉じるという話だけですね、だから最初わからなかったんです。 私は、あなたの例を勝手にこんな風にアレンジしてみました。 for (int trade = OrdersTotal() - 1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { if (OrderMagicNumber() == MagicNumber) { while (!IsTradeAllowed()) Sleep(1000); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), 5, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), 5, CLR_NONE); } } } しかし、すべての注文を終了するために for (int trade = OrdersTotal() - 1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { while (!IsTradeAllowed()) Sleep(1000); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), 5, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), 5, CLR_NONE); } } techno 2010.06.16 10:32 #37 valenok2003: まあ、結局はマルクス。 エンゲルスも)人格カルトは必要ない、自分の知識で書けばいい。) Vladyslav Goshkov 2010.06.16 10:56 #38 valenok2003: このような意味であれば の場合、コードの透明性を高めるために、ここに余分な変数があります。それとも別の話かな?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; } } } } この場合、それはこうです。 C/C++の「共通規格」は.NETです。 void Close_All() { int Total = OrdersTotal(); for (int i=Total-1; i >=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { 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; } } } } 操作回数の違い。この場合、あまり影響がないのであれば、例えばテスターのスタイルの違いは、最適化時間に顕著な影響を与えることになります。現実の世界では、スピードに影響し、それが致命的な場合もあります。 特にブレーキはそのようなデザインです(私はあなたのサイトで見たことがありませんが、なぜかほとんどの人がそれを好むのですね)。 for (int i=0; i<OrdersTotal(); i++) ここでは、ループの各パスで関数が呼び出されて います。演算コストの面では、最も「高い」演算である。 頑張ってください。 そういう意味で、コードを修正したんですね。 Sergey Guliaev 2010.06.16 11:20 #39 その結果、このようなスクリプトが出来上がりました。 //+------------------------------------------------------------------+ //| CloseThisSymbolAll.mq4 | //+------------------------------------------------------------------+ int start() { //---- for (int trade = OrdersTotal()-1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { while (!IsTradeAllowed()) Sleep(1000); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), 5, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), 5, CLR_NONE); } } //---- return(0); } //+------------------------------------------------------------------+ 質問 - なぜいつもすべての注文が終了しないのですか?例えば、売り注文を3つ連続で出して、スクリプトで決済しようとすると、1つ、2つ、または全部が決済されることがあります。その理由は何でしょうか。 TheXpert 2010.06.16 11:25 #40 まさか、数ある選択肢の中から間違ったものを選ぶとは、とんでもないことだ。コーディングなんてするもんじゃないな、小僧。 再引用で 閉まらない。 12345678 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんな感じで作ってください。
紛らわしいのは、このセリフです。ここでは全く必要ないと思います。それとも私が間違っているのでしょうか?
紛らわしいのは、このセリフです。ここでは全く必要ないと思います。それとも私が間違っているのでしょうか?
それは、魔法の記号を切り取ること
検索するときは、まず、マジックのない記号だけの注文を検索し、そのような注文がなければ機能を停止する......、そのような記号の注文が見つかったら、その中からマジックを検索し、取引の流れに空きがあれば、マジックの一致するものをクローズさせる。
紛らわしいのは、このセリフです。ここでは全く必要ないと思います。それとも私が間違っているのでしょうか?
その特定のキャラクターのマジカルをカットする必要がある
検索するときは、まず、マジェスティックなしのシンボルだけの注文を検索し、なければ機能を停止し、そのシンボルの注文があれば、それらを調べ、マジェスティックに一致するものを見つけ、取引の流れに空きがあれば、それらをクローズします。
OrderSymbol() == Symbol()
が重複している。
また、この行
そのようなmajikがない場合、機能は動作を停止し、そのようなmajikがある場合はそれらを検索します。
注文をすべて削除するということであれば、この行は不要です。正規化については、組み込みのスクリプトが、何をもって例とすべきと考えるのでしょうか。
まあ、結局のところマルクスか。
この特定のシンボルのマジックをカットする必要があります。
注文を検索するとき、まずマジックナンバーのない注文を検索します。そのような注文がない場合、この関数は動作を停止します......そのような番号の注文を見つけた場合、すべての注文を調べてマジックナンバーを見つけ、取引の流れに空きがあればマジックナンバーに一致するすべての注文をクローズします。
なるほど、全注文を閉じるという話だけですね、だから最初わからなかったんです。
私は、あなたの例を勝手にこんな風にアレンジしてみました。
しかし、すべての注文を終了するために
まあ、結局はマルクス。
このような意味であれば
の場合、コードの透明性を高めるために、ここに余分な変数があります。
それとも別の話かな?
この場合、それはこうです。
C/C++の「共通規格」は.NETです。
操作回数の違い。この場合、あまり影響がないのであれば、例えばテスターのスタイルの違いは、最適化時間に顕著な影響を与えることになります。現実の世界では、スピードに影響し、それが致命的な場合もあります。
特にブレーキはそのようなデザインです(私はあなたのサイトで見たことがありませんが、なぜかほとんどの人がそれを好むのですね)。
ここでは、ループの各パスで関数が呼び出されて います。演算コストの面では、最も「高い」演算である。
頑張ってください。
そういう意味で、コードを修正したんですね。
その結果、このようなスクリプトが出来上がりました。
質問 - なぜいつもすべての注文が終了しないのですか?例えば、売り注文を3つ連続で出して、スクリプトで決済しようとすると、1つ、2つ、または全部が決済されることがあります。その理由は何でしょうか。まさか、数ある選択肢の中から間違ったものを選ぶとは、とんでもないことだ。コーディングなんてするもんじゃないな、小僧。
再引用で 閉まらない。