일반적으로 명령 실행 후 다음 막대가 형성되기 전에 코드의 특정 위치에서 어드바이저의 작업을 중단할 수 있습니다.
예, 있습니다. 정적 변수 에 있는 Time[0]의 현재 값을 기억하고 이를 각각의 새 틱과 비교합니다. 변경되지 않은 경우 return(0)으로 종료합니다. 변경된 경우 새 막대를 처리합니다. 우리는 새로운 바의 시간을 기억합니다. 시간[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]의 사용을 올바르게 제안했습니다 - 나는 구현하려고 노력하고 있습니다 ...
아니요, 그녀는 누구에게도 빚진 것이 없습니다. 데모 리얼과 테스터 사이에는 차이가 있습니다. 예를 들어, 모든 OrderSend() 매개변수가 올바른 경우 테스터는 주문을 열 때 오류를 표시하지 않습니다. 무역 서버는 쉽게 발행할 수 있습니다.
따라서 테스터 이후의 프로그램은 테스터에서 발생하지 않는 예외적인 상황을 적절하게 처리할 수 있도록 완료 후 데모로 구동되어야 합니다.
이것은 저에게 매우 유용한 정보입니다))
시간 표시줄 시간[x]을 사용합니다.
여기에서는 작동하지 않습니다. 같은 막대의 다음 줄에서 이 첫 번째 형성된 그림은 두 번째 그림으로도 시작됩니다... 그리고 나는 그것들을 구별해야 합니다... 분리하기 위해
저점의 후속 비교를 위해 - 긴 경우와 높은 경우 - 짧은 경우...
어떤 템플릿을 작성하는 것이 어렵지 않다면, 그렇지 않으면 내 마음이 내 생각을 뛰어 넘습니다)
관심을 가져주셔서 감사합니다.
여기에서는 작동하지 않습니다. 같은 막대의 다음 줄에서 이 첫 번째 형성된 그림은 두 번째 그림으로도 시작됩니다... 그리고 나는 그것들을 구별해야 합니다... 분리하기 위해
저점의 후속 비교를 위해 - 긴 경우와 높은 경우 - 짧은 경우...
이 방법이 아닙니다. 첫 번째 신호 열 AO가 있는 경우 이 열에서 역사에 대한 자세한 내용을 찾으십시오. 포지션을 열 때, 오프닝 바의 시간을 기억하고 다시 열지 마십시오. AO의 다음 열이 생성되자마자 도형 검색을 다시 시작합니다.
자세히 설명해주실 수 있나요? 역사를 깊이 볼 필요가 없습니다...
피크가 온 경우 "현재"에서 나에게 충분합니다. 그런 다음 쌀과 같이 몇 개의 막대 후에 다른 피크가 온 경우 그림 1이라고 결정한 다음 비교하고 결정을 내리십시오 ...
문제는 첫 번째와 두 번째 숫자의 정점(현재에 있는 것의 원리)이 동일하고 나는 할 수 없다는 것입니다(심지어 한 인물을 다른 인물과 구분하기 위해 플래그를 사용하는 경우에도) ... 나는 바보입니다 .. .
추신 봉우리가 반드시 차례로 이어지는 것은 아니며 여러 개의 동일한 막대 등을 통과할 수도 있으며 다른 작업도 수행할 수 있습니다. 가장 중요한 것은 동일한 구성 원리가 있다는 것입니다.
나에게 가장 중요한 것은 후속 비교를 위해 서로를 분리하는 것입니다.
시간 표시줄 시간[x]을 사용합니다.
일반적으로 명령 실행 후 다음 막대가 형성되기 전에 코드의 특정 위치에서 어드바이저의 작업을 중단할 수 있습니다.
일반적으로 명령 실행 후 다음 막대가 형성되기 전에 코드의 특정 위치에서 어드바이저의 작업을 중단할 수 있습니다.
eddy :
이것을 iLowest 함수로 바꾸는 올바른 방법은 무엇입니까?
minimum= Low [ iLowest (NULL, 0, MODE_LOW, KPeriod , 0)] - 맞나요?
예, 있습니다. 정적 변수에 있는 Time[0]의 현재 값을 기억하고 이를 각각의 새 틱과 비교합니다. 변경되지 않은 경우 return(0)으로 종료합니다. 변경된 경우 새 막대를 처리합니다. 우리는 새로운 바의 시간을 기억합니다. 시간[0]을 누르고 계산을 시작합니다.
오래전부터 알고 있었는데... :-)) 교과서에서 더 많이... 감사합니다...
지금 비교 중이고 올바른 길을 가고 있다고 생각하지만 지금까지는 제대로 작동하지 않습니다...
당신은 나에게 Time[x]의 사용을 올바르게 제안했습니다 - 나는 구현하려고 노력하고 있습니다 ...