初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 139

 

Strategy TesterでExpert Advisorを動かしているところです。BUYSTOP注文を変更すると、エラーが発生する。

その理由がわからない。私の注文が提示されている価格は、Ask価格より40円高く、StopLevel =30です。価格は正規化されていますが、他に必要なものはありますか?

 
khorosh:

Strategy TesterでExpert Advisorを動かしているところです。BUYSTOP注文を変更すると、エラーが発生する。

その理由がわからない。私の注文が提示されている価格は、Ask価格より40円高く、StopLevel =30です。価格は正規化されていますが、他に必要なものはありますか?

あるブローカーで見たのですが、10点ではなく、11点高く設定してみてください。
 
Лауреат:
必要な注文数を 設定する関数を作る方法を教えてください!例えば、指定した数の注文をそれ以上出さずに開くなどです。
 
Konstantin Erin:
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("The requirednumber of orders opened"); if this is used then several successive orders are opened ! もし別の取引シグナルがあれば注文ではないので、最初のオープンオーダー後にさらに取引シグナルがあれば必要数のオーダーを開くにはどうしたらいいでしょうか !?
 

なぜ誰も助けてくれないのですか、お願いします。

 
Лауреат:
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("The requirednumber of orders opened"); これが使われると、いくつかの連続した注文が開かれます!もし別の取引シグナルがあれば注文ではなく、最初の注文の後にさらに取引するシグナルがあれば必要数の注文を開かせる方法です!(if:OrderMax)?
enum Цвет   // Цвет флага
{
  Красный,
  Зеленый
};

Цвет Флаг=Красный;

void start()
{
   if(!Сигнал())Флаг=Зеленый;

   if(Сигнал()>0 && Флаг==Зеленый)
   {
      OrderSend(Покупка...);
      Флаг=Красный;
   }

   if(Сигнал()<0 && Флаг==Зеленый)
   {
      OrderSend(Продажа...);
      Флаг=Красный;
   }
}

int Сигнал()  // Сигналы покупки и продажи
{
   return ЧтоНадо;
}
これは5行程度の短いものでも良いのですが、考えるのが億劫で...。
 

みんな、このように動作するトレーリングストップを修正するために、どこで見つけるか、または私を助けるために助言してください。

例えば、TP=100、SL=200のBUY注文を建て、BUYになり50ポイント通過すると、SLが 値となり、TPは50ポイントに移動するなど、常に?

void TrailingPositions(int otype)
{

int cnt = OrdersTotal();

int lMinProfit = 0; // 最小ピップ数

int lTrailingStop = 40; // 後方位置レベル(直前のSL距離からのポイント数)

int lTrailingStep = 20; // トレーリングストップのレベル(何ポイント後にトリガーをかけるか)

for (int i=0; i<cnt; i++)
{
if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;

if (OrderType() == OP_BUY && otype == OP_BUY){
if (ビッド-オーダーオープン価格() > lMinProfit*Point) { {.
if (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point) { (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point)
if(OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point, TP + lTrailingStop * Point, 0, Blue))
Print("トレーリングストップが機能しています");
}
}
}

if (OrderType() == OP_SELL && otype == OP_SELL) { (OrderType() == OP_SELL)
if (OrderOpenPrice()-Ask > lMinProfit*Point) {。
if(OrderStopLoss() > Ask+(lTrailingStop+lTrailingStep-1)*Point || OrderStopLoss() == 0) { { (OrderStopLoss() > Ask+(lTrailingStop+lTrailingStep-1)*Point || OrderStopLoss() == 0)
if(OrderModify(OrderTicket(), OrderOpenPrice(), Ask+lTrailingStop*Point, TP - lTrailingStop * Point, 0, Red))
Print("トレーリングストップが機能しています");
}
}
}
 
LRA:
5行くらい短くてもいいんだけど、考えるのが面倒で...。
良いアイデアですね、早速試してみます。
 
同志の皆さん、こんにちは。オブジェクト "ボタン "のインストールで私を助けてください、私はエキスパートアドバイザーにコードを配置する必要があり、押されたか押されていない状態でチャートのボタンに直接boolの値を返します。ありがとうございました。
 
Arseniy Barudkin:
同志の皆さん、こんにちは。ボタン(button)オブジェクトの設定について教えてください。ありがとうございました。
ObjectGetInteger(ChartId(),"имя кнопки",OBJPROP_STATE)

これで