찻주전자의 질문 - 페이지 187

 
G001 :
완전히 지쳤습니다. 제대로 열리지 않습니다.

도와주세요. 실수는 어디에 있습니까?

다음과 같이 시도하십시오.
 MqlTradeRequest request={ 0 };
MqlTradeResult result={ 0 };
MqlTradeCheckResult check={ 0 };
[삭제]  
fyords :
다음과 같이 시도하십시오.
고맙습니다.
열리지만 표시기의 신호를 올바르게 읽지 못합니다.
도움이 될까요?
 
G001 :
고맙습니다.
열리지만 표시기의 신호를 올바르게 읽지 못합니다.
도움이 될까요?
 ArraySetAsSeries (Bull, true );

OnInit에서 한 번 수행됩니다.

 CopyBuffer (Indicator, 1 , 0 , 3 ,Bull);
버퍼 번호를 망쳤습니까?
[삭제]  
fyords :

OnInit에서 한 번 수행됩니다.

버퍼 번호를 망쳤습니까?
그렇지 않은 것 같다. 이전 페이지의 표시기.
 
G001 :
열리지만 표시기의 신호를 올바르게 읽지 못합니다.

옳지 않다은 무슨 뜻인가요?

인쇄를 사용하여 "무엇을 얻습니까?"를 확인하기 위해 표시기의 값을 표시 할 수 있습니다.

[삭제]  
fyords :

옳지 않다은 무슨 뜻인가요?

인쇄를 사용하여 "무엇을 얻습니까?"를 확인하기 위해 표시기의 값을 표시할 수 있습니다.

다른 지표로 어드바이저를 확인했는데 작동합니다.
지표가 문제가 아닐까요?
이 표시기는 첫 번째 눈금에서 열립니다.

죄송합니다. 인쇄를 추가할 위치를 모릅니다.

BUY_STOP의 예, 빨간색에서 회색으로.

 //+------------------------------------------------------------------+ 
