[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 610

 
Dimka-novitsek:

こんにちは。注文の修正、つまりその条件に対する注文の選択サイクルについて、ご教示ください。まずTakeProfitでトリガーされた注文を見つけると、それはチケットタケットを使った特定の注文です。したがって、ループは10回に1回程度失敗し、それはテスターの緑と青の線の違いで示される。そして可視化-ストップロスが動かないこともある。

一般的に、ヘルプ、お願いします

コンディション

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
1 .Выполняется, если в истории термина нет ордеров, и продолжать цикл в таком случае не имеет смысла.
2. Чтобы найти ордер, сработавший именно по тейкпрофиту надо сравнить значение ТП со значением цены закрытия ордера
3.  Если вам нужен не любой ордер,закрытый по ТП, надо найти последний.
4. Еси в if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)) используется значение tucket, Выбранное в предыдущем цикле, ордер нельзя модифицировать, потому, что он уже закрыт. 
 

1.端末の履歴に注文がなく、その場合サイクルを継続する意味がない場合に実行されます。

ありがとうございます!!!そこが勝負どころです。それが問題なんだ!!!よくもまあ、たまには自分を改造したものだ。

2.テイクプロフィットでトリガーされた注文を見つけるには、TPの値を注文の終値と 比較する必要があります。

私はまず、履歴上のループで一定の順番を選択し、そのように比較しているようです。

 
ストックをコメントに変換するには、コードを貼り 続けるのではなく、行末の;?
 

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; 私のループでは、次のようになります。もし端末の履歴に注文がなく、その場合にループを継続しても意味がなければ、continue!

というわけで、こんな感じでしょうか。

うわー、なぞなぞだー!!!

 
文字列の最後には //comment- 2つのスラッシュの先など、コンパイラが読めないものがあります。
 
Dimka-novitsek:

1.端末の履歴に注文がなく、その場合サイクルを継続する意味がない場合に実行されます。

ありがとうございます!!!そこが勝負どころです。それが問題なんだ!!!よくもまあ、たまには自分を改造したものだ。

2.テイクプロフィットでトリガーされた注文を見つけるには、TPの値を注文の終値と比較する必要があります。

私はまず、履歴上のループで一定の順番を選択し、そのように比較しているようです。


特定のオーダー、つまりチケット番号がわかっている場合は、サイクルは必要なく、OrderSelect(ticket,SELECT_BY_TICKET, MODE_HISTORY) を選択するだけです。
 
ありがとうございます!!!挑戦してみます!
 
Dimka-novitsek:

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; 私のループではこのようになっています - 期間履歴に注文がなく、その場合にループを継続しても意味がない場合は、continueです!

というわけで、こんな感じでしょうか。

うわー、なぞなぞー!!!


その後、break またはreturn...continue; -- サイクル継続演算子
 
ilunga:

じゃあなんで同じものを何回も連続で比較してるんだ?

さて、どのように比較すればよいのでしょうか?
 
Dimka-novitsek:

if(Stoch_1>Stoch_2) { flag1=1 ; Print (flag1,flag2,flag3,flag4); }.


if(Stoch_1<Stoch_2 && flag1==1) flag2=1 ; Print (flag1,flag2,flag3,flag4); }.

if ((Stoch_1>Stoch_2) && flag1==1 && flag2==1) {flag3=1; Print (flag1,flag2,flag3,flag4);PlaySound("alert.wav");}; }.


if(Stoch_1<Stoch_2 && flag1==1 && flag2==1 && flag3==1) flag4=1;
{プリント(flag1,flag2,flag3,flag4);}。
if(Stoch_1>Stoch_2 && フラグ1==1 && フラグ2==1 && フラグ3==1 && フラグ4==1)
{OrderSend (Symbol( ), OP_SELL, 0.01 ,Bid, 0, 0, NULL, 450, 0, CLR_NONE);
プリント("OUT");}。



flag1=0とする。
flag2=0とする。
flag3=0とする。
flag4=0とする。

学ぶことを理解し、学ぶために何かを書く...。少なくとも私は、あなたの括弧が役割を果たすようにアレンジした、と思っています。


そして、あなたのコードは、コンパイラで24のエラーを出したにもかかわらず!!それでも、ずさんな助けにも感謝します...。を考えて...(現在は動作しています。原理的にはそのようにしようとしたのですが、句読点が問題でした)