[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 216
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 per la risposta, ma ho l'algoritmo scritto in russo, ma non sono bravo con mql, almeno un consiglio sulle funzioni che hanno fissato il numero (lo scriverò nelle impostazioni) di ordini sell/buy aperti, e poi il segnale per vietare di piazzare ordini sellstop/buystop pendenti.
Perché questo algoritmo, che avete già scritto, non si riflette nel vostro codice?
Pensate che solo guardando il vostro codice che non avete scritto in una sola volta si possa indicare il vostro errore?
Dobbiamo ancora "leggerlo"...
Ecco un estratto di codice dove tutto quello che abbiamo scritto su un pezzo di carta è mostrato anche nel codice:
Quindi, finché la cosa più semplice non è sistemata, non si dovrebbe andare oltre...
E cosa avete? Hai messo tutto insieme, non hai commentato una sola riga. Ora prenditi una settimana di pausa e torna al tuo codice. Sono sicuro che ti ci vorranno due ore per ricordare. 100%
Lotto permanente 0,1.
In questo caso, secondo me, è un buon risultato per la settimana. Non ricordo esattamente, penso che sia circa 800 punti. Solo la stabilità mi sembra non essere a posto: il grafico non è molto fluido... Comunque, grazie per la risposta. Almeno qualche figura sta emergendo. Sono abbastanza lontano da questo: 3000-4000 punti all'anno sono il limite. Ma il mio grafico dell'equilibrio è più piatto...
Ho pensato: 0,1 lotto fisso - ma con quale leva? Non è molto chiaro dal grafico del saldo quanti punti sono stati guadagnati?
Come posso ottenere il valore del livello di Fiba selezionato da tale indicatore?
//+------------------------------------------------------------------+
//| Parabolic_ZZ.mq4 |
//| Copyright © 2009, Vic2008 |
//| |
//+------------------------------------------------------------------+
#proprietà copyright "Copyright © 2009, Vic2008"
#proprietà link ""
#include <stdlib.mqh>
#proprietà indicator_chart_window
#proprietà indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Magenta
//---- parametri di ingresso
extern double SAR_step=0.02; //parametri parabolici.
extern double SAR_maximum=0.2;
extern int BarsCount = 500; //Distanza in barre per disegnare l'indicatore.
extern bool Fibo1_off = False; //Disabilitazione dei livelli Fibo.
extern bool Fibo2_off = False;
extern bool Fibo_Absolut_Value = False; //Includere i valori assoluti dei prezzi ai livelli Fibo.
extern color Label_Color = Gray;
extern color Fibo_Color = Blue;
//---- buffer
doppio ExtMapBuffer1[];
doppio ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'indicatore personalizzato
//+------------------------------------------------------------------+
int init()
{
//---- indicatori
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(0,DRAW_SECTION);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexStyle(1,DRAW_SECTION,0,2,Magenta);
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectsDeleteAll(0,OBJ_ARROW);
ObjectDelete("FiboZZLast");
ObjectDelete("FiboZZPrev");
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di iterazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int start()
{
//int counted_bars=IndicatorCounted();
stringa txt;
int w,PosLow,PosHigh;
double LPic=1000000,HPic=0,price;
datetime TimeTmp;
//----
ExtMapBuffer1[0]=Close[0];
ExtMapBuffer2[0]=EMPTY_VALUE;
for( w=0;w<BarsCount;w++){
if( w!=0 ){ ExtMapBuffer1[w]=EMPTY_VALUE; ExtMapBuffer2[w]=EMPTY_VALUE; }
if( iSAR(NULL,0,SAR_step,SAR_maximum,w) > Close[w] && LPic>=Low[w] ){ LPic=Low[w]; PosLow=w; }
if( iSAR(NULL,0,SAR_step,SAR_maximum,w) < Close[w] && HPic<=High[w] ){ HPic=High[w]; PosHigh=w; }
// H -> L
se( iSAR(NULL,0,SAR_step,SAR_maximum,(w+1)) > Close[w+1] && iSAR(NULL,0,SAR_step,SAR_maximum,w) < Close[w] && HPic!=0)
{
ExtMapBuffer1[PosHigh]=HPic;
ExtMapBuffer2[PosHigh]=HPic;
HPic=0;
}
// L -> H
if( iSAR(NULL,0,SAR_step,SAR_maximum,w) < Close[w] && iSAR(NULL,0,SAR_step,SAR_maximum,w+1) > Close[w+1] && LPic!=1000000 )
{
ExtMapBuffer1[PosLow]=LPic;
ExtMapBuffer2[PosLow]=LPic;
LPic=1000000;
}
}
if( Fibo1_off ) ObjectDelete("FiboZZLast");
if( Fibo2_off ) ObjectDelete("FiboZZPrev");
//Disegnare i segni dei prezzi e i livelli FIBO
int wave_cnt=0;
for( w=0;w<BarsCount;w++){
se( ExtMapBuffer2[w]!=EMPTY_VALUE ){
se( wave_cnt<=3 ){
ObjectDelete("PZZ_"+DoubleToStr( wave_cnt, 0));
ObjectCreate("PZZ_"+DoubleToStr( wave_cnt, 0), OBJ_ARROW, 0, Time[w], ExtMapBuffer2[w], Time[w], 0);
ObjectSet("PZZ_"+DoubleToStr( wave_cnt, 0), OBJPROP_ARROWCODE, SYMBOL_LEFTPRICE );
ObjectSet("PZZ_"+DoubleToStr( wave_cnt, 0), SYMBOL_LEFTPRICE, ExtMapBuffer2[w]);
ObjectSet("PZZ_"+DoubleToStr( wave_cnt, 0), OBJPROP_COLOR, Label_Color );
if(wave_cnt==1 && Fibo1_off==False ){
ObjectDelete("FiboZZLast");
ObjectCreate("FiboZZLast", OBJ_FIBO, 0, TimeTmp, ExtMapBuffer2[w], TimeTmp, price);
ObjectSet("FiboZZLast", OBJPROP_LEVELCOLOR, Fibo_Color);
ObjectSet("FiboZZLast", OBJPROP_COLOR, Fibo_Color);
ObjectSet("FiboZZLast", OBJPROP_RAY, False );// Per abilitare i raggi sostituire False con True
ObjectSet("FiboZZLast", OBJPROP_FIBOLEVELS, 14);
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZLast",0, "23.6");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZLast",1, "38.2");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZLast",2, "50.0");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZLast",3, "61.8");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZLast",4, "100.0");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZLast",5, "161.8");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZLast",6, "261.8");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZLast",7, "423.6");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZLast",8, "8.8");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZLast",9, "14.5");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZLast",10, "76.4");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZLast",11, "85.5");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZLast",12, "92.1");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZLast",13, "0.0");
if( Fibo_Absolut_Value ){
ObjectSet("FiboZZLast", OBJPROP_FIBOLEVELS, 14);
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZLast",0, "23.6 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZLast",1, "38.2 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZLast",2, "50.0 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZLast",3, "61.8 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZLast",4, "100.0 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZLast",5, "161.8 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZLast",6, "261.8 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZLast",7, "423.6 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZLast",8, "8.8 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZLast",9, "14.5 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZLast",10, "76.4 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZLast",11, "85.5 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZLast",12, "92.1 %$");
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZLast",13, "0.0");
}
}
if( wave_cnt==2 && Fibo2_off==False ){
ObjectDelete("FiboZZPrev");
ObjectCreate("FiboZZPrev", OBJ_FIBO, 0, TimeTmp, ExtMapBuffer2[w], TimeTmp, price);
ObjectSet("FiboZZPrev", OBJPROP_LEVELCOLOR, Fibo_Color);
ObjectSet("FiboZZPrev", OBJPROP_COLOR, Fibo_Color);
ObjectSet("FiboZZPrev", OBJPROP_RAY, False );// Per abilitare i raggi sostituire False con True
ObjectSet("FiboZZPrev", OBJPROP_FIBOLEVELS, 14);
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZPrev",0, "23.6");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZPrev",1, "38.2");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZPrev",2, "50.0");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZPrev",3, "61.8");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZPrev",4, "100.0");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZPrev",5, "161.8");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZPrev",6, "261.8");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZPrev",7, "423.6");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZPrev",8, "8.8");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZPrev",9, "14.5");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZPrev",10, "76.4");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZPrev",11, "85.5");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZPrev",12, "92.1");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZPrev",13, "0.0");
if( Fibo_Absolut_Value ){
ObjectSet("FiboZZPrev", OBJPROP_FIBOLEVELS, 14);
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZPrev",0, "23.6 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZPrev",1, "38.2 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZPrev",2, "50.0 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZPrev",3, "61.8 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZPrev",4, "100.0 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZPrev",5, "161.8 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZPrev",6, "261.8 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZPrev",7, "423.6 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZPrev",8, "8.8 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZPrev",9, "14.5 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZPrev",10, "76.4 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZPrev",11, "85.5 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZPrev",12, "92.1 %$");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZPrev",13, "0.0");
}
}
}
wave_cnt++;
prezzo=ExtMapBuffer2[w];
TimeTmp=Time[w];
}
}
//----
ritorno(0);
}
//+------------------------------------------------------------------+
Come ottenere il valore del livello di fibra selezionato da un tale indicatore?
che cazzo?
Forse dovresti metterci anche "guerra e pace".
aiuto per favore... il mio Expert Advisor controlla gli ordini aperti ...un ordine può essere aperto alla volta ...ma quando inserisco uno stop su una linea retta al momento dell'apertura di un ordine dà errore 130...per esempio era così
se(giù>0)
{ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,0,Bid-TakeProfit*Point,0,16384,0,Red);
Digito uno stop di dimensione 100
ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,100,Bid-TakeProfit*Point,0,16384,0,Red); ...dà errore 130 nel tester
DTz Alpari...forse dovrei modificare p dopo aprire un ordine e mettere uno stop?...dimmi come approssimativamente questo può essere fatto o indicami un EA che fa questo...per favore
aiuto per favore...
aiuto per favore... l'advisor ha una funzione di controllo degli ordini aperti...un ordine può essere aperto alla volta...ma quando si inserisce una misura di stop direttamente al momento dell'apertura
un nuovo ordine può essere modificato dopo che è stato aperto e uno stop può essere impostato ... potresti per favore consigliarmi come fare questo o indicarmi un EA dove questo viene fatto ... per favore
Uno stop dovrebbe essere di tipo doppio. Si deve specificare il prezzo al quale lo stop deve essere impostato.
100*Punto
Perché questo algoritmo che avete già scritto non si riflette nel vostro codice?
Pensate che solo guardando il vostro codice non formattato si possa indicare immediatamente il vostro errore?
Hai ancora bisogno di "leggerlo"...
Ecco un estratto del codice in cui tutto ciò che avete abbozzato su un pezzo di carta è mostrato anche nel codice:
Quindi, fino a quando non avrete capito bene la cosa più semplice, non dovreste andare oltre...
E tu? Hai messo tutto insieme, non hai commentato una sola riga. Ora prenditi una settimana di pausa e torna al tuo codice. Sono sicuro che ti ci vorranno due ore per ricordare. 100%
Scusa, il codice non è mio, lo sto studiando io stesso. Questa era una parte riguardante gli ordini pendenti, il resto era bla bla, come facciamo di solito con le impostazioni, i lotti, i frattali e il trawl. Questo EA non sta funzionando, cioè sta perdendo a causa degli ordini accumulati, quindi ho deciso di mettere alcune restrizioni e vedere cosa succede. Userò il linguaggio mql ma non ho idea di cosa farci. Grazie, ci darò un'occhiata.
Questo è strano. Cosa c'è da scusare? Bene... Vi ho mostrato come dovreste progettare i vostri codici, così non dovrete capirlo dopo.
E poiché il tuo codice è di qualcun altro... Ma... Puoi anche commentare quelle stringhe il cui significato ti è diventato chiaro durante l'analisi. Dopo sarà più facile da capire, e sarà meglio che tu scriva il tuo sulla base di quello analizzato. Quindi, per comprenderlo pienamente, capirlo e convertirlo alle proprie esigenze.
Questo èesattamente ciò che vi porterà ad una comprensione logica. Sarà anche un bene per voi. :)
Buona fortuna!