초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1240

 
테스터에서 최적화된 매개변수의 수를 늘리는 방법은 무엇입니까? MQL, Python 또는 다른 곳에 가상 메소드가 있습니까? 방향 부탁드립니다...
 
Vladimir M. :
테스터에서 최적화된 매개변수의 수를 늘리는 방법은 무엇입니까? MQL, Python 또는 다른 곳에 가상 메소드가 있습니까? 방향 부탁드립니다...

온테스터()

 
Vladimir Karputov :

마지막으로 도움말에서 예를 들어보세요! 글쎄, 당신은 얼마나 할 수 있습니까? 그 의미를 정말로 이해하지 못한다면 발명한 구조를 사용할 필요가 없습니다. 표준 구조를 사용하십시오 - 작동 방식을 파악하십시오. 그런 다음 디자인을 휴지통에 버리십시오.


그리고 'MQL Wizard'를 사용하여 템플릿을 생성합니다.

코드

그리고 결과


블라디미르, 멍청한 사람이 귀먹은 사람에게 말을 하려는 것 같아...

  1. 'MQL Wizard' 템플릿을 사용했습니다.
  2. 당신은 내 디자인에 무엇을 얻었습니까? 그들은 특히 내 필요에 대해 당신보다 나쁘지 않습니다!

 if (rates_total - prev_calculated > 1 )

표시기가 시작되면 Rates_total = XXX(XXX = 1000), prev_calculated = 0, Rates_total - prev_calculated(1000 - 0 = 1000)는 1보다 큽니다! 조건이 작동했습니다!

더 나아가

 if (prev_calculated == 0 )

표시기가 시작되면 prev_calculated = 0입니다. 조건이 작동했습니다!

그리고 당신이 어떻게 다른지 설명해주세요

      Buffer1[i]=open[i];
      Buffer2[i]=high[i];
      Buffer3[i]=low[i];
      Buffer4[i]=close[i];

내에서

            barsBuffer1[ 0 ] = newCandles_Open[i];
            barsBuffer2[ 0 ] = newCandles_High[i];
            barsBuffer3[ 0 ] = newCandles_Low[i];
            barsBuffer4[ 0 ] = newCandles_Close[i];

ArraySetAsSeries 가 true로 설정되었다는 사실을 고려하면 ???

왜 당신의 촛불은 꺼지고 내 촛불은 꺼지지 않습니까?

거의 2주 동안 이것을 설명하라고 요청했습니다! 문서를 읽기 위해 나를 보낼 필요가 없습니다! 거의 마음으로 배웠습니다. 그냥 왜? 설명하거나, 모른다고 말하거나, 대답하고 싶지 않다고 말하십시오!

젠장, 이 주제의 이름을 한 시간 동안 잊지 않았습니까?

 
Сергей Таболин :


어쩌면 그렇게? 모든 인덱스는 버퍼에서 0 인덱스로 할당됩니다.

            barsBuffer1[i] = newCandles_Open[i];
            barsBuffer2[i] = newCandles_High[i];
            barsBuffer3[i] = newCandles_Low[i];
            barsBuffer4[i] = newCandles_Close[i];
 
Сергей Таболин :


그래서 나는 당신에게 가르치려고 노력합니다. 나는 당신에게 끝없이 예를 제공합니다. 그러나 당신은 완고하게 벽에 머리를 부딪치려고 합니다.

마지막으로 반복합니다. 디자인을 휴지통에 버리고 표준 디자인을 사용합니다. 그런 다음 자신의 규칙에 따라 그리는 방법(예: 차트에서 가장 오른쪽에 있는 5개의 초)에 대해 질문할 수 있습니다. 그러나 구성을 버리기 전에는 , 접미사 대신 접두사 증분 사용을 중단하기 전에는 ...

 
Сергей Таболин :


예시

 //+------------------------------------------------------------------+
//|                                                 Draw Candles.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots    1
//--- plot USDJPY
#property indicator_label1    "USDJPY"
#property indicator_type1    DRAW_CANDLES
#property indicator_color1    clrRed
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
//--- input parameters
input int       Input1= 9 ;
//--- indicator buffers
double    Buffer1[];
double    Buffer2[];
double    Buffer3[];
double    Buffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,Buffer1, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,Buffer2, INDICATOR_DATA );
   SetIndexBuffer ( 2 ,Buffer3, INDICATOR_DATA );
   SetIndexBuffer ( 3 ,Buffer4, INDICATOR_DATA );
//--- the 0 (empty) value will mot participate in drawing
   PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , 0.0 );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator 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[])
  {
   if (rates_total< 10 )
       return ( 0 );
//---
   int limit=prev_calculated- 5 ;
   if (prev_calculated== 0 )
     {
      limit=rates_total- 5 ;
       for ( int j= 0 ; j<limit; j++)
        {
         Buffer1[j]= 0.0 ;
         Buffer2[j]= 0.0 ;
         Buffer3[j]= 0.0 ;
         Buffer4[j]= 0.0 ;
        }
     }
   for ( int i=limit; i<rates_total; i++)
     {
       if (i<rates_total- 5 )
        {
         //--- затираем всё, что левее пяти свеч (сюда попадаем при рождении нового бара)
         Buffer1[i]= 0.0 ;
         Buffer2[i]= 0.0 ;
         Buffer3[i]= 0.0 ;
         Buffer4[i]= 0.0 ;
         continue ;
        }
       //--- четыре левые свечи будут перерисовываться на каждом тике - это не оптимально,
       //--- но пригодится в будущем (если для них потом подсовывать тики)
       //--- пятая свеча (она же самая правая на графике) реагирует онлайн на изменение текущих цен
      Buffer1[i]=open[i];
      Buffer2[i]=high[i];
      Buffer3[i]=low[i];
      Buffer4[i]=close[i];
     }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+

결과:


파일:
 
Vladimir Karputov :

그래서 나는 당신에게 가르치려고 노력합니다. 나는 당신에게 끝없이 예를 제공합니다. 그러나 당신은 완고하게 벽에 머리를 부딪치려고 합니다.

마지막으로 반복합니다. 디자인을 휴지통에 버리고 표준 디자인을 사용합니다. 그런 다음 자신의 규칙에 따라 그리는 방법(예: 차트에서 가장 오른쪽에 있는 5개의 초)에 대해 질문할 수 있습니다. 그러나 구성을 버리기 전에는 , 접미사 대신 접두사 증분 사용을 중단 하기 전에는 ...

왜 그를 좋아하지 않습니까? 당신이 그것을 이해하지 못하기 때문에? 예를 들어, 나는 종종 다음과 같은 루프를 사용합니다.

 for ( int i PositionsTotal (); i-- > 0 )

그리고 아무런 문제가 없습니다. . . . . . . . .

 
Alexey Viktorov :

왜 그를 좋아하지 않습니까? 당신이 그것을 이해하지 못하기 때문에? 예를 들어, 나는 종종 다음과 같은 루프를 사용합니다.

 for ( int i PositionsTotal (); i-- > 0 )

그리고 아무런 문제가 없습니다. . . . . . . . .

그리고 답을 서두르지 않고 읽으려고 하면? 당신은 (대부분처럼) 접미사를 사용하고 있습니다. 그리고 당신의 접미사에 대한 예. 생각하지 않고 대답하기 위해 서두를 필요가 없습니다.

 
Youri Lazurenko :
프로세서 부하가 100%이고 몇 분 동안 작동하면 컴퓨터가 꺼집니다(phenom II x4 955 프로세서(4코어, 3.2GHz), 쿨러는 여유가 있습니다). 두 번 만에 더 이상 위험을 감수하지 않기로 결정했습니다. 이것을 이해하는 방법?

Aida64 또는 Linx에서 컴퓨터를 확인하십시오. 프로세서 및 메모리 테스트에 문제가 없고 온도가 정상 범위 내에 있으면 HDD를 자세히 살펴보십시오. 일반적으로 PSU처럼 보이지만 오랫동안 변경하지 않았다면 아마도 그럴 것입니다. 두 번째 현상의 터미널은 잘 작동합니다.

 
좋은 하루 동료 여러분, 한 공 중에 수평선 형태로 그러한 기호가 있는지 알려주십시오. 그렇지 않으면 뭔가를 찾을 수 없습니다. 아아 :-(
사유: