Aiuto per la codifica - pagina 192

 

ciao mladen,

ho provato a lungo incorporato, applicare e fare alcuni codici a questo indicatore, ha problemi di visualizzazione, nessun refresh e repaint, ma non so perché non ha, potrebbe dirmi la ragione? ma ha anche una grande debolezza che solo calcolare il segnale o il valore dopo la chiusura della barra candela, quando la candela ancora in esecuzione, non cambierà alcun segnale o valore, ma ho appena usare la formula esatta stesso calcolo come prima indicatori di prova CCI inviato prima, perché ha così diverso risultato? cosa il codice interno hanno fatto per fare tali differenze? Ma spero che possa calcolare come il tuo, può calcolare i valori e i segnali istantaneamente quando la candela è ancora in esecuzione (non solo dopo la chiusura), altrimenti i segnali saranno in ritardo di almeno una candela. come migliorare questo indicatore se voglio che cambi istantaneamente valori e segnali, grazie mille per l'aiuto.

 

Ciao codificatori,

ciao mladen,

Ho trovato un indicatore sul mio HDD che visualizza un avviso quando una linea orizzontale viene toccata dal prezzo. L'ho modificato un po' e funziona bene. Ma ora vorrei aggiungere qualcosa. Succede spesso che una linea esatta non viene toccata e il prezzo inverte qualche pip prima. Ora potrei disegnare molte linee in più nel grafico o provare a modificare questo indicatore che non dovrebbe solo visualizzare un avviso quando la linea nel grafico viene toccata ma qualche pip in più o in meno. Quindi l'indicatore dovrebbe visualizzare un avviso quando i prezzi toccano la linea nel grafico +5 pip o la linea -5 pip.

La mia idea è di cambiare questa linea:

if (High[0]>=linea && line>=Low[0]) a qualcosa come questo:

if ((High[0]>=line+0.0005 && line+0.0005>=Low[0]) || (if (High[0]>=line-0.0005 && line-0.0005>=Low[0])

Ovviamente questo non funziona... Non ho idea del perché... :-/

E un altro problema è che questo funzionerebbe solo per i prezzi 1.XXXX. Non posso usare 0.0005 per coppie di Yen o Index-CFD.

Sarei felice se qualcuno può risolvere il problema.

Grazie!

Ecco il codice:

//+------------------------------------------------------------------+

//| LINE_ALERT.mq4 |

//+------------------------------------------------------------------+

extern bool Notification=true;

extern bool displayAlert=true;

string Text;

#proprietà indicator_chart_window

//+------------------------------------------------------------------+

//|funzione di inizializzazione dell'indicatore personalizzata

//+------------------------------------------------------------------+

int init()

{

//---- indicatori

//----

return(0);

}

//+------------------------------------------------------------------+

//|Funzione di deinizializzazione dell'indicatore personalizzata |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Funzione di iterazione dell'indicatore personalizzato |

//+------------------------------------------------------------------+

int start()

{

//----

if (displayAlert==false) return;

statico datetime Time0;

if (Time0 == Time[0]) return; // Un avviso per barra.

for(int iObj = ObjectsTotal() - 1; iObj >= 0; iObj--)

{

string name = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1);

}

else continue; // Non HLINE

if (High[0]>=linea && line>=Low[0])

{

Text = Symbol()+" M "+Period()+" ha toccato S/R @ "+Close[0];

Allarme(Testo);

Time0 = Time[0]; // Niente più avvisi.

if (Notification) SendNotification(Text);

}

}

//----

return(0);

}

//+------------------------------------------------------------------+

 
Marbo:
Ciao Coders,

ciao mladen,

Ho trovato un indicatore sul mio HDD che visualizza un avviso quando una linea orizzontale viene toccata dal prezzo. L'ho modificato un po' e funziona bene. Ma ora vorrei aggiungere qualcosa. Succede spesso che una linea esatta non viene toccata e il prezzo inverte qualche pip prima. Ora potrei disegnare molte linee in più nel grafico o provare a modificare questo indicatore che non dovrebbe solo visualizzare un avviso quando la linea nel grafico viene toccata ma qualche pip in più o in meno. Quindi l'indicatore dovrebbe visualizzare un avviso quando i prezzi toccano la linea nel grafico +5 pip o la linea -5 pip.

La mia idea è di cambiare questa linea:

if (High[0]>=linea && line>=Low[0]) a qualcosa come questo:

