Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 111
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
Grazie mille! Mi serviva per confrontare le caratteristiche delle candele (più, meno, ecc.) L'ho avvitato e funziona. Solo non riesco a capire come si confronta il tipo di dati stringa? O double to string non traduce il numero in stringa? :-D
PS. Non funziona in indicatore - solo in script... Quando chiamo High[i] - ottengo solo 4 cifre decimali.
Sto scrivendo:
Alert ("doubletostr High = ", DoubleToStr(High[1],5));
se (DoubleToStr(High[2],5)>(DoubleToStr(High[3],5))
{
Alert ("More");
}
se (DoubleToStr(High[2],5)<(DoubleToStr(High[3],5))
{
Alert ("Smaller");
}
Funziona, scrive il risultato con cinque cifre, conta over/under. Il problema è che nell'indicatore l'array di stringhe non appare sul grafico. Pertanto...
...scrivere:
Alert ("Normalized Double High = ", NormalizeDouble(High[1],5));
Non funziona - il risultato è > 1,1234
Non capisco gli sviluppatori - perché hanno dovuto complicare così tanto le cose? Perché, se mostra così tante cifre sul grafico, non gratta la funzione chiamata con cinque cifre? Forse c'è una soluzione semplice?
Diventa ancora più interessante:
tradurre
Alert ("iFractals doubletostr= ", DoubleToStr(iFractals(0,0,MODE_UPPER,2),Digits));
Scrive: 1,32169 - OK.
Convertire di nuovo in un valore numerico usando StrToDouble:
Alert ("iFractals StrToDoubledoubletostr= ", StrToDouble(DoubleToStr(iFractals(0,0,MODE_UPPER,2),Digits));
Risultato: 1,3217
Ci dovrebbe essere un meme con Jackie Chan dove lui non capisce il chip).
E cosa produce effettivamente Alert?
Dice 0,01 ma in realtà è 0...0100.
Diventa ancora più interessante:
tradurre
Alert ("iFractals doubletostr= ", DoubleToStr(iFractals(0,0,MODE_UPPER,2),Digits));
Scrive: 1,32169 - OK.
Convertire di nuovo in un valore numerico usando StrToDouble:
Alert ("iFractals StrToDoubledoubletostr= ", StrToDouble(DoubleToStr(iFractals(0,0,MODE_UPPER,2),Digits));
Risultato: 1,3217
Ci dovrebbe essere un meme con Jackie Chan dove lui fraintende il chip).
DoubleToStr() è usato per emettere messaggi con la precisione desiderata. Standard Print(), Alert(), ecc., stampano in 4 cifre.
Quando volete vedere un numero con la precisione che volete, usate DoubleToStr() allora, non nei calcoli.
Non c'è bisogno di tradurre nulla avanti e indietro ... ;)
Dice 0,01 ma il valore reale è 0...0100.
Uscita quindi 100 * punto = 100 * 0.00001 = 0.001pp (se per cinque cifre)
Il valore di lBUY è stato cambiato sopra. Quindi, per come la vedo io, la condizione:
Non sarà soddisfatta. E quindi il valore di lBUY rimarrà lo stesso.
La variabile j deve essere inizializzata esplicitamente all'inizio della funzione con un valore negativo. Provate. Non ho ancora guardato oltre.
Finora la stessa cosa. Qui abbiamo:
DoubleToStr() è usato per emettere messaggi con la precisione desiderata. I metodi standard Print(), Alert(), ecc. stampano 4 cifre.
Quando volete vedere un numero con la precisione che volete, è quando usate DoubleToStr(), non nei calcoli.
Non c'è bisogno di tradurre nulla avanti e indietro ... ;)
È comprensibile... ora...) Ma il punto è che ho bisogno di scavare in qualche modo una quinta cifra per i calcoli (
Se DoubleToStr() non va bene, allora questo linguaggio non ha tale caratteristica? Gli sviluppatori non l'avevano previsto?
Finora tutto bene. Eccoci qui:
È comprensibile... ora...) Ma il punto è che ho bisogno di scavare in qualche modo una quinta cifra per i calcoli (
Se DoubleToStr() non va bene, allora questo linguaggio non ha tale caratteristica? Gli sviluppatori non l'avevano previsto?
Signori programmatori! Per favore consigliate come combinare un EA con un indicatore?
Per esempio, ho preso un semplice bot mo_bidir.mq4 che fa trading usando il suo algoritmo e voglio che continui ad aprire trade usando il suo algoritmo ma dopo il segnale di 3 МА.
Per esempio su un segnale - Tre medie mobili:
FastEMA>MediumEMA>SlowEMA (tendenza up) - bot compra
FastEMA<MediumEMA<SlowEMA (tendenza giù) - bot vende
Inp_Signal_ThreeEMA_FastPeriod = 8;
Inp_Signal_ThreeEMA_MediumPeriod = 38;
Inp_Signal_ThreeEMA_SlowPeriod = 48;
Ciò di cui ho bisogno è che l'Expert Advisor continui a fare trading su 5 minuti e che l'indicatore dia segnali dal timeframe giornaliero o 4 ore, e voglio essere in grado di cambiare i timeframe nelle impostazioni del bot.