//|                                                      MACDATR.mq5 | 
//|                                      Copyright © 2011, Svinozavr | 
//+------------------------------------------------------------------+ 
//---- Indicator settings
#property indicator_separate_window 
#property indicator_buffers 4 
#property indicator_plots   4
#property indicator_level1 + 0.0005
#property indicator_level2 - 0.0005
#property indicator_levelcolor DimGray
#define RESET 0
//-----
#property indicator_type1 DRAW_HISTOGRAM
#property indicator_color1 Gray
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
#property indicator_label1 "MACD"
//-----
#property indicator_type2 DRAW_HISTOGRAM
#property indicator_color2 Green
#property indicator_style2 STYLE_SOLID
#property indicator_width2 1
#property indicator_label2 "Bull"
//-----
#property indicator_type3 DRAW_HISTOGRAM
#property indicator_color3 Red
#property indicator_style3 STYLE_SOLID
#property indicator_width3 1
#property indicator_label3 "Bear"
//-----
#property indicator_type4 DRAW_LINE
#property indicator_color4 Olive
#property indicator_style4 STYLE_SOLID
#property indicator_width4 1
#property indicator_label4 "ATR"
//-----
//----- Indicator parameters
//+------------------------------------------------------------------+
input uint FastEMA      = 12 ;
input uint SlowEMA      = 26 ;
input uint SignalEMA = 9 ;
input int   ATRG         = 0 ;
input ENUM_APPLIED_PRICE AppliedPrice= PRICE_CLOSE ;
//+------------------------------------------------------------------+
//-----
double ATRmin= 0 ;
double kATR= 1 ;
int min_rates_total;
int ATRHandle,MACDHandle;
double MACDBuffer[],ATRBuffer[],Bull[],Bear[];
//+------------------------------------------------------------------+    
//| MACD indicator initialization function                           | 
//+------------------------------------------------------------------+  
void OnInit ()
{
//-----
   if (ATRG) min_rates_total= int ( MathMax (FastEMA,SlowEMA)+ATRG);
   else min_rates_total= 2 * int ( MathMax (FastEMA,SlowEMA));
//-----
   int ATR;
   if (!ATRG) ATR= int (SlowEMA); 
   else ATR=ATRG;
  ATRmin*= _Point ;
//-----
  ATRHandle= iATR ( NULL , 0 ,ATR);
   if (ATRHandle== INVALID_HANDLE ) Print ( " Íå óäàëîñü ïîëó÷èòü õåíäë èíäèêàòîðà ATR" );
//-----
  MACDHandle= iMACD ( NULL , 0 ,FastEMA,SlowEMA,SignalEMA,AppliedPrice);
   if (MACDHandle== INVALID_HANDLE ) Print ( " Íå óäàëîñü ïîëó÷èòü õåíäë èíäèêàòîðà MACD" );
//-----
   SetIndexBuffer ( 0 ,MACDBuffer, INDICATOR_DATA );
   PlotIndexSetInteger ( 0 , PLOT_DRAW_BEGIN ,min_rates_total);
   ArraySetAsSeries (MACDBuffer, true );
//-----
   SetIndexBuffer ( 1 ,Bull, INDICATOR_DATA );
   PlotIndexSetInteger ( 1 , PLOT_DRAW_BEGIN ,min_rates_total);
   ArraySetAsSeries (Bull, true );
//-----
   SetIndexBuffer ( 2 ,Bear, INDICATOR_DATA );
   PlotIndexSetInteger ( 2 , PLOT_DRAW_BEGIN ,min_rates_total);
   ArraySetAsSeries (Bear, true );
//-----
   SetIndexBuffer ( 3 ,ATRBuffer, INDICATOR_DATA );
   PlotIndexSetInteger ( 3 , PLOT_DRAW_BEGIN ,min_rates_total);
   ArraySetAsSeries (ATRBuffer, true );
//-----
   string shortname;
   StringConcatenate (shortname, "MACDATR (" ,FastEMA, ", " ,SlowEMA, ", " ,SignalEMA, ", " , EnumToString (AppliedPrice), ")" );
//-----
   IndicatorSetString ( INDICATOR_SHORTNAME ,shortname);
//-----
   IndicatorSetInteger ( INDICATOR_DIGITS , _Digits + 1 );
//-----
}
//+------------------------------------------------------------------+  
//| MACD iteration function                                          | 
//+------------------------------------------------------------------+  
int OnCalculate (
                 const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[]
                )
  {
//----- Check for data
   if (rates_total<min_rates_total) return ( 0 );
//-----
   int to_copy,limit,i;
   double atr,Atr[];
   datetime Time[ 1 ];
//-----
   if (prev_calculated>rates_total || prev_calculated<= 0 )
  {
    limit=rates_total-min_rates_total;
  }
   else limit=rates_total-prev_calculated;
//----- 
   ArraySetAsSeries (Atr, true );
//-----
  to_copy=limit+ 1 ;
//-----
   if ( CopyBuffer (ATRHandle, 0 , 0 ,to_copy,Atr)<= 0 ) return (RESET);
   if ( CopyBuffer (MACDHandle, MAIN_LINE , 0 ,to_copy,MACDBuffer)<= 0 ) return (RESET);
//-----
   for (i=limit; i>= 0 && ! IsStopped (); i--)
  {
    atr=kATR*Atr[i]; // ATR
    atr= MathMax (atr,ATRmin);
//-----
     if (MACDBuffer[i]> 0 ) {ATRBuffer[i]=MACDBuffer[i]-atr;}
     if (MACDBuffer[i]< 0 ) {ATRBuffer[i]=MACDBuffer[i]+atr;}
  }
//-----
   for (i=limit; i>= 0 && ! IsStopped (); i--)
  {
//-----
    Bear[i]= 0 ;
    Bull[i]= 0 ;
//-----
     if (MACDBuffer[i]> 0 && MACDBuffer[i+ 1 ]<MACDBuffer[i] && ATRBuffer[i]>= 0 ) {Bull[i]=MACDBuffer[i];}
     if (MACDBuffer[i]< 0 && MACDBuffer[i+ 1 ]>MACDBuffer[i] && ATRBuffer[i]<= 0 ) {Bear[i]=MACDBuffer[i];}
  }
//+------------------------------------------------------------------+
//----- Done
   return (rates_total);
}
//+------------------------------------------------------------------+

 
G001 :
다른 지표로 어드바이저를 확인했는데 작동합니다.
지표가 문제가 아닐까요?
이 표시기는 첫 번째 눈금에서 열립니다.

죄송합니다. 어디에 인쇄를 추가해야 할지 모르겠습니다.

BUY_STOP의 예, 빨간색에서 회색으로.

문제가 발견되지 않고 모든 것이 작동합니다. 189쪽에서 코드를 가져왔습니다.

 

#property tester_file "" 프로그램 속성에 대한 질문입니다.

테스트를 위해 Expert Advisor에 많은 파일, 더 정확하게는 3800을 연결해야 합니다.

올해에만 여러 상품에 대한 일일 옵션 수준입니다.

해결 방법이 무엇입니까?

Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
Karlson : #property tester_file "" 프로그램에 대한 질문입니다.

테스트를 위해 Expert Advisor에 많은 파일, 더 정확하게는 3800개를 연결하는 것이 필요합니다. 올해에만 여러 기기에 대한 일일 옵션 수준입니다. 해결 방법이 무엇입니까?

테스트를 위한 경우 이 파일의 모든 정보는 변경 불가능(아카이브)되어야 합니다. 두 가지 함수를 작성하려고 합니다. 하나는 수백 개의 파일에서 모든 데이터를 하나의 파일로 덤프하고, 다른 하나는 잘 정의된 규칙에 따라 이 파일을 읽습니다. 그래서 안 해보셨어요?
 
Yedelkin :
테스트를 위한 경우 이러한 파일의 모든 정보는 변경할 수 없습니다(아카이브). 두 가지 함수를 작성하려고 합니다. 하나는 수백 개의 파일에서 모든 데이터를 하나의 파일로 덤프하고, 다른 하나는 잘 정의된 규칙에 따라 이 파일을 읽습니다. 그래서 안 해보셨어요?
아직 해보지는 않았지만, 한 파일에 모아두겠다는 생각은 이해가 갑니다. 개발자들이 폴더에서 변경되지 않은 데이터를 연결하는 방법을 알려줄 수도 있습니다.