[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 23

 
WindSW:

私のコードでは、ArrayRangeを介して反復回数を簡単に決定することができます。

xDelH[countDH][0]=HBar[countH][0]; (HBar[countH][0] はすでに埋まっていて、それ自身の値を持っているのに)と書くと、なぜ0になるのですか?全くできないのでしょうか?

この代入操作の後、xDelH[countDH][0]の値をどのように確認するのでしょうか。
 
最後のオープンオーダーのテイクプロフィット価格を記憶している関数を教えてください。
 
Frostr:
最後のオープンオーダーのテイクプロフィット価格を記憶している関数を教えてください。

正確に覚えておく必要がある場合は、注文を開くたびにTakeProfitの 値を変数に保存しておけばよいでしょう。
 

ただ、必要なのは

//平均価格を計算して平均化
double averageprice =NormalizeDouble(sum/allots, Digits);
//各開注文に対して同じTakeProfitを動かしてシリーズの全注文を変更
for ( trade = OrdersTotal() - 1; trade >= 0; trade-- )
{
if ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol()))
{
//買い注文で利益を得る
if ( OrderType() == OP_BUY) tp = averageprice + TP * Point;
//売り注文で利益を得る
if ( OrderType() == OP_SELL) tp = averageprice - TP * Point;
//シリーズに属する注文を変更する
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(tp, Digits), 0, Yellow);
}.
}
}

古い注文を修正し、そのTakeProfitを新しく開いた注文のTakeProfitに変更(価格が最後の注文をストップでクローズした場合、以前の注文もすべてクローズされます)。

 
Frostr:

ただ、必要なのは

//平均価格の計算による平均化
double averageprice = NormalizeDouble(sum/allots, Digits);
//各開注文のTakeProfitを同じにすることで、シリーズのすべての注文を変更する。
for ( trade = OrdersTotal() - 1; trade >= 0; trade-- )
{
if ( OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol()))
{
//買い注文の利益
if ( OrderType() == OP_BUY) tp = averageprice + TP * Point;
//売り注文の場合は利食い
if ( OrderType() == OP_SELL) tp = averageprice - TP * Point;
//シリーズに属するオーダーを変更する
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(tp, Digits), 0, Yellow)です。
}
}
}

古い注文を修正し、そのTakeProfitを新しい新規注文のTakeProfitに変更(価格がストップで最後の注文を閉じると、以前のすべての注文も閉じます)。


シリーズ全体で1つのストップロスを設定すると、前のものが閉じます。これにより、これらの注文で得られた利益を保存したり、価格が変化した場合に損失を減らすことができます。 各注文のストップロスを異なるまま(変更せずに)にしておくと、1つの注文だけがクローズされることになります。他の注文のTakeProfitの 値は、再計算するか、以前の値と同じに設定 する必要があります。
 
paladin80:
この代入操作の後、xDelH[countDH][0]の値をどのように確認するのでしょうか。

ビアプリント
 

ごきげんよう!!!私はここに2つの注文を出しています。1つはストップ高、もう1つはストップ安です。テスターでは、両方が削除されています!!!!

 if   (Svetsja_1 &&  !Svetsja_2  && !Svetsja_3  &&  !Orderbuy ){
    //стоп лосс 25 п. профит 30 п;стоп лосс 25 п. тралится по MA 20    
         
        RefreshRates();
          OrderSend (Symbol( ), OP_BUY, lot ,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Ask- (25*Point),Digits),   NormalizeDouble( Ask+( 30*Point),Digits), NULL, 450, 0, CLR_NONE);
           int Error=GetLastError();if (Error==0){  
           Sleep(2000); RefreshRates(); 
          OrderSend (Symbol( ), OP_BUY,  lot ,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Ask- (25*Point),Digits),   0, NULL, 450, 0, CLR_NONE); }
            Error=GetLastError(); Orderbuy=1; 
            if (Error!=0){ string errorcomment = "Ошибка открытия  ордера OP_BUY"  + " " + Symbol() +  " " + ErrorDescript(Error); 
            Print (errorcomment);}   }  } }

何が起こっているのか、まったくわからない。


 
Dimka-novitsek:

ごきげんよう!!!私はここに2つの注文を出しています。1つはストップ高、もう1つはストップ安です。テスターでは、両方が削除されています!!!!

何が起こっているのか、まったくわからない。



よく見ると、両方にストップロスを設定し、片方だけにテイクプロフィットを設定していますね。つまり、お書きのように、両方がストップロスで決済され、片方だけがテイクプロフィットで決済されるということです。
 
Dimka-novitsek:

ごきげんよう!!!私はここに2つの注文を出しています。1つはストップ高、もう1つはストップ安です。テスターでは、両方が削除されています!!!!

何が起こっているのか、まったくわからない。

まだ "吸う "のは早いかもしれない-COULD BE SUSPENDED!:)))
 
はい、ありがとうございます!!!通りからまっすぐパソコンに向かってきた私ですが、すっかり戸惑ってしまいましたよ。