[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 753
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Si prega di consigliare qual è la fregatura:
1) Riempio un array bidimensionale con il tempo di formazione dell'estremo di ZigZag e il valore dell'estremo stesso.
2) Riempire la seconda matrice con uno o due a seconda che l'estremo corrispondente a un dato elemento sia un massimo o un minimo locale.
3) Emetto i risultati attraverso Alert.
ma in un posto dove dovrebbero essere stampati 1 o 2 vengono sempre stampati degli zeri.
Qual è la fregatura?!?
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
string TimeSave1[100][2], TimeSave2[100][2];
double A[], B[];
double Number_of_extremum[];
extern string Currency = "EURUSD";
+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
int k;
k=0;
double date;
int status;
for(int shift = 0; shift <= Bars-1; shift++)
{
date = iCustom(NULL, 0, "ZigZag", 12, 5, 3, 0, shift);
//----------------------------------------------------
if(date > 0)
{
TimeSave1[k][0]=TimeToStr(Time[shift]);
TimeSave1[k][1]=date;
k++;
}
}
//====================================================
for (int u=1;u<=k;u++)
{
if (StrToDouble(TimeSave1[u][1])<=StrToDouble(TimeSave1[u-1][1]))
{
Number_of_extremum[u]=1;// значит под номером u - нашли min
}
else
if (StrToDouble(TimeSave1[u][1])>=StrToDouble(TimeSave1[u-1][1]))
{
Number_of_extremum[u]=2;// значит под номером u - нашли max
}
}
//====================================================
for (int j=1;j<10;j++)
{
Alert("время== ",TimeSave1[j][0], " значение== ", TimeSave1[j][1], " max/min== ", Number_of_extremum[j]);
}
//----
return(0);
}
//+------------------------------------------------------------------+
E un altro chiarimento:
come confrontare date e tempi in mql (per esempio, ho bisogno di determinare quale vertice di ZZ si è formato prima - per questo ho bisogno di confrontare il tempo della loro formazione...)
Non ho guardato il resto - sono appena arrivato...
Amici, una domanda:
Affrontato questo problema:
l'indicatore emette alcune informazioni tramite Alert.
Ma, a poco a poco il campo di uscita di Alert accumula troppa "merda"...
Quando riavvierò l'indicatore, sarà possibile cancellare tutti i vecchi record in Alert?
Grazie in anticipo.
P.S.
Per favore, commentate il mio post di prima (perché i valori nulli sono visualizzati invece di 1 e 2)
Non l'ho trovato sul forum...
Domanda - è possibile cambiare il commento dell'ordine? Bene, quando l'operazione OrderSend() mette nel commento il valore "OrderNotModify", e facendo ulteriori azioni con questo ordine, per esempio la chiusura parziale, cambio OrderComment in "OrderIsModify"... o no?
Puoi dirmi qual è la fregatura:
La matrice è riempita da 0, ma qui l'indice 0 è saltato, e noi riempiamo dal 1°, e
L'array è riempito da 0, ma qui l'indice 0 è saltato e riempito dal 1°, e
Non capisco bene il suo commento.
1) k - all'inizio - non è zero! k = il numero di vertici ZigZag che abbiamo rilevato ad una certa profondità della storia!
2)"quindi, funziona sempre [1][1]>=[0][1]" - perché funziona sempre? se l'elemento precedente dell'array TimeSave1 > elemento successivo, non funziona.
Ripeta, per favore, quello che voleva dire.
Non ho capito bene il suo commento.
1) k - all'inizio - non è uguale a zero! k = il numero di vertici ZigZag che abbiamo rilevato ad una certa profondità della storia!
2)"quindi, funziona sempre [1][1]>=[0][1]" - perché funziona sempre? se l'elemento precedente dell'array TimeSave1 > elemento successivo, non funziona.
Per favore, dimmi di nuovo cosa vuoi dire.
Capisco K. Questo è quello che non capisco.
nella parte destra
è possibile cambiare il commento dell'ordine?
Sembra di no.
quindi... sembra che sia il caldo... E sta influenzando anche il mio compilatore :)
Vedi, ho bisogno di far scorrere un array che registra la data di formazione del max/min dello ZigZ e il valore di quel max/min.
Ho bisogno di capire, infatti, quale vertice di ZZ è un minimo e quale un massimo.
Per fare questo confronto il prossimo punto più alto di ZZ con quello precedente.
Se il top consecutivo è più grande, allora è un top.
se è più piccolo, è un trogolo.
A seconda che si tratti di un vertice o di un trogolo, aggiungiamo 1 o 2 a un elemento di un'altra matrice, rispettivamente.
Sono curioso di questo, DOVE l'errore potrebbe essere!!!!
Voglio essere in grado di calcolare i livelli di fiba sulla base di due valori noti:
Il livello zero del Fib corrisponde a 1,2807, il livello 23,6 corrisponde a 1,2838.
Dobbiamo trovare gli altri livelli 38.2, 50.0, 61.5, 100.0 e a quali prezzi corrispondono.
Non sono nemmeno riuscito a trovare una connessione tra 1,2807 e 1,2838 per capire i principi di
di trovare tutti gli altri valori.
Per favore, ditemi, qualcuno... :)
Qualcuno ha incontrato l'indicatore per vedere il tempo di apertura della barra in un TF basso, non quanto tempo è interessante, e per disegnare i segni sul grafico dove la barra è iniziata e dove è finita
Il codice non è ottimizzato, ma disegna quello che vorrei vedere.