MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 467

 
haron312:

こんにちは、私が注文を修正(Breakevenに転送)しようとしたときにテスターで発生するエラーについて助けてください:私はSLの代わりにOrderOpenPrice()関数を置きましたが、テスターはエラー1(ドキュメントによると、関数へのパラメータとして未変更の値を 渡す試みがあることを意味します)を表示します。コードを添付しますありがとうございました。

void DeleteOrderFunction2() //2番目の注文を削除し、ある日の夕方に2番目の注文をBreakevenに設定する関数です。

{

bool flag = falseです。

if (FlagDeleteSecondOrder2 == true)

{

if(DayOfWeek() == DAYOFWEEK && //平日を選択した場合)

Hour() == 22 //if 夕方

)

{

if(BuyCount() == 1 && if(未決済の買い注文が ある場合)

SellStopCount() == 1 //売り注文がある場合

)

{

for( int i = 0; i < OrdersTotal(); i++)//注文を作成する

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(OrderType()の場合)

{

case OP_BUY: if(OrderProfit() > 0 &&)

ビッド > オーダーオープン価格()

)

{

OrderModifyX(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Arrow_Color)。

フラグ =true とする。

}

が壊れる。

case OP_SELLSTOP: if(flag==true)

{

OrderDeleteX(OrderTicket(), Arrow_Color)。

}

が壊れる。

}

}

}

if(SellCount() == 1 && // 未決済の売り注文がある場合)

BuyStopCount() == 1 //買い注文が待機中

)

{ Print("IS!!!!")。

for( int i = 0; i < OrdersTotal(); i++)//注文を作成する

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(OrderType()の場合)

{

case OP_SELL: if (OrderProfit() > 0 &&)

アスク < 注文開始価格()

)

{

OrderModifyX(OrderTicket(), OrderOpenPrice(),OrderTakeProfit(),0, Arrow_Color)を実行。

flag = true;Print("flag =", flag);

}

が壊れる。

case OP_BUYSTOP: if(flag == true)

{

Print("flag =", flag);

OrderDeleteX(OrderTicket(), Arrow_Color)。

}

が壊れる。

}

}

}


}


}

}

OP_BUYが注文の中で最初に遭遇したと仮定して、それを修正してフラグを=trueに設定すると、それが遭遇したときに保留中の注文が削除されることになります。そして、保留中の注文が最初に遭遇した場合、何が起こるかを見てみましょう....
 

インジケータを スクリプトに変換するのを手伝ってください

double buf_1[];
double buf_2[];
//+------------------------------------------------------------------+
//| Функция инициализации, запускается один раз                      |
//+------------------------------------------------------------------+
int init() 
  {
   SetIndexBuffer(0,buf_1);
   SetIndexBuffer(1,buf_2);

   SetIndexStyle (0,DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexStyle (1,DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexArrow (0,233);
   SetIndexArrow (1,234);

   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   
   return(0);
  }
//+------------------------------------------------------------------+
//| Основная Функция, запускается на каждом тике                     |
//+------------------------------------------------------------------+
int start() 
  {
   if (Bars <= 100) return(0);
   int ExtCountedBars = IndicatorCounted();
   if (ExtCountedBars < 0) return(-1);
   if (ExtCountedBars > 0) ExtCountedBars--;
   for (int i=Bars-ExtCountedBars-1; i>=0; i--)
     { 
      if (High [i+2] == High[i+3])
      bool DOWN   = High[i+1]== High[i+2]; 
                                               
                    
      if (Low [i+2] == Low [i+3])             
     bool UP =  Low[i+1]==Low[i+2] ;
      
       
      if (UP)   buf_1[i+1] = Low[i+1]-3*Point;
      if (DOWN) buf_2[i+1] = High[i+1]+3*Point;
     }
   return(0);
 }
  //  ---- end

High [i+2]とLow[i+1] の代わりにiHigh(NULL,PERIOD_H1,[i+2])とiLow(NULL,PERIOD_H1,[i+2])記述 すればタイムフレーム制御できるのでは?

ハイが一致したら売り、ローが一致したら買い!?

 
Rewerpool:

インジケータを スクリプトに変換するのを手伝ってください

High [i+2]とLow[i+1] の代わりにiHigh(NULL,PERIOD_H1,[i+2])とiLow(NULL,PERIOD_H1,[i+2])記述 すればタイムフレーム制御できるのでは?

ハイが一致したら売り、ローが一致したら買い!?

三拍子揃うも久しからず

 
STARIJ:

3つのヒットは長い間待つ必要があります。

ダフ屋じゃないんだから、待つよ。4桁で正規化すればいい。

 

mql5では、オープンポジションがあるので、このポジションのすべての取引を見つけ、それらが成行注文または保留中の注文によって 開かれたかどうかを判断します。

mql4で、未決済注文が成行注文で開かれたか、保留注文で開かれたか、保留注文のトリガーでティッカーが変わったかを調べるにはどうすればよいですか?

 
Rewerpool: ダフ屋じゃないんだから、待つよ。4桁で正規化すればいい。

はい、そして結果は弱いです・・・。

5ハイがマッチングして値上げ。

 
Pavel Kolchin:

mql5では、オープンポジションがあるので、このポジションのすべての取引を見つけ、それらが成行注文または保留中の注文によって 開かれたかどうかを判断します。

mql4で、未決済ポジションが成行注文または保留注文によって開かれ、保留注文がトリガーされたときにそのティッカーが変化したかどうかを調べるにはどうすればよいですか?

マギカを持たせる

 
STARIJ:

マギカを持たせる

注文はユーザーによって開かれますが、開かれたときのタイプを定義する必要があります。

 
InChartEventの定義ごとにインジケータ・ハンドルを再定義するか、OnInitであらかじめすべての可能なハンドルを配列として定義するか、どちらが「より多くロード」されるかということです。
 
Roman Sharanov:
InChartEventが定義されるたびにインジケータハンドルを再定義するか、OnInitであらかじめすべての可能なハンドルを配列として定義するか、どちらが「より多くロード」できるでしょうか。
異なる。