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

 
VasiliKolchanov:
Ihorさん、ご回答ありがとうございます。1つだけ質問があるのですが、遅延は発生しないのでしょうか?つまり、一時停止中に全てのティックで アラートが蓄積され、しばらくするとEAが全てのアラートを送信してくれるのでしょうか。バカバカしいと思われるかもしれませんが、すみません新米~勉強中です。

そうならないのは、アラートが発動されるまでに至らないからです。1つのアラートが表示され、一定時間が経過すると、また別のアラートが表示されるといった具合です。

 
Vitaly Muzichenko:

本当は逆であるべき)

ありがとうございます!!!

 

何が問題なのか説明してください。日足ローソク足による日足分解で注文開始を設定しました。すなわち、00:00に、新しい日足ロウソクが前のロウソクの内側で開く。



double open1, close1, open, close;

open1=iHigh(NULL,PERIOD_D1,1)とする。

close1=iLow(NULL,PERIOD_D1,1)とする。

open=iHigh(NULL,PERIOD_D1,0)とする。

close=iLow(NULL,PERIOD_D1,0)とする。


if(O(m)==false){ // オーダーがない場合

if(open1<Ask){。

b(......);}//オープンオーダー


if(close1>Ask){。

s(.........);}}/オープンオーダー



モスクワ時間、00.03の前のローソク足の中で注文が開く、夜、新しいローソク足ができたので00.03で見ていたが、やはり注文が開いた。まるでEAが新しい日足ローソク足を見ていないかのようです。

1時間ごとの故障で全く同じものをやったものの、効果はバッチリです。

06.00にEAを有効にすると、その通りに動作しますが、06.00前に日中の故障が起こり、06.00以降に間違った場所で注文が開始されるのは好ましくないでしょう。問題は、日足ロウソクとモスクワ時間との時差にある。DCグランドキャピタル


助けて! お願い!

 
エフゲニー・オシュルケヴィチ :自分の質問には自分で答えていますね。ローソク足はサーバータイムで 描画されます。そして、あなたの地元のものは、それと一致しないかもしれません。

だから、フクロウを一晩置いて、普通に書けば、位置が決まります。または、興味のある時間間隔でローソク足を計算してみてください。

 
Ihor Herasko:

そうならないのは、アラートが発動されるまでに至らないからです。1つのアラートが表示され、一定時間後に別のアラートが表示されます

ありがとうございました。

 

明日に延期されたオープン注文は、自動的に指定されたパラメータに新しいセッションのキャリー利益のオープニングで、状況に対処する方法をアドバイスしてください?唯一の問題は、新しいセッションをどのように認識するかということです。新しいバー 検出機能は、私の状況では機能しません。私は別々に注文の開始の年、月、日を返す方法を知っていれば、私はこの場合の問題を解決する、私はすべての残りの部分を行う方法がわからないとどのような形式で関数が値を返すアドバイスください OrderOpenTime (年、月、日、時間:分:秒または時間:分:秒)?

 
VasiliKolchanov:

明日に延期されたオープン注文は、自動的に指定されたパラメータに新しいセッションのキャリー利益のオープニングで、状況に対処する方法をアドバイスしてください?唯一の問題は、新しいセッションをどのように認識するかということです。新しいバーを 認識する機能は、私の状況下では機能しません。あとは、どうすればいいのか、おおよそ見当がつきます。

明らかに-新しいセッションを認識する機能が必要です)

 
VasiliKolchanov:

多分誰かがこの順序の開始の年、月、日を別々に返す方法を知っている、問題は解決されるでしょう。 私は残りを行う方法を知りません。 そしてそれは私を助けるか、どのような形式で戻り値の関数OrderOpenTime(年.月.日.時間:分:秒または時間:分:秒)提案しないかわからないのでしょうか。

ここでは、クローズドオーダーの履歴をチェックし(今はマーケットオーダーがないので、自分でやり直せます)、最後のクローズドオーダーを見つけてログに残すスクリプトをスケッチしてテストしています。

#property strict
//+------------------------------------------------------------------+
void OnStart()
  {
   int i,otype,k=OrdersHistoryTotal();
   string sy=Symbol();
   datetime oclose,t=0;
   for(i=0; i<k; i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) 
        {
         otype    = OrderType();
         oclose   = OrderCloseTime();
         if(OrderSymbol()==sy)
           {
            if(otype==OP_BUY || otype==OP_SELL)
              {
               if(t<oclose)
                 {
                  t=oclose;
                 }
              }
           }
        }
     }
   Print("Последний ордер закрыт: ",TimeDay(t)," день, ",TimeHour(t),"час, ",TimeMinute(t)," минуты");
  }
//+------------------------------------------------------------------+

の結果です。

21:12:07.558 test EURUSD,H1: Last order closed: day 27, 21h, 17 min.

 
Taras Slobodyanik:

明らかに - 新しいセッション認識機能が必要です。)

タラスはどのように見えますか?
 
Igor Makanu:

私は、クローズした注文の履歴をチェックし(今は成行注文がないので、自分でやり直してください)、最後にクローズした注文を見つけ、それに関する情報を記録するスクリプトをスケッチしてテストしています。

の結果です。

21:12:07.558 test EURUSD,H1: Last order closed: day 27, 21h, 17 min.