[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 830

 
gince:
Questo è preso da Moving Average.mq4
Devi aver cambiato tu stesso il codice, e ora ti stai basando su questa roba)
 
Techno:
Non c'erano queste stringhe )) Devi aver cambiato tu stesso il codice EA qualche tempo fa, e ora sei guidato da queste voci da solo )


Scusa, forse mi sono sbagliato. Ho basato il mio codice su Moving Average.mq4 e vi ho apportato delle modifiche.

Non sono russo e a volte è difficile per me descrivere ciò che voglio.

 
gince:


Non sono russo e a volte mi è difficile descrivere quello che voglio.

Ma finché non descrivi quello che vuoi, è difficile aiutarti
 
abolk:
Ma finché non descrivi quello che vuoi, è difficile aiutarti


Avete due segnali

double tr0=iCustom(NULL,0, "trd",0,0);//può essere 0 o 1. Se 1, allora compra
double tr1=iCustom(NULL,0, "trd",1,0);//può essere 0 o 1. Se 1 vendiamo

Parlerò della vendita

Quando tr1 è uguale a 1 dopo il prossimo tick, allora il controllo inizia al tempo t per vedere se l'unità terrà da t per il periodo di tempo tim . Il controllo viene effettuato a intervalli di tempo delta. Come esempio prendiamo t=........ //10.00 ora, tim = 600 sec, delta = 60 sec. Così alle 10.00 c'è tr1=1 (prima era 0). Ma non lo venderemo. La vendita sarà confermata se il segnale raggiunge 600 sec, cioè 10,10. Il controllo non viene eseguito tutto il tempo, ma in intervalli di tempo delta=60 sec (10.00, 10.01, 10.02, ....... , 10.09, 10.10). E se ad ogni controllo tr1=1, allora diamo un segnale di vendita.

C'è anche uno svantaggio - lo zero può apparire tra ogni controllo e il segnale può essere falso. I controlli possono essere semplificati, ma il computer è molto occupato. Dovresti trovare la media aurea in questo caso e vedere cosa succede. Questo è tutto per la sperimentazione.


 
gince:


Ci sono due segnali

double tr0=iCustom(NULL,0, "trd",0,0);//può essere 0 o 1 . Se 1 compriamo
double tr1=iCustom(NULL,0, "trd",1,0);//può essere 0 o 1. Se 1 vendiamo


Non è chiaro, si possono ricevere due segnali diversi (contraddittori) allo stesso tempo?

 
abolk:

Non è chiaro, si possono ricevere due segnali diversi (in conflitto) allo stesso tempo?


No, non lo è. Sono presi da buffer diversi e solo uno di loro può ottenerne uno. Combinazioni possibili

tr0 0 1 0

tr1 0 0 1

1 e 1 è una combinazione impossibile

 
void init()
{
  isSign=false;
}

void start() // запускается с каждым тиком
{
   if(!isSign) // если сигнала нет
   {
      sign0=???; // формула определения sign
      if(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) // если сигнал удержался
         {
            //действия по сигналу
         }
      }
   }
}

Controllo ad ogni spunta, non ad intervalli discreti

Scusate se ho fatto un errore.

 
gince:


No, non può. Sono presi da buffer diversi e solo uno di loro può dare 1. Combinazioni possibili

tr0 0 1 0

tr1 0 0 1

1 e 1 è una combinazione impossibile

segnale == 1.

attivare il timer di override.

Se segnale == 1. Non impostare il timer di override.

se segnale == -1, allora resetta il timer di acquisto e imposta il timer di acquisto su vendita.

se il segnale == -1. non toccare il timer di vendita.

se il segnale è arrivato a 0 azzera entrambi i timer.

Se il timer fa un conto alla rovescia di 5 minuti, allora siamo pronti a partire.

 
neama:


Il segnale sig_bye== 1. Se 0 il timer non parte
impostare il timer della baia.
Se segnale ==1, lascia il timer della baia inattivo.
Se il segnale sig_bai== 0. allora resettate il timer della baia.

Il timer fa un conto alla rovescia di 5 minuti a intervalli di, diciamo, un minuto due volte, quindi lavoreremo in bai.

Quando il segnale sig_beam si spegne = 1. Se 0, il timer non parte.
accendere il timer sel.
Se il segnale Sat_en_esel==1, lascia lo sleep timer inattivo.
Se arriva un segnale Sig_sel==0, resetta l'autoscatto.
il timer conta alla rovescia per 5 minuti a intervalli di un minuto, diciamo due volte al minuto, poi si azzera.



 
abolk:

Controllare ad ogni spunta, non a intervalli discreti

Scusate se ho fatto un errore.


Tutte le zecche sono inaccettabili.