double tr0=iCustom(NULL,0,"trd",0,0);//0 또는 1일 수 있습니다. 1개 구매하면 double tr1=iCustom(NULL,0,"trd",1,0);//0 또는 1일 수 있습니다. 1이면 판매합니다
판매에 대해 이야기하겠습니다
다음 틱 후에 tr1이 1이 되면 단위 t가 나타난 시간부터 이 단위가 시간 간격 tim 동안 t 순간부터 지속되는지 여부를 확인하기 시작합니다. 확인은 델타 시간 간격으로 수행됩니다. 예를 들어, t=........ //10.00시, tim = 600초, delta=60초라고 가정합니다. 따라서 10.00에 tr1=1이 나타납니다(0이 되기 전). 그러나 우리는 팔지 않을 것입니다. 이 시그널이 600초 동안, 즉 오전 10시 10분까지 유지되면 판매가 확정됩니다. 검사는 지속적으로 수행되지 않고 정점 델타 = 60초(10.00, 10.01, 10.02, ....... , 10.09, 10.10)의 세그먼트를 통해 수행됩니다. 그리고 각 검사에서 tr1=1이면 매도 신호를 보냅니다.
여기에 마이너스가 있습니다. 검사 사이에 0이 나타날 수 있으며 신호가 잘못될 수 있습니다. 검사는 자주 할 수 있지만 컴퓨터는 매우 로드됩니다. 이것에서 당신은 중간 지점을 찾고 무슨 일이 일어나는지 볼 필요가 있습니다. 이것이 실험의 전부입니다.
void init()
{
isSign= false ;
}
void start() // запускается с каждым тиком
{
if (!isSign) // если сигнала нет
{
sign0=???; // формула определения signif (sign0== 1 ) // если сигнал поступил
{
t0=TimeCurrent(); //фиксируем время
isSign= true ; // переключатель - сигнал поступил
}
}
if (isSign) // если сигнал есть
{
t=TimeCurrent(); // новое время
if (t<=t0+delta) // если временной промежуток не закончился
{
sign1=???; //формула определения нового сигналаif (sign1!=sign0) // если новый сигнал изменился (не продержался)
{
isSign= false ; // переключатель - сигнала нет
}
}
if (t>t0+delta) // если промежуток закончился
{
if (isSign) // если сигнал удержался
{
//действия по сигналу
}
}
}
}
sig_bay 신호가 도착했습니다 == 1. 0이면 타이머가 시작되지 않습니다 베이 타이머를 켭니다. 신호가 도착한 경우 ==1. 타이머를 만지지 마십시오. 신호 sig_buy == 0이면 구매 타이머를 재설정합니다.
타이머는 간격으로 5분을 카운트다운했습니다. 1분, 두 번이라고 가정해 보겠습니다. 이는 기본적으로 작업 중임을 의미합니다.
신호 sig_set == 1. 0이면 타이머가 시작되지 않습니다. 타이머를 켭니다. 신호 sig_set==1인 경우. 타이머를 만지지 마십시오. 신호 sig_sel == 0이면 타이머를 재설정하십시오. 타이머는 간격으로 5분을 카운트다운했습니다. 1분을 두 번이라고 가정해 보겠습니다. 이는 우리가 마을에서 일하고 있음을 의미합니다.
이것은 Moving Average.mq4에서 가져온 것입니다.
거기에는 그러한 줄이 없었습니다)) 한 번은 고문의 코드를 직접 변경했을 것입니다. 이제는이 기록에 따라 안내됩니다)
죄송합니다. 아마도 그렇게 두지 않았을 것입니다. Moving Average.mq4를 기반으로 일부 변경했습니다.
나는 러시아인이 아니며 때때로 내가 원하는 것을 설명하기가 어렵습니다.
나는 러시아인이 아니며 때때로 내가 원하는 것을 설명하기가 어렵습니다.
그러나 원하는 것을 설명하기 전까지는 도와주기가 어렵습니다.
두 가지 신호가 있습니다
double tr0=iCustom(NULL,0,"trd",0,0);//0 또는 1일 수 있습니다. 1개 구매하면
double tr1=iCustom(NULL,0,"trd",1,0);//0 또는 1일 수 있습니다. 1이면 판매합니다
판매에 대해 이야기하겠습니다
다음 틱 후에 tr1이 1이 되면 단위 t가 나타난 시간부터 이 단위가 시간 간격 tim 동안 t 순간부터 지속되는지 여부를 확인하기 시작합니다. 확인은 델타 시간 간격으로 수행됩니다. 예를 들어, t=........ //10.00시, tim = 600초, delta=60초라고 가정합니다. 따라서 10.00에 tr1=1이 나타납니다(0이 되기 전). 그러나 우리는 팔지 않을 것입니다. 이 시그널이 600초 동안, 즉 오전 10시 10분까지 유지되면 판매가 확정됩니다. 검사는 지속적으로 수행되지 않고 정점 델타 = 60초(10.00, 10.01, 10.02, ....... , 10.09, 10.10)의 세그먼트를 통해 수행됩니다. 그리고 각 검사에서 tr1=1이면 매도 신호를 보냅니다.
여기에 마이너스가 있습니다. 검사 사이에 0이 나타날 수 있으며 신호가 잘못될 수 있습니다. 검사는 자주 할 수 있지만 컴퓨터는 매우 로드됩니다. 이것에서 당신은 중간 지점을 찾고 무슨 일이 일어나는지 볼 필요가 있습니다. 이것이 실험의 전부입니다.
두 가지 신호가 있습니다
double tr0=iCustom(NULL,0,"trd",0,0);//0 또는 1일 수 있습니다. 1개 구매하면
double tr1=iCustom(NULL,0,"trd",1,0);//0 또는 1일 수 있습니다. 1이면 판매합니다
한 시점에 두 개의 서로 다른(모순적인) 신호가 도착할 수 있다는 것은 분명하지 않습니다.
한 시점에 두 개의 서로 다른(모순적인) 신호가 도착할 수 있다는 것은 분명하지 않습니다.
아니, 그는 할 수 없습니다. 그것들은 다른 버퍼에서 가져오며 그 중 하나만 유닛을 수신할 수 있습니다. 가능한 조합
TR0 0 1 0
TR1 0 0 1
1과 1 불가능한 조합
이산 간격이 아닌 모든 틱 확인
제가 실수를 했을 수도 있어요 - 죄송합니다.
아니, 그는 할 수 없습니다. 그것들은 다른 버퍼에서 가져오며 그 중 하나만 유닛을 수신할 수 있습니다. 가능한 조합
TR0 0 1 0
TR1 0 0 1
1과 1 불가능한 조합
수신 신호 == 1.
베이 타이머를 켭니다.
신호가 도착한 경우 ==1. 타이머를 만지지 마십시오.
신호가 도착한 경우 == -1 매수 타이머를 재설정하고 매도 타이머를 활성화합니다.
신호가 도착한 경우 == -1. 마을 타이머를 만지지 마십시오.
신호가 0이면 두 타이머를 모두 0으로 재설정합니다.
타이머가 5분을 카운트다운했는데, 이는 우리가 작업 중임을 의미합니다.
sig_bay 신호가 도착했습니다 == 1. 0이면 타이머가 시작되지 않습니다
베이 타이머를 켭니다.
신호가 도착한 경우 ==1. 타이머를 만지지 마십시오.
신호 sig_buy == 0이면 구매 타이머를 재설정합니다.
타이머는 간격으로 5분을 카운트다운했습니다. 1분, 두 번이라고 가정해 보겠습니다. 이는 기본적으로 작업 중임을 의미합니다.
신호 sig_set == 1. 0이면 타이머가 시작되지 않습니다.
타이머를 켭니다.
신호 sig_set==1인 경우. 타이머를 만지지 마십시오.
신호 sig_sel == 0이면 타이머를 재설정하십시오.
타이머는 간격으로 5분을 카운트다운했습니다. 1분을 두 번이라고 가정해 보겠습니다. 이는 우리가 마을에서 일하고 있음을 의미합니다.
불연속적인 간격이 아닌 모든 틱 확인
제가 실수를 했을 수도 있어요 - 죄송합니다.
모든 틱은 좋지 않다