Çoklu para birimi - çoklu zaman danışmanı - sayfa 5

 
Vladimir Karputov :

işte orda :)

Sonra kibarca eğiliyorum.

Sorumu çözmek gerekirse, önerdiğiniz şeyi yazmaya hazırım! Bunun neden gerekli olduğunu anlamıyorum, açıklar mısınız?

 
Vladimir Karputov :

işte orda :)

Sonra kibarca eğiliyorum.


 //+------------------------------------------------------------------+
//|                                                      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 döviz çifti - her tikte 19 dönem , gösterge değerlerini okuyoruz - sırada ne var?)

 
Tango_X :
Belki birisi EXPERT'teki tüm dönemlerden ve birkaç döviz çiftinden göstergeden sinyal almanın başka bir yolunu biliyordur?

Mümkünse, gösterge kodunu bir işleve (veya birkaç işleve) taşıyın ve bunu bir Uzman Danışmana kurun. Sanırım her şey çok daha netleşecek.

 
Реter Konow :

Mümkünse, gösterge kodunu bir işleve (veya birkaç işleve) taşıyın ve bunu bir Uzman Danışmana kurun. Sanırım her şey çok daha netleşecek.

Belki de bu gerekli değildir.

Doğru anlarsam, danışman yeni bir çubukta bir sinyal alır mı?

 
Fast528 :

Bu OnChartEvent karanlık bir orman, onu kötü bir rüya gibi unuttum, 648'in yazarı Anatoly Kazarsky de onunla savaştı) uzun konular var, çok sembollü + güçlü hareketlerle çoklu zaman dilimi var, bence grafik duracak, OnTick'ten farklı olarak, bu şey bir sıra biriktirir

Bu kadar karanlık olan ne anlamıyorum. Kesinlikle basit fonksiyon. Belki kötüye kullanılır?

 
Tango_X :

Sorun şu ki, göstergem yeni bir çubukta değil, bir TICK'ta sinyal veriyor - ve ne yapmalıyım?

Yeni çubuk olayı her zaman bir onay olayıdır. Bu arada, MT'de yeni çubuklar, başında değil, dakikanın herhangi bir saniyesinde görünür. Bu nedenle, her an yeni bir çubuk belirir. Çok sayıda sembol varsa, yeni çubuğun olayları asenkron olarak gelir.

not Sorununuzu anlamaya çalışıyorum.
 
Реter Konow :

Yeni çubuk olayı her zaman bir onay olayıdır. Bu arada, MT'de yeni çubuklar, başında değil, dakikanın herhangi bir saniyesinde görünür. Bu nedenle, her an yeni bir çubuk belirir. Çok sayıda sembol varsa, yeni çubuğun olayları asenkron olarak gelir.

Bu benim sorunuma daha yakın

 
Tango_X :

Bu benim sorunuma daha yakın

Size yardımcı olabileceğimi hissediyorum, ancak konuya henüz "girmedim". Uzun zamandır göstergeler ve danışmanlarla ilgilenmedim. Ama hatırlamak istiyorum.

 
Реter Konow :

Size yardımcı olabileceğimi hissediyorum, ancak konuya henüz "girmedim". Uzun zamandır göstergeler ve danışmanlarla ilgilenmedim. Ama hatırlamak istiyorum.

19 nolu mesajda her şeyi çok detaylı anlattım, kelimelerle anlatmak zor)

 
Реter Konow :

Size yardımcı olabileceğimi hissediyorum, ancak konuya henüz "girmedim". Uzun zamandır göstergeler ve danışmanlarla ilgilenmedim. Ama hatırlamak istiyorum.

İşin püf noktası, onchartivevent'in bir olaylar dizisinden oluşmasıdır, bu nedenle önceki çubuğun göstergesinin verileriyle güçlü hareketler üzerine yeni bir çubuk gelir