다중 통화 - 다중 시간 고문 - 페이지 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 Advisor에 설치하십시오. 나는 모든 것이 훨씬 더 명확해질 것이라고 생각합니다.

 
Реter Konow :

가능하면 표시기 코드를 기능(또는 여러 기능)으로 이동하고 Expert Advisor에 설치하십시오. 나는 모든 것이 훨씬 더 명확해질 것이라고 생각합니다.

아마도 이것은 필요하지 않습니다.

내가 올바르게 이해했다면 고문은 새 막대 에서 신호를 수신합니까?

 
Fast528 :

이 OnChartEvent는 어두운 숲이다, 나는 나쁜 꿈처럼 그것을 잊었다, 648의 작가 Anatoly Kazarsky도 그것으로 싸웠다) 긴 주제, 강한 움직임을 가진 멀티 심볼 + 멀티 타임 프레임, 차트가 멈출 것 같아, OnTick과 달리 이것은 큐를 축적합니다.

나는 그것에 대해 그렇게 어두운 것이 무엇인지 이해하지 못합니다. 절대적으로 간단한 기능. 오용된 건 아닐까?

 
Tango_X :

문제는 내 표시기가 새 막대가 아닌 TICK에서 신호를 제공한다는 것입니다. 그러면 어떻게 해야 합니까?

새 막대 이벤트는 항상 틱 이벤트입니다. 그건 그렇고, MT에서 새로운 막대는 처음이 아니라 1분의 1초에 나타납니다. 따라서 언제든지 새로운 막대가 나타납니다. 기호가 많으면 새 막대의 이벤트가 비동기적으로 도착합니다.

추신 나는 당신의 문제를 이해하려고 노력하고 있습니다.
 
Реter Konow :

새 막대 이벤트는 항상 틱 이벤트입니다. 그건 그렇고, MT에서 새로운 막대는 처음이 아니라 1분의 1초에 나타납니다. 따라서 언제든지 새로운 막대가 나타납니다. 기호가 많으면 새 막대의 이벤트가 비동기적으로 도착합니다.

이것은 내 문제에 더 가깝습니다.

 
Tango_X :

이것은 내 문제에 더 가깝습니다.

나는 당신을 도울 수 있다고 생각하지만 아직 주제를 "입력"하지 않았습니다. 나는 오랫동안 지표와 조언자를 다루지 않았습니다. 하지만 기억하고 싶습니다.

 
Реter Konow :

나는 당신을 도울 수 있다고 생각하지만 아직 주제를 "입력"하지 않았습니다. 나는 오랫동안 지표와 조언자를 다루지 않았습니다. 하지만 기억하고 싶습니다.

19번 포스트에서 다 자세하게 설명했는데 말로 설명하기 힘드네요)

 
Реter Konow :

나는 당신을 도울 수 있다고 생각하지만 아직 주제를 "입력"하지 않았습니다. 나는 오랫동안 지표와 조언자를 다루지 않았습니다. 하지만 기억하고 싶습니다.

트릭은 onchartivevent가 이벤트 대기열로 구성되어 있으므로 강력한 움직임에 대한 새 막대 가 이전 막대의 표시기 데이터와 함께 도착한다는 것입니다.