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

 
Usare ObjectCreate() e ObjectSet()
 

Buon pomeriggio a tutti. Potete consigliare un utente inesperto? Io uso l'indicatore "123" e mi piace molto il modo in cui disegna i livelli. Non l'ho mai provato prima, non l'ho mai provato prima. Il problema è: ho inserito l'indicatore nel grafico e ha disegnato i livelli ma dieci minuti dopo il prezzo è rimbalzato di 70 punti e i livelli non sono cambiati. Devo disabilitare e riabilitare l'indicatore ogni volta che il prezzo si muove e continua a disegnare nuovi livelli. Per favore, consigliatemi se potete introdurre alcuni parametri nel programma dell'indicatore in modo che si disabiliti e si riabiliti ogni dieci minuti con livelli già aggiornati. Non sono bravo a programmare, quindi per favore spiegatemi se e come si può fare. Grazie a tutti in anticipo.


File:
123.mq4  15 kb
 

L'ishimoku ridisegnato è un indicatore per i professionisti)?

Immagino che dal momento che lo "sviluppatore" non ha mai finito il suo indicatore, sia stato poco utile:)

 
alsu:

L'ishimoku ridisegnato è un indicatore per i professionisti)?

Immagino che dal momento che lo "sviluppatore" non ha mai finito il suo indicatore, sia stato poco utile:)


Quindi pensi che non ci sia modo di automatizzare questo indicatore? So che non è un indicatore super cool, ma mi piacciono i livelli che disegna. Mi sto chiedendo se è possibile aggiungere qualche funzione in modo che possa aggiornare i livelli automaticamente.
 
alsu:
Usare ObjectCreate() e ObjectSet()

Disegna frecce, ma su ogni barra, quando necessario solo quando la prima candela è stata rotta.

https://www.mql5.com/ru/forum/111497/page583

.

 
mazan:

Quindi pensate che sia impossibile automatizzare questo indicatore? So che non è un indicatore super-duper, ma mi piacciono i livelli che disegna e sono bravo a lavorare con loro, ma il problema è che ogni tanto ho bisogno di aggiornare manualmente i livelli. Mi sto chiedendo se è possibile aggiungere qualche funzione in modo che possa aggiornare i livelli automaticamente.

Ecco quello corretto. I livelli sono aggiornati ad ogni tick.


E anche ora cancella i propri oggetti quando l'indicatore stesso viene rimosso dal grafico. "Sviluppatore" fi.

File:
123_1.mq4  16 kb
 
gince:

Disegna le frecce, ma su ogni barra, quando necessario solo quando la prima candela è rotta.

https://www.mql5.com/ru/forum/111497/page583

.

È necessario analizzare solo le barre formate, perché sullo zero High e Low sono costantemente aggiornati.

Provate a contare non for(shift=0; ..., ma for(shift=1;..., allora non ci sarà nessun ricalcolo sulla barra zero. E sposta le barre analizzate da 0,1,2 a 1,2,3.

 
alsu:

Dovresti analizzare solo le barre formate, perché High e Low sono costantemente aggiornati sulla barra zero.

Provate a contare non for(shift=0; ..., ma for(shift=1;..., allora sulla barra zero non si verificano ricalcoli. Invertire le barre analizzate da 0,1,2 a 1,2,3.

Scusa, non ho capito.

Le vostre condizioni sono incasinate. Questo è su:

      if (d1_h1 < d1_h2 && d1_l1 > d1_l2  && d1_l1 > d1_l0) 

e dovrebbe essere

      if (d1_h1 < d1_h2 && d1_l1 > d1_l2  && d1_h1 < d1_h0) 
e lo stesso con la freccia giù
 
alsu:

Ecco la soluzione. I livelli sono aggiornati ad ogni tick.


E anche ora cancella i propri oggetti quando l'indicatore stesso viene rimosso dal grafico. "Sviluppatore" fi.


Grazie infinitamente, l'ho messo nel grafico, tutto funziona, grazie ancora. Un professionista è un professionista. Rispetto!
 

Buon pomeriggio, cercando di capire come scrivere un EA. Ho preso il modello EA dall'articolo sul sito mql4, ho aggiunto le mie condizioni per capire il debug e la funzionalità, e ho inserito le condizioni di apertura delle posizioni:

        MyATR = ((High[0] - Low[0])/Low[0]);
	 BT = Open[0] + Open[0]*iMAOnArray(MyATR ,0,PerB,0,MODE_SMA,1);
        ST = Open[0] - Open[0]*iMAOnArray((MyATR ,0,PerS,0,MODE_SMA,1);

   if (Ask >=  BT)                       // Если разница между
     {                                          // 
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
   if (Bid <= ST)                       // Если разница между
     {                                          // 
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }

Ho aggiunto le mie condizioni (o cambiato quelle esistenti) in modo che gli ordini vengano eseguiti una volta sola.