MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 433

 
Alekseu Fedotov :

모든 것이 간단합니다

 void OnStart ()
  {
// Формируем время  
   Alert ( "14.30  позавчерашнего дня = " , StrToTime ( TimeToStr ( iTime ( NULL , 1440 , 2 ), TIME_DATE )+ " " + "14:30" ));

//14.30  позавчерашнего дня
   datetime time= StrToTime ( TimeToStr ( iTime ( NULL , 1440 , 2 ), TIME_DATE )+ " " + "14:30" );

//Бар 14.30  позавчерашнего дня
   int      shift= iBarShift ( NULL , 0 ,time);

//Машка 14.30  позавчерашнего дня  
   double ma= iMA ( NULL , 0 , 13 , 0 , MODE_SMMA , PRICE_MEDIAN ,shift);

   Alert ( "Машка 14.30  позавчерашнего дня = " , DoubleToString (ma, Digits ));

이 같은


Alekseu Fedotov, 불행히도 이것은 사실이 아닙니다. TF로 막대 번호를 얻은 후 동일한 TF를 사용하지만 다른 번호가 필요합니다(이것이 문제입니다). TF가 있는 막대 번호(예: 30)를 가져온 다음 TF 30이 있는 이 막대에서 시작하여 TF(1440)로 MA를 가져와야 합니다. 즉. 마치 지금(14시 30분에) TF 1440으로 MA를 받기를 원하는 것과 같습니다. 이제 문제가 되지 않지만 며칠 뒤로 옮기면 문제가 됩니다.

 
STARIJ :
네. M1을 사용해야 하고 M5, ... - 확인을 위해 사용해야 합니다. 보간을 사용할까요? MT5에는 틱 기록이 있습니다. 수익이 어딘지 알려주시면 다시 찾아보겠습니다

마치 지금 일어나고 있는 것처럼 뒤늦게 분석을 하고 그 결과를 봐야 합니다. 저것들. 마치 어제 14:30에 TF 1d로 MA를 분석했고 오늘 어제 MA에서 가격 움직임의 결과를 받았습니다. 오늘 TF 1440을 사용하고 어제의 관점에서 보면 해당 분석의 데이터가 다르므로 결과를 다르게 예상해야 합니다.

 
Roman Sharanov :

도와주세요. 이전 양초의 고점에서 그 위의 200p 지점까지 직사각형을 그리고 앞으로 막대를 위한 시간을 그려야 합니다 .

코드를 작성했는데 왜 사각형의 왼쪽 점이 움직이지 않는지 이해가 되지 않습니다. 그리고 오른쪽은 높은 곳 뒤로 미끄러집니다.

예기치 않은 함수 동작... 이전에는 기존 이름으로 개체를 만들려고 하면 오류가 반환되고 개체가 기존 매개 변수를 새 매개 변수로 변경하지 않았습니다. 그리고 이제 분명히 변경이 이루어졌으며 high[0]이 변경되거나 새 막대가 나타날 때마다 high[1]은 이미 다른 값을 가지며 새 사각형이 생성될 때 매개변수 중 하나가 변경됩니다.

탈출구는 매우 간단합니다. 객체를 생성하기 전에 객체의 존재를 확인하십시오.

 
STARIJ :

움직이는



아니요, 이 코드로는 아무것도 그릴 수 없습니다

 
Roman Sharanov : 아니요, 이 코드로는 아무것도 그릴 수 없습니다

내 전체 파일 보기

파일:
PR.mq4  3 kb
 
STARIJ :

내 파일 보기


그리고 당신이 MQL4를 가지고 있다는 것을 이해합니다 :)
시계열로 배열을 만들었고 작동했지만 여전히 작동하지 않는 이유를 이해하지 못합니다.

 
Boss11 : 지금 일어나고 있는 것처럼 뒤늦게 분석을 하고 그 결과를 봐야 합니다. 저것들. 마치 어제 14:30에 TF 1d로 MA를 분석했고 오늘 어제 MA에서 가격 움직임의 결과를 받았습니다. 오늘 TF 1440을 사용하고 어제의 관점에서 보면 해당 분석의 데이터가 다르므로 결과를 다르게 예상해야 합니다.

TF 1440을 사용하면 모든 것이 명확해집니다. 그리고 M1에서 어떻게 큰 오류를 작성했습니까?

 
STARIJ :

TF 1440을 사용하면 모든 것이 명확해집니다. 그리고 M1에서 어떻게 큰 오류를 작성했습니까?


M1으로 해보지는 않았지만 오류가 덜할 거라 생각합니다. M1->M5는 M30->1d보다 정확합니다.

 

특정 질문에 대한 답변을 제공하십시오. 볼린저 재작업.

몇 줄을 변경하고 줄무늬를 그리지 않습니다. 로그에서 문제가 무엇입니까?

https://research-journal.org/economical/analiz-razlichnyx-metodov-ocenki-istoricheskoj-volatilnosti-dlya-opcionnoj-torgovli/의 변동성 공식

 int start()
  {
   int     i,k,counted_bars= IndicatorCounted ();
   double deviation;
   double sum,oldval,newres,oldpos;
//----
   if ( Bars <=BandsPeriod) return ( 0 );
//---- initial zero
   if (counted_bars< 1 )
       for (i= 1 ;i<=BandsPeriod;i++)
        {
         MovingBuffer[ Bars -i]= EMPTY_VALUE ;
         UpperBuffer[ Bars -i]= EMPTY_VALUE ;
         LowerBuffer[ Bars -i]= EMPTY_VALUE ;
        }
//----
   int limit= Bars -counted_bars;
   if (counted_bars> 0 ) limit++;
   for (i= 0 ; i<limit; i++)
      MovingBuffer[i]= iMA ( NULL , 0 ,BandsPeriod,BandsShift, MODE_EMA , PRICE_WEIGHTED ,i);
//----
   i= Bars -BandsPeriod+ 1 ;
   if (counted_bars>BandsPeriod- 1 ) i= Bars -counted_bars- 1 ;
   while (i>= 0 )
     {
      sum= 0.0 ;
      k=i+BandsPeriod- 1 ;
      oldval=MovingBuffer[i];
      oldpos=i;
       while (k>=i)
        {
         //newres=Close[k]-oldval;
         //sum+=newres*newres;
          sum+= log ( fabs ( High [k]/ Close [k]))* log ( fabs ( High [k]/ Open [k]))+ log ( fabs ( Low [k]/ Close [k]))* log ( fabs ( Low [k]/ Open [k]));
         k--;
        }
      deviation=BandsDeviations* MathSqrt ( fabs (sum/BandsPeriod));
      UpperBuffer[i]=oldval+deviation;
      LowerBuffer[i]=oldval-deviation;
      i--;
     }
파일:
 

그래픽 개체를 제거하는 방법을 알려주세요. 변수 값으로 이름이 지어진 수직선이 있습니다.

문자열 이름=="테스트1"; 문자열 Vertline="line_"+이름; ObjectCreate(0,VertLine,OBJ_VLINE,0,시간,시나); 이름이 test1인 세로줄만 제거하는 방법은 무엇입니까?