[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 166

 
Xaoss1990:

プロフェッショナルの皆さん、またまたご協力お願いします

下記は取引を終了するコードの断片ですが、保留中の注文が実行されないとき、それらを削除しないことです、なぜかわかりません。しかし、すでに執行された保留中の注文を閉じる必要があるときは、すべてが正しく行われ、注文が執行されていない場合は、それが執行されるまでそこにハングアップするだけです...。

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();
orderticket = OrderTicket();

if (OrdersTotal() == 1 && Magic == 111 &&)OrderType( ) == 0) {
if (H1_BUY_5 == 0 || H1_BUY_1 == 0) {
OrderClose(orderticket, lots, Bid, 5, Yellow);
if (OrdersTotal() == 1) OrderDelete(orderticket, Brown);
} ・OrderType( ) == 0 { If (H1_BUY_5 == 0 || Bid, 5, Yellow) ・OrderTime(Ordtチケット) == 0

}



これは、買い注文だけを選択する条件です。

if (OrdersTotal() == 1 && Magic == 111 && OrderType( ) == 0)

ということで、保留中の注文を削除 する方法はありません。

 
Roger:


おそらく、最初にロットを計算してから

ありがとうございます、ロット計算を変更しましたが、まだうまくいきません。
 
Sancho77:
ありがとうございます、ロット計算を変更しましたが、まだうまくいきません。


うまくいかないのは、過去ログにどう書いてあるのか?

npがどのような値をとるか、ここで確認します。

if (OrderSelect(np, SELECT_BY_POS, MODE_TRADES)) {
      ClosePosBySelect();}
    }
 
ログブックにエラーメッセージが 表示されない。EAコード全体を見ることができますか?トロールでストップロスがブレイクイーブンに移動していれば、ロットの1/3をクローズするはずです。
ファイル:
 
Sancho77:
ログブックにエラーメッセージが表示されない。EAコード全体を見ることができますか?トロールでストップロスがブレイクイーブンに移動している場合は、ロットの1/3をクローズする必要があります。

うーーん......なんというか、すべてがメチャクチャですね。一般的に、すべてが間違っている、捨てて新しいものを書く方が簡単です。パラメータの定義が正しくない、関数の呼び出しが正しくない、無駄な計算が多い。コードを書かない方法のチュートリアルに良い。
 
Roger:

うーーーん、面倒くさい。すべてにおいて間違っている、捨てて新しいものを書く方が簡単だ。パラメータの定義が正しくない、関数の呼び出しが正しくない、無駄な計算が多い。コードを書かない方法のチュートリアルにも良さそうです。
よし、最初からやろう)
 
Sancho77:
...トロールによってすでにブレイクイーブンに移動したストップロスがトリガーされた場合、ロットの1/3をクローズする必要があります。
基本的なことがわからないのに、なぜそんなことに挑戦するのか」と思いながら見ています。このような自己研鑽は害になるどころか、益になるのです。思考の閃きは、ミスの山に溺れる。
 
granit77:
基本的なことが分かっていないのに、なぜこのような仕事をするのだろう?このような自己研鑽は害になるどころか、益になるのです。思考の閃きは、ミスの山に溺れる。

おそらく、良い意味よりも悪い意味の方が大きいでしょう。
 
ええ、タイプミスです。
 

皆さん、アドバイスをお願いします。

N番目の条件が成立し、ストップがかかった場合を想像してください。しかし、ローソク足が何本か続いた後、N番目の条件が崩れました。この関数を使えば、N番目の条件が崩れた後に再び取引を開始することができます。つまり、N番目の条件により、何本か 前のバーで ストップを発動し、N番目の条件が落ちたので、再びトレードに入る、と判断する必要があるのです。