[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 533
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
Non riesco a capire la logica del compilatore. Ho una funzione. Dichiaro una variabile esterna.
int start;
oltre il corpo della funzione
doppio B()
{
int i=0, k=OrdersHistoryTotal();
per (i=k-1; i<=k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if(OrderType()==OP_SELL) {
if(OrderProfit()< 0) {start=1;}
}
}
}
}
Il valore della variabile di inizio deve essere memorizzato ed equiparato a zero quando serve. Ma in questo caso, se OrderProfit()<0 , allora start=1, e se OrderProfit()> 0 , allora automaticamente start=0.
no
se OrderProfit()> 0, la variabile memorizzerà lo stesso valore
Può dirmi dove trovarlo? È tutto in inglese.
no
Se OrderProfit()> 0, ciò che era nella variabile rimane
Ecco la funzione .
//+------------------------------------------------------------------+
double Balans()
{
int i=0, k=OrdersHistoryTotal();
for (i=k-1; i<=k; i++) {
//------------------------------------------------------------
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if (OrderType()==OP_SELL) {
if(OrderProfit()<0) {start=true;}
}
}
//-----------------------------------------------------------
}
Print(" start= ",start);
if(lots<0.01) lots=0.01;
lots=NormalizeDouble(lots,2);
return(lots);
}
//+------------------------------------------------------------------+
Ecco il registro.
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: open #1 sell 0.01 GBPUSD a 2,03190 tp: 2,03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1: chiudere #1 vendere 0,01 GBPUSD a 2,03190 tp: 2,03100 al prezzo 2,03210
16:01:36 2007.07.07.13 04:04 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: open #2 sell 0.01 GBPUSD a 2,02860 tp: 2,02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1: chiudere #2 vendere 0,01 GBPUSD a 2,02860 tp: 2,02770 al prezzo 2,02890
16:01:36 2007.07.07.16 20:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: open #3 sell 0.01 GBPUSD a 2,03640 tp: 2,03550 ok
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1: chiudere #3 vendere 0,01 GBPUSD a 2,03640 tp: 2,03550 al prezzo 2,03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: open #4 sell 0.01 GBPUSD a 2,04880 tp: 2,04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1: chiudere #4 vendere 0,01 GBPUSD a 2,04880 tp: 2,04790 al prezzo 2,05430
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: open #5 sell 0.01 GBPUSD a 2,05140 tp: 2,05050 ok
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1: chiudere #5 vendere 0,01 GBPUSD a 2,05140 tp: 2,05050 al prezzo 2,05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: open #6 sell 0.01 GBPUSD at 2.04840 tp: 2.04750 ok
16:01:36 2007.07.19 17:33 Tester: take profit #6 a 2.04750 (2.04760 / 2.04790)
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: open #7 sell 0.01 GBPUSD at 2.04810 tp: 2.04720 ok
16:01:36 2007.07.20 08:00 Bars_Trader GBPUSD,M1: close #7 sell 0.01 GBPUSD at 2.04810 tp: 2.04720 at price 2.04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: open #8 sell 0.01 GBPUSD at 2.06160 tp: 2.06070 ok
16:01:36 2007.07.25 02:12 Tester: take profit #8 a 2.06070 (2.06040 / 2.06070)
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start= 0
Ecco la funzione .
//+------------------------------------------------------------------+
doppio Balans()
{
int i=0, k=OrdersHistoryTotal();
per (i=k-1; i<=k; i++) {
//------------------------------------------------------------
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if(OrderType()==OP_SELL) {
if(OrderProfit()<0) {start=true;}
}
}
//-----------------------------------------------------------
}
Stampa(" inizio= ",inizio);
if(lots<0.01) lots=0.01;
lots=NormalizeDouble(lots,2);
return(lots);
}
//+------------------------------------------------------------------+
Ecco il registro.
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: aprire #1 vendere 0,01 GBPUSD a 2,03190 tp: 2,03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1: chiudere #1 vendere 0,01 GBPUSD a 2,03190 tp: 2,03100 al prezzo 2,03210
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.13 16:04 Bars_Trader GBPUSD,M1: aprire #2 vendere 0.01 GBPUSD a 2.02860 tp: 2.02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1: chiudere #2 vendere 0,01 GBPUSD a 2,02860 tp: 2,02770 al prezzo 2,02890
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: aprire #3 vendere 0.01 GBPUSD a 2.03640 tp: 2.03550 ok
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1: chiudere #3 vendere 0,01 GBPUSD a 2,03640 tp: 2,03550 al prezzo 2,03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: aprire #4 vendere 0.01 GBPUSD a 2.04880 tp: 2.04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1: chiudere #4 vendere 0.01 GBPUSD a 2.04880 tp: 2.04790 al prezzo 2.05430
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: aperto #5 vendere 0.01 GBPUSD a 2.05140 tp: 2.05050 ok
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1: chiudere #5 vendere 0,01 GBPUSD a 2,05140 tp: 2,05050 al prezzo 2,05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: aperto #6 vendere 0.01 GBPUSD a 2.04840 tp: 2.04750 ok
16:01:36 2007.07.19 17:33 Tester: take profit #6 a 2.04750 (2.04760 / 2.04790)
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: aprire #7 vendere 0.01 GBPUSD a 2.04810 tp: 2.04720 ok
16:01:36 2007.07.20 08:00 Bars_Trader GBPUSD,M1: chiudere #7 vendere 0,01 GBPUSD a 2,04810 tp: 2,04720 al prezzo 2,04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: aperto #8 vendere 0.01 GBPUSD a 2.06160 tp: 2.06070 ok
16:01:36 2007.07.25 02:12 Tester: take profit #8 a 2.06070 (2.06040 / 2.06070)
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start= 0
Mostra il codice in modo più completo. Per esempio ora non si può vedere dove è dichiarata questa variabile.
mostrare il codice in modo più completo. Per esempio, in questo momento non si vede dove è dichiarata questa variabile.
extern int TF;
extern int TP;
extern int BARS;
extern int BarrierMinute;
extern int Step=0;
//--------
extern double ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ;
extern double Decrease=2;
extern inttern Wait=2;
extern inttern Ripetere;
extern int int MA_Sell;
extern int int Applied_Price_Sell;
//extern int MAPeriod_1;
//extern int Calc=8;
extern double Lots=5;
//----
int statico PrevTime=0;
doppi lotti;
int wait, start, step, repeat;
datetime openTime=0;
doppio lotto=0,1;
Ciao, puoi dirmi come cambiare gli ordini OP_ BUYSTOP e OP_SELLSTOP nel mio EA per OP_SELLLIMIT e OP_BUYLIMIT? Ho provato e i miei ordini BUYLIMIT sono piazzati, ma quelli SELLLIMIT nemmeno, forse sto facendo qualcosa di sbagliato?
Expertd10.mq4 (5,82 KB) cancellare
Ciao amici, potete aiutarmi con questo problema?
Sto scrivendo un Expert Advisor con software stoploss, lo schema base dell'algoritmo è il seguente:
int start()
{double x, PreProfit, TekProfit;
for (x=0; x<1; x++) //L'operatore For loop (in teoria) dovrebbe essere eseguito 1 volta
{PreviousProfit=(-20);}// Assegna 1 valore temporale (in teoria)!
TextProfit=OrderProfit();//trova il profitto dell'ordine selezionato
if (PredPreviousProfit<TekProfit)//se il profitto attuale è superiore a quello precedente, allora...
{WeakProfit=TekProfit;}// Assegna alla variabile PredCompetitive un nuovo valore!
//allora la variabile PredCompanyProfit dovrebbe contenere il più alto valore di profitto di tutti i tempi!
}
La fregatura è che il valore della variabile "x" viene azzerato con un nuovo tick e il valore (-20) viene assegnato alla variabile "PredPreCompetition" con ogni nuovo tick! Così si perde tutto il senso dell'algoritmo! La variabile "PreProfit" è stata progettata per mantenere costantemente il valore massimo di profitto dell'ordine fino a quando questo valore viene "resettato" alla chiusura dell'ordine.
Qual è l'errore? Forse ci sono altre soluzioni per questo problema? Vi sono molto grato in anticipo!
La fregatura è che il valore della variabile "x" con un nuovo tick viene azzerato e l'assegnazione del valore (-20) alla variabile "PredPreprofit" viene eseguita ogni nuovo tick! Così si perde tutto il senso dell'algoritmo! La variabile "PrevPreprofit" è stata progettata per mantenere il valore massimo di profitto dell'ordine in modo permanente fino al "reset" forzato di questo valore quando l'ordine viene chiuso.
Qual è l'errore? Forse ci sono altre soluzioni per questo problema? Grazie in anticipo!
Ciao, puoi dirmi come cambiare gli ordini OP_ BUYSTOP e OP_SELLSTOP nel mio EA per OP_SELLLIMIT e OP_BUYLIMIT? Ho provato a cambiare gli ordini BUYLIMIT ma SELLLIMIT non lo pensa nemmeno, forse sto facendo qualcosa di sbagliato?
Non ti sei dimenticato di Bid e Ask quando l'hai cambiato?
Chi sa come rendere visibile un indicatore standard nello strategy tester?