[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 9

 
Quale in mql4 è un bel modo per limitare le perdite (fermare l'EA) se tutto è andato male? Ho inventato solo di reimpostare il valore massimo di AccountEquity() nel file ini di tanto in tanto e fermare il trading se il valore corrente di AccountEquity() è inferiore di qualche percentuale definita rispetto a quello salvato. Si prega di avvisare.
 
igrok2008 писал(а) >>
Gli esempi precedenti descrivono il codice di acquisto e vendita per CCI, RSI e WPR. Perché si usano esattamente questi indicatori? Secondo me sono i più semplici per imparare a costruire un Expert Advisor. Il principio di acquisto e vendita è lo stesso per loro. meno di -100 (per CCI), -70 (per RSI) e 20 (per WPR), rispettivamente vendere sarà: +100, -30 e 80. Mi sembra (incrociato più di una volta) che gli errori siano nelle condizioni di trading, ma dove non capisco..... Si tratta del principio di SCRIVERE correttamente le condizioni di trading (credo di sì).............. Questo è quello che volevo chiederti........
double CCI = NormalizeDouble(iCCI(NULL, 0,Period,PRICE_CLOSE,1), Digits);

if(CCI[1] > -100)
Aspetta un attimo, da dove viene questo SSI[1]?
si scopre che il codice non si compila, quindi nessuna compilazione è sbagliata?
 
MuruFigi писал(а) >>
Quale in mql4 è un bel modo per limitare le perdite (fermare l'EA) se tutto è andato male? Ho inventato solo di reimpostare il valore massimo di AccountEquity() nel file ini di tanto in tanto e se il valore attuale di AccountEquity() è inferiore di una percentuale definita rispetto a quello salvato, allora si ferma il trading. Si prega di avvisare.

Cerca l'indicatore di equità e di equilibrio di Surgeon. È in CodeBase.

 
Korey >> :
Aspetta un attimo, dov'è CCI[1]?
si scopre che il codice non passa la compilazione, cioè l'assenza di compilazione è sbagliata?

CCI[1]è il CCI della prima barra.

Cos'è la compilazione? Compilare un EA (indicatore, script) è quello che si fa nel metaeditor premendo F5 (compila) ??????????

Penso, perché la prima barra non è ancora formata, quindi il calcolo dovrebbe essere fatto sulla prima barra. Da qui l'ICC[1]. In cosa mi sbaglio??????

 
igrok2008 >> :

>> su cosa mi sbaglio??????

In tutto. I consiglieri si sono già sparpagliati, rendendosi conto che avete ancora bisogno di leggere un libro di testo per afferrare i concetti di base. Altrimenti non ci sarà nessuna conversazione.

Per esempio, CCI[1] anche un "programmatore" come me legge come la chiamata di una cella di un array chiamato CCI e indicizzato [1]. Cosa intendeva dire?

 
granit77 >> :

In tutto. I consiglieri si sono già sparpagliati, rendendosi conto che avete ancora bisogno di leggere un libro di testo per afferrare i concetti di base. Altrimenti, la conversazione non funzionerà.

Per esempio, anche un "programmatore" come me legge CCI[1] come una chiamata di una cella di array con nome CCI e indice [1]. Cosa vuoi dire con questo?

Più o meno lo stesso, che ne dici del link al tutorial? O è il tutorial MQL4 "MQL4Bookrussian"??????????????

 
igrok2008 >> :

Più o meno la stessa cosa.

Che ne dite di un link a un libro di testo? O forse è il tutorial MQL4 "MQL4Bookrussian"???????????????

1. Se è lo stesso, dove e perché avete dichiarato (creato) questo array? Si può chiamare qualcosa che esiste.

2. Link Tutorial all'inizio della pagina. Personalmente ho trovato gli articoli di Rosh più adatti.

 
granit77 >> :

1. Se è lo stesso, dove e perché avete dichiarato (creato) questo array? Si può chiamare qualsiasi cosa esista.

2. Link al libro di testo in cima alla pagina. Personalmente ho trovato gli articoli di Rosh più adatti.

1 entrata CCI[1]>-100 è una condizione di trading per comprare

2 leggere (superficialmente però) il tutorial, leggere fino a 30 pagine di funzioni utili KimIV, leggere articoli "for dummies" e da nessuna parte trovare la risposta alla domanda PERCHE' la condizione token DEVE essere scritta in questo modo if(bullshit know what<*****&& bullshit know how>******). Perché dovrebbe esserlo.

tratat AND trat, non solo if(trat<******). È questo che non mi è chiaro. Naturalmente vinin mi ha spiegato prima (per MA) chiaramente cosa è cosa, MA PERCHE' SI DEVE USARE logico E ..... inspiegabile.................

Non sono ancora arrivato agli articoli di Rosha, grazie per il suggerimento.............

 
igrok2008 >> :

1 entrata CCI[1]>100 è una condizione di acquisto

Perché dovrebbe essere tratata E trututu e non solo if(tratata<******). È questo che non mi è chiaro. Naturalmente vinin mi ha spiegato prima (per MA) intelligentemente cosa è cosa, MA PERCHE' SI DEVE USARE il logico E ..... inspiegabile........

1. Non si tratta di che tipo di condizione è, ma di cosa si sta confrontando e con cosa. Voi pensate che state confrontando il valore dell'indicatore CCI con il livello, mentre invece dell'indicatore state scrivendo il valore di una cella di un inesistente e inutile array personalizzato CCI[] che ha semplicemente lo stesso nome, cioè spazio vuoto. Questo è un errore grossolano che il compilatore non sarà in grado di compilare.

2. Se state prendendo un segnale da un indicatore a freccia in cui un valore appare solo quando si verifica una condizione, state scrivendo:

if(trata>0) enter; Questo perché il segnale è discreto, se non c'è una freccia il buffer è vuoto e non c'è altro da controllare

Se tracciate la linea dell'indicatore che attraversa un certo livello (il buffer è pieno di linea, il segnale è analogico), allora tale scrittura if(trata>level) risulterà in un segnale continuo in ingresso per tutto il tempo che la linea dell'indicatore è sopra il livello. Ma non è quello che vuoi, vuoi ottenere un segnale al momento dell'attraversamento. E il momento dell'attraversamento è colto proprio attraverso la tratata e la trutata.

Cioè, leggiamo e scriviamo nelle variabili i valori CCI sulla barra zero e sulla prima barra. Controlliamo se il CCI era più alto nella prima barra (precedente). Se il CCI sulla barra zero è già sceso sotto questo livello, allora si è verificato un cross. Combina queste due condizioni con un AND logico e abbiamo un unico segnale trasversale.

//объявляем переменную cci_0 и присваиваем ей значение индикатора CCI на нулевом (текущем) баре
double cci_0=iCCI(NULL,0, CCIperiod, CCIprice,0);
//объявляем переменную cci_1 и присваиваем ей значение индикатора CCI на первом (предыдущем) баре
double cci_1=iCCI(NULL,0, CCIperiod, CCIprice,1);
//если значение индикатора CCI на нулевом (текущем) баре уже меньше уровня 100
//а предыдущее его значение (на первом баре) было больше уровня 100
//значит произошло пересечение, и мы даем сигнал на продажу
if( cci_0<100 && cci_1>100) SignalSell=true;
 
granit77 >> :

1. Non si tratta di quale condizione sia, ma di cosa si sta confrontando e con cosa. Voi pensate che state confrontando il livello dell'indicatore CCI ma invece dell'indicatore state scrivendo il valore di una cella di un inesistente e inutile array personalizzato CCI[] che ha semplicemente lo stesso nome, cioè uno spazio vuoto. Questo è un errore grossolano che il compilatore non sarà in grado di compilare.

2. Se state prendendo un segnale da un indicatore a freccia in cui un valore appare solo quando si verifica una condizione, state scrivendo:

if(tratata>0) enter; Questo perché il segnale è discreto, se non c'è nessuna freccia, il buffer è vuoto e non c'è altro da controllare

Se tracciate la linea dell'indicatore che attraversa un certo livello (il buffer è pieno di linea, il segnale è analogico), allora questa scrittura if(trata>level) farà entrare un segnale continuo finché la linea dell'indicatore è sopra il livello. Ma non è quello che vuoi, vuoi ottenere un segnale al momento dell'attraversamento. E il momento dell'attraversamento è colto proprio attraverso la tratata e la trutata.

Cioè, leggiamo e mettiamo nelle variabili i valori del CCI a zero e alla prima barra. Controlliamo se il CCI era più alto nella prima barra (precedente). Se il CCI sulla barra zero è già sceso sotto questo livello, allora si è verificato un cross. Combinando queste due condizioni con l'AND logico si ottiene un unico segnale trasversale.

wo......Wo.......Wo.............. capire.... capire.....shaz questo pomeriggio risponderò GRAZIE a granit77. Anche a prima vista, si può vedere che lei ha una pazienza angelica,

non come gli insegnanti a scuola oggi.....