트렌드 플랫 전략. - 페이지 12

 
JLY :

그리고 줄이 이미 사라진 경우 아이콘을 제거하는 방법은 무엇입니까?

 ObjectDelete ( 0 ,"имя значка"+name);
если у значка нет имени, то в данном случае
 ObjectDelete ( 0 ,name);

막대에서 시간 계산이 필요합니다.

술집에서 하다

당신은 시간을 알고 있습니다. 즉, Time[9]는 9 bar였습니다.

난 그냥 시작을 썼어

당신이 원하는대로 더

 
pako :

막대에서 시간 계산이 필요합니다.

술집에서 하다

당신은 시간을 알고 있습니다. 즉, Time[9]는 9 bar였습니다.

난 그냥 시작을 썼어

당신이 원하는대로 더

감사합니다. 거기에서만 라인을 생성할 필요가 없었지만(그냥 매개변수를 설정했습니다), 모든 것이 그렇게 작동합니다.

4번째 막대에서는 iBarShift 를 사용하여 계산했습니다. 공식은 다음과 같습니다.

 datetime time01=time1NEW; datetime time02=time2NEW;
int shift01=iBarShift( 0 , 0 ,time01); int shift02=iBarShift( 0 , 0 ,time02); //перевод из скунд в бары
int timeCHANGE=shift01-shift02; //разница между 1-й и 2-й точкой линии
int timeBAR=(shift02-timeCHANGE); //прибавить разницу ко 2-й точке
int timeBARc=Time[timeBAR]; //Перевод из баров в секунды

5번째는 이 기능이 없는데 Copy* 기능이 있는건 아직 모르겠네요...

 
JLY :

감사합니다. 거기에서만 라인을 생성할 필요가 없었지만(그냥 매개변수를 설정했습니다), 모든 것이 그렇게 작동합니다.

4회에는 iBarShift를 통해 바를 고려했습니다. 공식은 다음과 같습니다.

5번째는 이 기능이 없는데 Copy* 기능이 있는건 아직 모르겠네요...

iBarShift 아날로그를 5로

 int iBarShift( string symbol,
                   int tf,
                   datetime time,
                   bool exact= false )
  {
   if (time< 0 ) return (- 1 );
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[],time1;
   CopyTime (symbol,timeframe, 0 , 1 ,Arr);
   time1=Arr[ 0 ];
   if ( CopyTime (symbol,timeframe,time,time1,Arr)> 0 )
     {
       if ( ArraySize (Arr)> 2 ) return ( ArraySize (Arr)- 1 );
       if (time<time1) return ( 1 );
       else return ( 0 );
     }
   else return (- 1 );
  }
 
MQL5에서 기간 상수가 변경되었습니다(새 기간 M2, M3, M4, M6, M10, M12, H2, H3, H6, H8, H12가 추가됨). 다음 기능을 사용하여 MQL4 기간을 변환할 수 있습니다.
 ENUM_TIMEFRAMES TFMigrate( int tf)
  {
   switch (tf)
     {
       case 0 : return ( PERIOD_CURRENT );
       case 1 : return ( PERIOD_M1 );
       case 5 : return ( PERIOD_M5 );
       case 15 : return ( PERIOD_M15 );
       case 30 : return ( PERIOD_M30 );
       case 60 : return ( PERIOD_H1 );
       case 240 : return ( PERIOD_H4 );
       case 1440 : return ( PERIOD_D1 );
       case 10080 : return ( PERIOD_W1 );
       case 43200 : return ( PERIOD_MN1 );
      
       case 2 : return ( PERIOD_M2 );
       case 3 : return ( PERIOD_M3 );
       case 4 : return ( PERIOD_M4 );      
       case 6 : return ( PERIOD_M6 );
       case 10 : return ( PERIOD_M10 );
       case 12 : return ( PERIOD_M12 );
       case 16385 : return ( PERIOD_H1 );
       case 16386 : return ( PERIOD_H2 );
       case 16387 : return ( PERIOD_H3 );
       case 16388 : return ( PERIOD_H4 );
       case 16390 : return ( PERIOD_H6 );
       case 16392 : return ( PERIOD_H8 );
       case 16396 : return ( PERIOD_H12 );
       case 16408 : return ( PERIOD_D1 );
       case 32769 : return ( PERIOD_W1 );
       case 49153 : return ( PERIOD_MN1 );      
       default : return ( PERIOD_CURRENT );
     }
  }
 