if ((High[0]>=line+0.0005 && line+0.0005>=Low[0]) || (if (High[0]>=line-0.0005 && line-0.0005>=Low[0])

Ovviamente questo non funziona... Non ho idea del perché... :-/

E un altro problema è che questo funzionerebbe solo per i prezzi 1.XXXX. Non posso usare 0.0005 per coppie di Yen o Index-CFD.

Sarei felice se qualcuno può risolvere il problema.

Grazie!

Ecco il codice:

//+------------------------------------------------------------------+

//| LINE_ALERT.mq4 |

//+------------------------------------------------------------------+

extern bool Notification=true;

extern bool displayAlert=true;

string Text;

#proprietà indicator_chart_window

//+------------------------------------------------------------------+

//|funzione di inizializzazione dell'indicatore personalizzata

//+------------------------------------------------------------------+

int init()

{

//---- indicatori

//----

return(0);

}

//+------------------------------------------------------------------+

//| Funzione di deinizializzazione dell'indicatore personalizzato |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Funzione di iterazione dell'indicatore personalizzata |

//+------------------------------------------------------------------+

int start()

{

//----

if (displayAlert==false) return;

statico datetime Time0;

if (Time0 == Time[0]) return; // Un avviso per barra.

for(int iObj = ObjectsTotal() - 1; iObj >= 0; iObj--)

{

string name = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1);

}

else continue; // Non HLINE

if (High[0]>=linea && line>=Low[0])

{

Testo = Symbol()+" M "+Period()+" ha toccato S/R @ "+Close[0];

Allarme(Testo);

Time0 = Time[0]; // Niente più avvisi.

if (Notification) SendNotification(Text);

}

}

//----

return(0);

}

//+------------------------------------------------------------------+

Marbo

Puoi fare qualcosa come in allegato. L'unica cosa che dovresti rivedere è cosa dovrebbe significare esattamente la distanza in pip da una linea (+ o - in caso di alto o basso)

File:
 

Grande! Grazie!

 
zilliq:
Ciao Mrtool e Mladen,

Qualcuno di voi può spiegare come si costruisce l'indicatore TSV Bullish & Bearish per favore? Non ho trovato nessuna informazione al riguardo?

Grazie

Zilliq

Zilliq c'è una versione qui https://www.forex-tsd.com/forum/debates-discussions/116-something-interesting-please-post-here/page299#comment_679505 con il codice sorgente.

 
cwu:
Se inserisco 0, significa che non c'è SL o TP? Grazie ancora.

Cwu,

Sì, dovrebbe.

 

Ragazzi

Ho controllato quel TSV Bullish & Bearish e il più vecchio che ho trovato è del 2007. Se questa è la formula, allora non è altro che un attivatore Gann high low in una forma un po' diversa (l'essenza - il calcolo - è lo stesso)

 

Grazie ragazzi,

Lo vedrò questo fine settimana e posterò il TSV Bearish/bullish che ho

Sono Vet in Francia e lavoro domani, quindi controllerò domenica

Ho già codice un Gann alto e basso, in particolare con una versione liscia, quindi deve essere semplice

Buon fine settimana e grazie a tutti

Zilliq

 

Mladen,

Ho un'altra domanda sull'indicatore di allarme linea. Al momento funziona con le linee orizzontali. Ho anche provato a implementare le linee di tendenza usando OBJ_TREND ma c'è un problema che non capisco. Ho letto in un altro forum molti mesi fa che il punto iniziale e finale della linea di tendenza devono essere determinati. Potreste darmi qualche informazione su come farlo? O è molto più difficile di quanto immagino?

Cordiali saluti,

Marbo

 
Marbo:
Mladen,

Ho un'altra domanda sull'indicatore di allarme linea. Al momento funziona con linee orizzontali. Ho anche provato a implementare le linee di tendenza usando OBJ_TREND ma c'è un problema che non capisco. Ho letto in un altro forum molti mesi fa che il punto iniziale e finale della linea di tendenza devono essere determinati. Potreste darmi qualche informazione su come farlo? O è molto più difficile di quanto immagino?

Cordiali saluti,

Marbo

Marbo

In realtà non è necessario conoscere l'inizio e la fine. Puoi recuperare i valori in modo diverso (usando la funzione ObjectGetValueByShift() che restituirà il prezzo 0 se sta cercando un prezzo fuori dalla linea di tendenza). Un esempio di come può essere fatto lo puoi trovare in questo post: https: //www.mql5.com/en/forum/177603/page3

Motivazione: