Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 157

 
FOTOGRAF14:
if(Close[1]<High[i] && Close[1]>Low[i])

i++;

come posso fare in modo che una condizione sia controllata sulla barra successiva e non su ogni tick?

Ho questa costruzione

static datetime TimeN=0;  


void OnTick()
  {

datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return;
   TimeN=TimeC;

 
-Aleks-:

Questo approccio funziona se l'indicatore funziona sul grafico - e ne ho bisogno in uno script - su un grafico pronto.
Э... questo approccio funziona ovunque. Da EAs, scripts, altri indicatori sarete in grado di ottenere ciò di cui avete bisogno. Se preparate un indicatore in base alle vostre esigenze specifiche.
 
Alexey Kozitsyn:
Э... questo approccio funziona ovunque. Puoi ottenere ciò di cui hai bisogno da EAs, scripts, altri indicatori. Se preparate l'indicatore per le vostre esigenze specifiche.

Non capisco.

"In OnCalculate(), quando la condizione rates_total > prev_calculated è soddisfatta - calcolare l'indicatore e scrivere il valore in questo buffer extra;"

Cosa registriamo? Il valore dell'indicatore sull'ultima barra, no?

 
-Aleks-:

Non capisco.

"In OnCalculate(), quando la condizione rates_total > prev_calculated è soddisfatta - calcola l'indicatore e scrive il valore in questo buffer aggiuntivo;".

Cosa scriviamo? Il valore dell'indicatore sulla barra precedente, no?

Registriamo ciò che calcoliamo.
 
Alexey Kozitsyn:
Scriviamo quello che calcoliamo.

Allora è una mossa stupida cambiare il calcolo della MASK - contare due volte la stessa MASK.
 
-Aleks-:

Allora è stupido cambiare il calcolo del MAK - contare due volte lo stesso MAK.

Avete scritto un solo indicatore da zero per giudicare cosa è "stupido" e cosa no?

Comunque, buona fortuna nella risoluzione del problema. Mi ritiro dalla discussione.

 
Alexey Kozitsyn:

Avete scritto un solo indicatore da zero per giudicare cosa è "stupido" e cosa no?

Comunque, buona fortuna nella risoluzione del problema. Mi ritiro dalla discussione.

Sì, scrivo indicatori per uso personale, ma senza OnCalculate().

"Stupido" si riferisce al metodo, non al suo autore, non volevo certo offendere nessuno...

Sto parlando di tale soluzione per il semplice MA[n]-Close[n]/periodo+Open[n]/periodo

Sono interessato a soluzioni simili per altri modi di calcolare le MA.

 
Alexander Antoshkin:

Non sono un buon oratore, se comincio a parlare scredito la scienza).

Trova Albert Buraga con il suo tema "Oltre il mercato" ha discusso questo argomento per molto tempo, e ascoltare ...... algoritmi e calcoli sono tutti lì, il suo gruppo è in contatto

non c'è bisogno di mettere un link al suo sito - lo cancelleranno. mostra il tuo interesse e lo troverai...... non sono un suo studente e non voglio pubblicizzarlo, ma ho preso per me 1/3 di quello che dice che manca.

Il mio schermo di lavoro assomiglia a questo: Trading da venerdì ...sono stato a malapena vicino al mio computer... L'80% del tempo stavo lavorando con ordini pendenti e profitto su livelli precedentemente calcolati...

...ed è così ogni giorno

Grazie per l'informazione - ci darò un'occhiata. So che vive anche su Smartlab.

 
Ho guardato attraverso un sacco di letteratura sul web, consigliare quale libro di testo, autore, o un corso per corsi gratuiti o video.
 

Ciao, potresti per favore consigliarmi come risolvere questo problema: a RSI>50 la variabile x viene contata una volta e a RSI<50 la variabile y viene contata una volta (ho scritto questa parte nel codice) e a RSI>70 il valore della variabile x viene sottratto dal prezzo corrente (questa parte è il problema). Il codice appare come segue:

1 parte:

bool RSI_HIGHER_50=false;
bool RSI_LOWER_50=false;
void OnTick()
{
double RSI=iRSI(NULL,0,14,PRICE_CLOSE,1);
double x;
double y;
double z;
{
if (RSI>50&& !RSI_HIGHER_50)
{
x=MarketInfo(NULL,MODE_BID);
RSI_HIGHER_50=true;
RSI_LOWER_50=false;
}
}
{
if (RSI<50 && !RSI_LOWER_50)
{
y=MarketInfo(NULL,MODE_ASK);
RSI_LOWER_50=true;
RSI_HIGHER_50=false;
}
}
}

2 parti:

if (RSI>70)
{
z=Close[1]-x;
}

Se si collegano solo queste parti, la variabile z non sarà calcolata correttamente. È possibile fissare/salvare il valore della variabile x per ulteriori operazioni con essa? Come ottenere un calcolo corretto della variabile z nella condizione di cui sopra?

Grazie.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5