Funzione ICustom

 

ciao a tutti

prima di tutto devo dire che ci sono un sacco di informazioni utili sul forum qui è grande:D

Poi la mia domanda

come posso ottenere il risultato dell'indicatore (o altra variabile) come valore di ritorno se lo chiamo con icustom?

Ho provato ad analizzare il codice di alcuni altri indicatori per quella parte ma... non c'è differenza (o mi è sfuggito).

Quindi come funziona?

saluti homi:)

 
 

ciao e scusa

tj per aver risposto:)

oh mi hai frainteso

il mio inglese di merda...scusa!

normalmente so come chiamare un indicatore con icustom(),

ma quando provo a chiamare LSMA trendindicator allora mi restituisce sempre il valore "1", non importa quale sia il trend reale ora restituisce sempre un valore.... "1".

Così ho pensato che l'1 che restituisce è una specie di controllo di errore che restituisce vero o falso.

Ma ho bisogno di sapere qual è il trend e devo aggiungere del codice all'indicatore che mi restituisca il valore del trend e non il valore di errorcheck.

e la mia domanda sopra significa: quale codice aggiungere all'indicatore per ottenere il valore di tendenza invece del valore di errorcheck quando lo chiamo con icustom().

saluti homi

 

Usare iCustom per ottenere il valore di LSMA.

homicida:
tj per rispondere:)

Oh, mi hai frainteso

il mio inglese di merda...scusa!

normalmente so come chiamare un indicatore con icustom(),

ma quando provo a chiamare LSMA trendindicator allora mi restituisce sempre il valore "1", non importa quale sia il trend reale, ora restituisce sempre un valore .... "1".

Così ho pensato che l'1 che restituisce è una specie di controllo degli errori che restituisce vero o falso.

Ma ho bisogno di sapere qual è il trend e devo aggiungere del codice all'indicatore che mi restituisca il valore del trend e non il valore di errorcheck.

e la mia domanda sopra significa: quale codice aggiungere all'indicatore per ottenere il valore di tendenza invece del valore di errorcheck quando lo chiamo con icustom().

saluta homi

Ciao Homi,

Non ti ho frainteso. Ti ho dato un esempio di lavoro di iCustom.

Comunque, questa è una linea di codice che otterrà il valore di LSMA usando iCustom.

Nota: ho usato LSMA in colore ()

Alert(iCustom(NULL,0,"LSMA in Color",14,1500,0,0));

parmetro 1:il simbolo - NULLper il simbolo corrente.

parmetro2: time frame - 0 per il time frame corrente.

parmetro3: nome dell'indicatore - qui è"LSMA a colori".

parmetro4: questa è un'impostazione per LSMA - Rperiod= 14.

parmetro5: questa è un'impostazione per LSMA - Draw4HowLongg= 1500.

parmetro 6: il numero di linea (gamma da 0 a 7) - di solito usato 0.

parmetro 7: la barra di lavoro - 0 per la barra corrente.

Per favore provate questa linea di codice e ditemi .

 

Ciao

L'ho testato, il tuo codice funziona bene.....

ma questo non risolve il problema^^

Ho ottenuto il valore di ritorno come hai detto tu, ma il suo valore è sempre lo stesso, non importa quale sia il trend, è sempre 214783647.

Ho cercato il valore nell'indicatorcode ci sono 3 buffer e il buffer che contiene il 214783647 è il trend non il valore che vi è memorizzato

come

se il buffer1 contiene il 214783647 significa trend up, gli altri 2 buffer contengono qualcosa come 174...

se il buffer2 contiene il 214783647 significa tendenza al ribasso, altri 2 buffer contengono qualcosa come 174...

questo potrebbe causare il problema?

saluti homi

 

214783647 significa che c'è un errore!

homicida:
ciao

L'ho testato, il tuo codice funziona bene.....

ma questo non risolve il problema^^

Ho ottenuto il valore di ritorno come hai detto, ma il suo valore è sempre lo stesso, non importa quale sia la tendenza reale, è sempre 214783647.

Ho cercato il valore nell'indicatorcode ci sono 3 buffer e il buffer che contiene il 214783647 è il trend non il valore che vi è memorizzato

come

se il buffer1 contiene il 214783647 significa trend up, gli altri 2 buffer contengono qualcosa come 174...

se il buffer2 contiene il 214783647 significa tendenza al ribasso, altri 2 buffer contengono qualcosa come 174...

questo potrebbe causare il problema?

saluta homi

Ciao homi,

Penso che ci sia un errore nella tua chiamata iCustom.

Comunque, ecco il codice che chiamerà iCustom di LSMA per restituire il valore delle sue 3 linee.

Nota 1: I valori delle 3 linee sono gli stessi perché LSMA è un indicatore di colore (se vuoi saperne di più chiedimi)

Nota 2: 214783647 è un errore. Ho incluso nell'esempio dimostrativo alcune linee di codice che restituiranno lo stesso errore per farvelo capire.

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

//| iCustom_Demo.mq4 |

//| Coders' Guru. |

//| https://www.forex-tsd.com |

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

#property copyright "Coders Guru"

#property link "https://www.forex-tsd.com"

#property indicator_chart_window

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators

//----

return(0);

}

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

//| Custor indicator deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int counted_bars=IndicatorCounted();

//----

Alert("Line3 on LSMA is: " + iCustom(NULL,0,"LSMA in Color",14,1500,2,0));

Alert("Line1 on LSMA is: " + iCustom(NULL,0,"LSMA in Color",14,1500,0,0));

Alert("Line2 on LSMA is: " + iCustom(NULL,0,"LSMA in Color",14,1500,1,0));

//Some mis-typed iCustom calls which will return:

//Wrong LSMA parameter

Alert("This is an error " + iCustom(NULL,0,"LSMA in Color",0,1500,0,0));

//Wrong line number

Alert("This is an error " + iCustom(NULL,0,"LSMA in Color",14,1500,3,0));

//Wrong Bar number

Alert("This is an error " + iCustom(NULL,0,"LSMA in Color",14,1500,3,counted_bars));

//----

return(0);

}

//+------------------------------------------------------------------+
File:
 

ciao di nuovo:D

ok sono sconfitto dall'indicatore lol:)

non riesco a farlo funzionare come voglio

dici che è un colorindicator cosa significa?

e la cosa più importante è come faccio a ottenere lo stato attuale di esso?

ottengo sempre solo un numero cablato da esso che sembra una versione arrotondata del prezzo di chiusura in tutte e tre le linee, anche con la tua demo non modificata (indicatore e demo).

Cosa mi manca?

come posso convertire l'output in una semplice stringa "verde" "rossa" "gialla"?

saluti

sottolineato homi

 

Aiutatemi per favore!

homicida:
ok im sconfitto dall'indicatore lol:)

Non riesco a farlo funzionare come voglio

dici che è un colorindicator cosa significa?

e la cosa più importante è come posso ottenere lo stato attuale di esso?

ottengo sempre e solo un numero cablato che sembra una versione arrotondata del prezzo di chiusura in tutte e tre le linee, anche con la tua demo non modificata (indicatore e demo).

Cosa mi manca?

come posso convertire l'output in una semplice stringa "verde" "rossa" "gialla"?

saluti

sottolineato homi

Ciao homi sottolineato

Hai provato la demo e ottieni ancora numeri sbagliati?

Potresti dirmi gli avvisi che hai ottenuto? Questo è quello che ho ottenuto (2 minuti fa)

File:
icustom.jpg  29 kb
 

sembra esattamente come i risultati che ho ottenuto.

ma quali sono questi valori?

saluti homi

p.s

altri hanno il problema che strategybuilder non aggiorna i grafici?

 
homicida:
sembra esattamente come i risultati che ho ottenuto.

ma quali sono questi valori?

saluta homi

homi,

Linea 1 Alert: è il valore del firstbuffer o LSMA(ExtMapBuffer1)

Linea 2 Alert: è il valore del secondo buffer o LSMA(ExtMapBuffer2)

Linea 3 Alert: è il valore del terzo buffer o LSMA(ExtMapBuffer3)

Poi ho scritto tre chiamate iCustoms con parametri intenzionalmente sbagliati per mostrarti cosa probabilmente è sbagliato nella chiamata del tuo iCustom.

Potresti dirmi esattamente cosa vuoi fare? Forse posso aiutarti!

 

Oh, l'unica cosa che voglio è chiamarlo e recuperare la tendenza attuale.

come "1" per su "2" per giù e "3" per lato.

Questo è ciò che sto cercando di fare.

perché il tuo codice funziona bene.

So che il mio problema principale è la mancanza di conoscenza dell'indicatore

quindi non posso interpretare i valori di ritorno nel modo giusto.

ma non riesco a trovare alcune informazioni su per esso.

saluti homi

Motivazione: