[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 103

 
Reshetov :

아니요, 그녀는 누구에게도 빚진 것이 없습니다. 데모 리얼과 테스터 사이에는 차이가 있습니다. 예를 들어, 모든 OrderSend() 매개변수가 올바른 경우 테스터는 주문을 열 때 오류를 표시하지 않습니다. 무역 서버는 쉽게 발행할 수 있습니다.

따라서 테스터 이후의 프로그램은 테스터에서 발생하지 않는 예외적인 상황을 적절하게 처리할 수 있도록 완료 후 데모로 구동되어야 합니다.

감사해요!!!
이것은 저에게 매우 유용한 정보입니다))
 
Reshetov :
시간 표시줄 시간[x]을 사용합니다.


여기에서는 작동하지 않습니다. 같은 막대의 다음 줄에서 이 첫 번째 형성된 그림은 두 번째 그림으로도 시작됩니다... 그리고 나는 그것들을 구별해야 합니다... 분리하기 위해

저점의 후속 비교를 위해 - 긴 경우와 높은 경우 - 짧은 경우...

......
if (AO3 < 0 && AO3 > AO2 && AO2< 0 && AO2 < AO1 && AO1 < 0 && fl1== false && fl2== false ) {a1 = AO2; fl1= true ;Time_Figure1=TimeCurrent(); Print ( "образование первого пика" ,DoubleToStr(a1, 6 ), "Время: " ,Time_Figure1);} // определение наличия 1-го пика, флаг установлен
 Print ( "Образование первого пика" ,DoubleToStr(a1, 6 ), "Время1: " ,Time_Figure1);
 sleep ( 2000 );
 if (AO3< 0 && AO3>AO2 && AO2< 0 && AO2<AO1 && AO1< 0 && fl1== true && fl2== false && TimeCurrent() > Time_Figure1)   // определение наличия 2-го пика, флаги установлены
      { 
        a11 = AO2; fl1= true ; fl2= true ; Print ( "Образование второго пика" , DoubleToStr (a11, 6 ), "Время2: " ,Time_Figure2);
.....

 
robot :

어떤 템플릿을 작성하는 것이 어렵지 않다면, 그렇지 않으면 내 마음이 내 생각을 뛰어 넘습니다)

관심을 가져주셔서 감사합니다.
예를 들어 다음과 같은 코딩 거래 작업의 예를 숙지하는 것이 좋습니다 .
 
Roman. :


여기에서는 작동하지 않습니다. 같은 막대의 다음 줄에서 이 첫 번째 형성된 그림은 두 번째 그림으로도 시작됩니다... 그리고 나는 그것들을 구별해야 합니다... 분리하기 위해

저점의 후속 비교를 위해 - 긴 경우와 높은 경우 - 짧은 경우...

이 방법이 아닙니다. 첫 번째 신호 열 AO가 있는 경우 이 열에서 역사에 대한 자세한 내용을 찾으십시오. 포지션을 열 때, 오프닝 바의 시간을 기억하고 다시 열지 마십시오. AO의 다음 열이 생성되자마자 도형 검색을 다시 시작합니다.
 
artmedia70 :
이 방법이 아닙니다. 첫 번째 신호 열 AO가 있는 경우 이 열에서 역사에 대한 자세한 내용을 찾으십시오. 포지션을 열 때, 오프닝 바의 시간을 기억하고 다시 열지 마십시오. AO의 다음 열이 생성되자마자 도형 검색을 다시 시작합니다.


자세히 설명해주실 수 있나요? 역사를 깊이 볼 필요가 없습니다...

피크가 온 경우 "현재"에서 나에게 충분합니다. 그런 다음 쌀과 같이 몇 개의 막대 후에 다른 피크가 온 경우 그림 1이라고 결정한 다음 비교하고 결정을 내리십시오 ...

문제는 첫 번째와 두 번째 숫자의 정점(현재에 있는 것의 원리)이 동일하고 나는 할 수 없다는 것입니다(심지어 한 인물을 다른 인물과 구분하기 위해 플래그를 사용하는 경우에도) ... 나는 바보입니다 .. .

추신 봉우리가 반드시 차례로 이어지는 것은 아니며 여러 개의 동일한 막대 등을 통과할 수도 있으며 다른 작업도 수행할 수 있습니다. 가장 중요한 것은 동일한 구성 원리가 있다는 것입니다.

나에게 가장 중요한 것은 후속 비교를 위해 서로를 분리하는 것입니다.

 
Reshetov :
시간 표시줄 시간[x]을 사용합니다.

일반적으로 명령 실행 후 다음 막대가 형성되기 전에 코드의 특정 위치에서 어드바이저의 작업을 중단할 수 있습니다.
 
Roman. :

일반적으로 명령 실행 후 다음 막대가 형성되기 전에 코드의 특정 위치에서 어드바이저의 작업을 중단할 수 있습니다.
예, 있습니다. 정적 변수 에 있는 Time[0]의 현재 값을 기억하고 이를 각각의 새 틱과 비교합니다. 변경되지 않은 경우 return(0)으로 종료합니다. 변경된 경우 새 막대를 처리합니다. 우리는 새로운 바의 시간을 기억합니다. 시간[0]을 누르고 계산을 시작합니다.
 

eddy :

 for (k= 0 ; k<KPeriod; k++)           // перебрать KPeriod баров
if (Low[k]<minimum) minimum=Low[k]; // найти минимум

이것을 iLowest 함수로 바꾸는 올바른 방법은 무엇입니까?

minimum= Low [ iLowest (NULL, 0, MODE_LOW, KPeriod , 0)] - 맞나요?

나는 그렇게 들었다. 간단한 질문 무시해주셔서 감사합니다)
 
Reshetov :
예, 있습니다. 정적 변수에 있는 Time[0]의 현재 값을 기억하고 이를 각각의 새 틱과 비교합니다. 변경되지 않은 경우 return(0)으로 종료합니다. 변경된 경우 새 막대를 처리합니다. 우리는 새로운 바의 시간을 기억합니다. 시간[0]을 누르고 계산을 시작합니다.


오래전부터 알고 있었는데... :-)) 교과서에서 더 많이... 감사합니다...

지금 비교 중이고 올바른 길을 가고 있다고 생각하지만 지금까지는 제대로 작동하지 않습니다...

 double AO1 =   iAO ( Symbol (), signal_period, 1 );
 double AO2 =   iAO ( Symbol (), signal_period, 2 );
 double AO3 =   iAO ( Symbol (), signal_period, 3 );
 
 
 //  Расчет переменных для доливки 2-а пика
  
 if (AO3 < 0 && AO3 > AO2 && AO2< 0 && AO2 < AO1 && AO1 < 0 && fl1==false && fl2==false) {a1 = AO2; fl1=true;Time_Figure1=Time[ 0 ]; Print ( "Oбразование первого пика" ,DoubleToStr(a1, 6 ), "Время: " ,Time_Figure1);} // определение наличия 1-го пика, флаг установлен
 Print ( "Образование первого пика" ,DoubleToStr(a1, 6 ), "Время1: " ,Time_Figure1);
 if (Time_Figure1<Time[ 0 ] && Time_Figure1!= 0 )     // условие наличия первого пика...
   {
     if (AO3< 0 && AO3>AO2 && AO2< 0 && AO2<AO1 && AO1< 0 && fl1==true && fl2==false )   // определение наличия 2-го пика, флаги установлены
      { 
        a11 = AO2; fl1=true; fl2=true; Time_Figure2=Time[ 0 ]; Print ( "Образование второго пика" , DoubleToStr (a11, 6 ), "Время2: " ,Time_Figure2);
         if (a1<a11 && High [ 0 ] > High [ 1 ]) 
           { signal_buy = true; a1=a11; fl1=true;fl2=false; Time_Figure1=Time[ 0 ];}   //  активируем бай и устанавливаем сигнал на бай и записываем параметры как первого пика  
         else { a1=a11; fl1=true;fl2=false;Time_Figure1=Time[ 0 ];}                     //  просто запоминаем новый минимум - "первый" сигнал   
      }                                                       
   }
 
 if (AO2> 0 || High [ 0 ] < High [ 1 ]) {fl1=false; fl2=false; Time_Figure1= 0 ;} // если какой - либо столбец гистограммы  пересекает 0-ю линию между сигналами 2-а пика
                                                               // то сигнал считается недействительным. Cбрасываем флаги 1-го и 2-го пика вниз,
 if (Mas_Tip[ 0 ]!= 0 && signal_buy == true )   return ( 10 );         // при доливке и сигнале к покупке открываемся с рынка 
 signal_buy = false;                                           // сбрасываем сигнал к покупке
당신은 나에게 Time[x]의 사용을 올바르게 제안했습니다 - 나는 구현하려고 노력하고 있습니다 ...
 
얘들아, MT4 차트에 쉬는 날을 추가하려면 스크립트가 정말 필요합니다. 어디서 찾을 수 있습니까?