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

 
lazarev-dm :
우리는 심령술사가 아닙니다. 신호를 표시합니다. 첫 번째 가정은 mt5에 대한 신호이며 귀하는 mt4 클라이언트로 등록했습니다.
신호는 mt4에 적합한 것 같습니다.

스캘핑 1핍

 
Vitek87 :
신호는 mt4에 적합한 것 같습니다.

스캘핑 1핍

예, 신호에 24명의 가입자가 있어야 합니다. 작업을 완료할 수 있는 충분한 돈이 있습니까? 비율이 동일하지 않을 수 있습니까?
 
lazarev-dm :
예, 신호에 24명의 가입자가 있어야 합니다. 작업을 완료할 수 있는 충분한 돈이 있습니까? 비율이 동일하지 않을 수 있습니까?
최소 비율이 어떻게 되어야 하는지 알려주실 수 있나요?
 
Vitek87 :
최소 비율이 어떻게 되어야 하는지 알려주실 수 있나요?

0.01랏의 거래량으로 거래를 열려면 해당 신호를 구독할 때 약 $3600가 있어야 합니다. :)

그리고 이것은 보증금의 최대(95%) 부하입니다.

이 같은.

 
Contender :

0.01랏의 거래량으로 거래를 열려면 해당 신호를 구독할 때 약 $3600가 있어야 합니다. :)

그리고 이것은 보증금의 최대(95%) 부하입니다.

이 같은.

감사합니다.
 

무슨 일이야?

 #property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot Deviation
#property indicator_label1   "Deviation"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1   1
//--- indicator buffers
double          Buffer[];

input int period= 2 ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
   SetIndexBuffer ( 0 ,Buffer, INDICATOR_DATA );
   return ( 0 );
  }
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[])
  {
   int start= 0 ;
   if (prev_calculated> 0 ) start=prev_calculated- 1 ;
   for ( int i=start;i<rates_total;i++)
     {
     Buffer[i]= 0 ;
     double Buf[];
     for ( int q=i;q>i-period;q--)
      {
      Buf[q]= MathMax ( MathMax ( MathAbs (open[i-q]-high[i-q]), MathAbs (open[i-q]-low[i-q])), MathAbs (open[i-q]-close[i-q]));
       Print (q);
      Buffer[i]=Buffer[i]+Buf[q];
      }
     
     }
   return (rates_total);
  }

가장 긴 줄에 Buf[q] 는 어떻게든 array 를 넘어 섰습니다. 이렇게 무차원인 것 같죠?

2013.02.20 13:12:48 편차 2(EURUSD,H1) 'Deviation 2.mq5'의 범위를 벗어난 배열(61,10)

 
lazarev-dm :

무슨 일이야?

가장 긴 줄에서 Buf[q]는 어쩐지 배열을 넘어서 이렇게 무차원인 것 같죠?

2013.02.20 13:12:48 편차 2(EURUSD,H1) 'Deviation 2.mq5'의 범위를 벗어난 배열(61,10)

따라서 무차원이라는 것이 밝혀졌습니다.

사용하기 전에 ArrayResize() 를 사용하여 크기를 지정해야 합니다.

 
kPVT :

따라서 무차원이라는 것이 밝혀졌습니다.

사용하기 전에 ArrayResize()를 사용하여 크기를 지정해야 합니다.

제 생각에는 이 경우 최종 값을 설정하는 것이 불가능하며 버퍼의 볼륨은 실제로 Rates_total과 같아야 하지만 변수를 통해 볼륨을 설정할 수는 없습니다.
 

배열은 무한할 수 없습니다.

간단히 살펴보면 알고리즘에 오류가 있습니다. 예를 들면 다음과 같습니다.

 for ( int q=i;q>i-period;q--)

배열 인덱스 q는 음수가 됩니다.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
lazarev-dm :
제 생각에는 이 경우 최종 값을 설정하는 것이 불가능하며 버퍼의 볼륨은 실제로 Rates_total과 같아야 하지만 변수를 통해 볼륨을 설정할 수는 없습니다.
ArrayResize 수행 (Buf, Rates_total);