JLY :

Sedelal은 몇 초 만에 무승부이고 주말에는 간격이 있으므로 여전히 막대로 계산해야합니다.

 int    PeriodSeconds (
   ENUM_TIMEFRAMES   period= PERIOD_CURRENT        // период графика
   );
기간의 초 수를 반환합니다.
 
pako :

매우 감사합니다. Barshift는 계산합니다.

결과 막대를 초로 변환하는 것만 남아 있습니다. 4회에는 시간[바]

다섯째, 나는 규칙에 따라 이것을하지만 뭔가가 작동하지 않습니다.

 datetime Time[];
int count= 1 ; 
ArraySetAsSeries (Time, true );
int timeBARsec= CopyTime ( _Symbol , _Period ,timeBAR,count,Time); //Перевод из баров в секунды
 
JLY :

매우 감사합니다. Barshift는 계산합니다.

결과 막대를 초로 변환하는 것만 남아 있습니다. 4회에는 시간[바]

다섯째, 나는 규칙에 따라 이것을하지만 뭔가가 작동하지 않습니다.

내가 질문을 올바르게 이해한다면

     datetime Time[]; 
     ArraySetAsSeries (Time, true );
     CopyTime ( Symbol (), PERIOD_CURRENT , 0 , 100 ,Time);
     long timeBARsec = Time[ 2 ]; //Перевод из баров в секунды, в данном случае Time[ бар ] бар = 2

     Comment ( "timeBARsec = " ,StringToTime(Time[ 2 ]));
 
pako :

내가 질문을 올바르게 이해한다면

예, 모든 것이 작동합니다) 대단히 감사합니다)

"끝"이 없으면 0과 같으며 보이지 않습니다.

파일:
TimeEnd.mq5  5 kb
 

1. 아이콘 설명에서 표시기 및 시간의 시간당 정확도를 만들었습니다( 차트 속성 에서 설명 켜기).

2. 아이콘을 버퍼에 넣는 것이 더 나을까요? 하지만 어떻게 해야 하나, 어떻게 하나의 버퍼에 시간과 가격을 결합할 수 있을까요?

3. 선이 그려지고 아직 아이콘이 없으면(바가 나타나지 않음) 오류가 발생하고("전문가" 탭에서) 다른 아이콘으로 작업이 중지됩니다.

2013.09.22 00:10:36 플랫실행(EURUSD,D1) 'FlatExecution.mq5'의 범위를 벗어난 배열(124,30)

즉, 배열이 범위를 벗어났습니다... 다음 줄에 오류가 표시됩니다.

 long timeBARsec=Time[timeBAR];

이 오류로 인해 표시기가 마비되는 것을 방지하려면 어떻게 해야 합니까? 그리고 아이콘은 막대 단위로 계산되지만 초 단위로 그려지기 때문에 앞으로 아이콘이 그려지면 더 좋을 것입니다.

4. 거래 알고리즘 : 아이콘시 진입, 진입선에서 정지, 진입선 아이콘에서 퇴장.

5. 선 그리기 규칙: 각 프랙탈에서 모든 프랙탈로, 위에서 위로, 아래에서 아래로. 가격이 닿는 선은 지워야 하며 그리지 않아야 합니다.


파일:
 

오류 문제가 해결되었습니다.

이제 아이콘이 신호 표시줄의 열림에 그려집니다.

선이 실행되면 다른 모양을 취하고 선이 계속 연결되어 광선을 잃습니다. 행이 실행되지 않으면 노란색입니다.

정지선이 두 번째 지점보다 더 감소할 경우 두 번째 지점 뒤에 정지할 수 있습니다. 원칙적으로 정류장은 다르게 계산되면 그러한 선을 따라 이동할 수 있습니다.

그리기는 도형에 의해 동일하게 유지됩니다.

연산. 아이콘이 항상 명확한 매수 또는 매도를 의미하는 것은 아닙니다. 그런데 이것도 뉴스의 영향을 받은 것 같아요. 결국 테스트가 수행되지 않았기 때문입니다. 프랙탈에 의한 자동 그리기 및 이 그리기 수정(영향을 받는 선 제거)이 없습니다.

파일: