マルチカレンシー - マルチタイムアドバイザー - ページ 5

 
Vladimir Karputov:

あ、あったあった :)

そして、丁重にお別れをする。

それで私の疑問が解決するのであれば、提案されていることを書いてもいいと思っていますただ、なぜそれが必要なのかが理解できないのですが、教えていただけますか?

 
Vladimir Karputov:

あ、あったあった :)

そして、丁重にお別れをする。


//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright   "Copyright 2013"
#property link        "http://"
#property description "email:"
#property version     "1.0"
//--- Количество торгуемых символов
#define  NUMBER_OF_SYMBOLS 5
//--- Количество периодов торгуемых символов
#define  NUMBER_OF_PERIODS 19
//--- Имя эксперта
#define  EXPERT_NAME MQL5InfoString(MQL5_PROGRAM_NAME)
//--- Массивы для хранения внешних параметров
string          Symbols[NUMBER_OF_SYMBOLS]={"EURUSD.m","USDCHF.m","GBPUSD.m","NZDUSD.m","AUDUSD.m"};// Символ
ENUM_TIMEFRAMES Periods[NUMBER_OF_PERIODS]=
  {
   PERIOD_M1,PERIOD_M2,PERIOD_M3,PERIOD_M4,PERIOD_M5,
   PERIOD_M6,PERIOD_M10,PERIOD_M12,PERIOD_M15,PERIOD_M20,
   PERIOD_M30,PERIOD_H1,PERIOD_H2,PERIOD_H3,PERIOD_H4,
   PERIOD_H6,PERIOD_H8,PERIOD_H12,PERIOD_D1
  };
//--- Массив хэндлов сигнальных индикаторов
int signal_indicator_handles[NUMBER_OF_SYMBOLS][NUMBER_OF_PERIODS];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- Получим хэндлы индикаторов
   Print("Загрузка хендлов ......");
   for(int s=0; s<NUMBER_OF_SYMBOLS; s++)
      for(int p=0; p<NUMBER_OF_PERIODS; p++)
        {
         //--- Получим хэндл индикатора
         signal_indicator_handles[s][p]=iCustom(Symbols[s],Periods[p],"adxcrossing");
         //--- Если не удалось получить хендл индикатора
         if(signal_indicator_handles[s][p]==INVALID_HANDLE)
            Print("Не удалось получить хэндл индикатора для символа "+Symbols[s]+"!");
        }
   Print("Загрузка окончена!!!");
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- При удалении с графика
   if(reason==REASON_REMOVE)
     {
      for(int s=0;s<NUMBER_OF_SYMBOLS;s++)
         for(int p=0;p<NUMBER_OF_PERIODS;p++)
            IndicatorRelease(signal_indicator_handles[s][p]);

     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   double ind_buy[1],ind_sell[];
   datetime t[1];
   for(int s=0;s<NUMBER_OF_SYMBOLS;s++)
      for(int p=0;p<NUMBER_OF_PERIODS;p++)
        {
         CopyTime(Symbols[s],Periods[p],0,1,t);
         //--- Получим значения индикатора
         if(CopyBuffer(signal_indicator_handles[s][p],0,0,1,ind_sell)<1 || CopyBuffer(signal_indicator_handles[s][p],1,0,1,ind_buy)<1)
           {
            Print("Не удалось скопировать значения ");
            return;
           }
         if(ind_buy[0]!=0 && Periods[p]==PERIOD_M1) Print(Symbols[s]," ",Periods[p]," ",ind_buy[0]," ",t[0]);
         if(ind_sell[0]!=0 && Periods[p]==PERIOD_M1) Print(Symbols[s]," ",Periods[p]," ",ind_sell[0]," ",t[0]);
        }
  }


5通貨ペア -各ティックで 19期間 インディケータ値を読み取る - 次は何?)

 
Tango_X:
EXPERTで全ての期間と複数の通貨ペアからインジケータから信号を得るための別の方法を知っている人がいるかもしれませんね。

可能であれば、インジケータコードを関数(または複数の関数)に転送し、EAにインストールしてください。すべてがクリアになると思います。

 
Реter Konow:

可能であれば、インジケータコードを関数(または複数の関数)に転送し、EAにインストールしてください。もっともっと意味があると思うんです。

これは必要ないかもしれません。

私の理解が正しければ、EAは新しいバーで シグナルを取得するのでしょうか?

 
Fast528:

暗い森このOnChartEventは、悪い夢のようにそれを忘れて、 648のアナトリー-カザルスキーの著者もそれで戦った)長いトピックがあり、強い動きでマルチシンボル+マルチタイムフレーム私はチャートが立つと思う、OnTickとは違って、これはキューを保存します。

何がそんなに暗いのか理解できない。極めてシンプルな機能です。もしかしたら、意図したとおりに使われていないのでは?

 
Tango_X:

問題は、私のインジケータが新しいバーではなく、TICKイベントでシグナルを出すことです - どうしたらいいですか?

新しいバー イベントは、常にティックイベントです。ちなみにMTでは、新しいバーは分頭ではなく、どの秒にも表示される。それゆえ、新しいバーがいつの間にか現れている。シンボルが多数ある場合、新しいバーイベントは非同期で到着する。

zyです。あなたの問題を理解しようとしている。
 
Реter Konow:

新しいバー イベントは、常にティックイベントです。ちなみにMTでは、新しいバーは分頭ではなく、分秒のどのタイミングでも発生します。その結果、いつの間にか新しいバーが出現しているのです。シンボルが多数ある場合、新しいバーイベントは非同期で到着する。

この方が私の問題に近い)

 
Tango_X:

こちらの方が私の問題に近いです)

お役に立てると思っていますが、まだ本題には入っていません。インジケーターやExpert Advisorを長い間扱っていない。でも、思い出したい。

 
Реter Konow:

お役に立てると思っていますが、まだ "乗り気 "ではありません。インジケーターやアドバイザーを扱うのは久しぶりです。でも、思い出したい。

投稿番号19にすべてを詳細に記述しました、言葉で説明するのは難しいです)

 
Реter Konow:

お役に立てると思っていますが、まだ "乗り気 "ではありません。インジケーターやアドバイザーを扱うのは久しぶりです。でも、思い出したい。

この仕掛けは、onchartiventがイベントのキューで構成されているため、強い動きのある新しいバーには、前のバーのインジケータデータが到着することです