다중 통화 고문에 대한 질문 - 페이지 7

 
확인! 이제 이해하겠습니다. 그러나 테스터는 Expert Advisor가 연결된 기기를 알지 못합니다.
 

datetime iTime (문자열 기호, int timeframe, int shift)

해당 차트(기호, 시간대)에서 shift 매개변수로 지정된 막대의 여는 시간 값을 반환합니다. 오류가 발생하면 함수는 0을 반환합니다. 오류에 대한 추가 정보를 얻으려면 GetLastError() 함수를 호출하십시오. 현재 차트의 경우 각 막대가 열리는 시간에 대한 정보는 미리 정의된 Time[] 배열에 있습니다. 매개변수: symbol - 계측기의 기호 이름. NULL은 현재 문자를 의미합니다. 기간 - 기간. 차트 기간 중 하나일 수 있습니다. 0은 현재 차트의 기간을 의미합니다. shift - 시계열에서 수신된 값의 인덱스(현재 막대를 기준으로 지정된 기간 전의 이동).

-------------------------------------------------- -------------------------------------------------- ------------------

내가 이해하는 한 여기에서 먼저 다음과 같은 질문을 해야 합니다.

정적 정수 prevtimeEURUSD = 0;

그런 다음 필요한 쌍의 코드에 삽입하십시오.

 double TTTTTT = iTime ( " EURUSD " , 60 , 0 ) ; 
if ( TTTTTT == prevtimeEURUSD ) 
       return ( 0 ) ;
   prevtimeEURUSD = TTTTTT
 
rid :

...

내가 이해하는 한 여기에서 먼저 다음과 같이 질문해야 합니다.

정적 정수 prevtimeEURUSD = 0;

그런 다음 필요한 쌍의 코드에 삽입하십시오.

 double TTTTTT = iTime ( " EURUSD " , 60 , 0 ) ; 
if ( TTTTTT == prevtimeEURUSD ) 
       return ( 0 ) ;
   prevtimeEURUSD = TTTTTT

네. ProtoType(Rosh)에서 수행되는 방법을 확인하십시오. 링크를 삽입하려고 했지만 작동하지 않았습니다(CodeBase에서 검색하여 찾을 수 있음). isNewBar() 함수에서 이를 위해 2차원 배열이 생성됩니다. 순서는 큰 힘입니다!
 
,감사합니다! 이 전문가가 있습니다. 지금. 내가 볼게요.
 
친애하는 클러크!
예를 들어 두 쌍의 다중 통화 표시기 를 만들고 싶습니다. 첫째, 이러한 쌍의 따옴표는 단일 형식으로 가져와야 합니다(예: 백분율 변경, 즉 (Close[i]-Close[i+1])/100% - 맞습니까?). 그런 다음 둘 사이의 차이의 역학을 보고 싶다면 지표에 입력하십시오. 어떻게 할까요???
 

차이의 역학이 필요한 경우 백분율로 변환할 필요가 없습니다. 다음과 같이 할 수 있습니다.

 int start (){
 
 double Point1 = MarketInfo ( " GBPUSD " , MODE_POINT ) ;
 double Point2 = MarketInfo ( " USDJPY " , MODE_POINT ) ;
 
 
 MacdBuffer [ 0 ] = iMACD ( " GBPUSD " , 0 , 12 , 26 , 9 , PRICE_CLOSE , MODE_MAIN , 0 ) / Point1
              + iMACD ( " USDJPY " , 0 , 12 , 26 , 9 , PRICE_CLOSE , MODE_MAIN , 0 ) / Point2 ;
     Comment ( " MACD " + MacdBuffer [ 0 ]) ;         
 
return ( 0 ) ;
}
 
제온님 정말 감사합니다!!!! 내가 해볼게!
 
제온! 위에서부터 필요한거 뚝뚝 떨어뜨리는게 어렵지 않다면...그렇지 않으면 난 여전히 찻주전자!!!
 
nido :
제온! 위에서부터 필요한거 뚝뚝 떨어뜨리는게 어렵지 않다면...그렇지 않으면 난 여전히 찻주전자!!!


실제로 이것은 테스트 스크립트에서 몇 분 안에 작성되었습니다(코드 블록 확인용)

나는 당신을 위해 지표를 스케치해야했습니다 :-)

 //+------------------------------------------------------------------+
//|                                                    MultyMACD.mq4 |
//|                                           Copyright © 2007, xeon |
//|                                                       xeon@nm.ru |
//+------------------------------------------------------------------+
#property copyright " Copyright © 2007, xeon "
#property link      " xeon@nm.ru "
 
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1  2
//---- buffers
double MacdBuffer [] ;
double SignalBuffer [] ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init (){
   IndicatorBuffers ( 2 ) ;
   SetIndexStyle ( 0 , DRAW_HISTOGRAM ) ;
   SetIndexBuffer ( 0 , MacdBuffer ) ;
   SetIndexStyle ( 1 , DRAW_LINE ) ;
   SetIndexBuffer ( 1 , SignalBuffer ) ;
   SetIndexEmptyValue ( 0 , 0.0 ) ;
   SetIndexEmptyValue ( 1 , 0.0 ) ;
   SetIndexLabel ( 0 , " MACD " ) ;
   SetIndexLabel ( 1 , " Signal " ) ;
   IndicatorShortName ( " MultyMACD " ) ;
     
 
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit ()
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start (){
 
   if ( IsOptimization () == true || IsTesting () == true ){ Comment ( " В тестере будет ошибка деления на 0. описано - в справке по MarketInfo " ) ; return ( 0 ) ; }
//----
 double Point1 = MarketInfo ( " GBPUSD " , MODE_POINT ) ;
 double Point2 = MarketInfo ( " USDJPY " , MODE_POINT ) ;
 
 
 MacdBuffer [ 0 ] = iMACD ( " GBPUSD " , 0 , 12 , 26 , 9 , PRICE_CLOSE , MODE_MAIN , 0 ) / Point1
              + iMACD ( " USDJPY " , 0 , 12 , 26 , 9 , PRICE_CLOSE , MODE_MAIN , 0 ) / Point2 ;
 
 for ( int i = 9 ; i >= 0 ; i -- ){
     SignalBuffer [ 0 ] = iMAOnArray ( MacdBuffer , 0 , 9 , 0 , MODE_SMA , i ) ;
 }
  
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+

난 당신이 이해 바랍니다

ps 표시기는 온라인에서만 작동한다는 점을 명심하십시오. 기록에 대한 주기를 생성해야 합니다.

 
xeon :
니도 :
제온! 위에서부터 필요한거 뚝뚝 떨어뜨리는게 어렵지 않다면...그렇지 않으면 난 여전히 찻주전자!!!


실제로 이것은 테스트 스크립트에서 몇 분 안에 작성되었습니다(코드 블록 확인용)

나는 당신을 위해 지표를 스케치해야했습니다 :-)

 //+------------------------------------------------------------------+
//|                                                    MultyMACD.mq4 |
//|                                           Copyright © 2007, xeon |
//|                                                       xeon@nm.ru |
//+------------------------------------------------------------------+
#property copyright " Copyright © 2007, xeon "
#property link      " xeon@nm.ru "
 
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1  2
//---- buffers
double MacdBuffer [] ;
double SignalBuffer [] ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init (){
   IndicatorBuffers ( 2 ) ;
   SetIndexStyle ( 0 , DRAW_HISTOGRAM ) ;
   SetIndexBuffer ( 0 , MacdBuffer ) ;
   SetIndexStyle ( 1 , DRAW_LINE ) ;
   SetIndexBuffer ( 1 , SignalBuffer ) ;
   SetIndexEmptyValue ( 0 , 0.0 ) ;
   SetIndexEmptyValue ( 1 , 0.0 ) ;
   SetIndexLabel ( 0 , " MACD " ) ;
   SetIndexLabel ( 1 , " Signal " ) ;
   IndicatorShortName ( " MultyMACD " ) ;
     
 
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit ()
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start (){
 
   if ( IsOptimization () == true || IsTesting () == true ){ Comment ( " В тестере будет ошибка деления на 0. описано - в справке по MarketInfo " ) ; return ( 0 ) ; }
//----
 double Point1 = MarketInfo ( " GBPUSD " , MODE_POINT ) ;
 double Point2 = MarketInfo ( " USDJPY " , MODE_POINT ) ;
 
 
 MacdBuffer [ 0 ] = iMACD ( " GBPUSD " , 0 , 12 , 26 , 9 , PRICE_CLOSE , MODE_MAIN , 0 ) / Point1
              + iMACD ( " USDJPY " , 0 , 12 , 26 , 9 , PRICE_CLOSE , MODE_MAIN , 0 ) / Point2 ;
 
 for ( int i = 9 ; i >= 0 ; i -- ){
     SignalBuffer [ 0 ] = iMAOnArray ( MacdBuffer , 0 , 9 , 0 , MODE_SMA , i ) ;
 }
  
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+

난 당신이 이해 바랍니다

ps 표시기는 온라인에서만 작동한다는 점을 명심하십시오. 기록에 대한 주기를 생성해야 합니다.

감사합니다 제온!!! 고문의 아이디어에 대해 개인적으로 쓸 수 있습니까? 내 이메일: ni_do@mail.ru