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
Caro Mrtools/Mladen
Puoi impostare il parametro di distanza massima per essere la distanza del prezzo di chiusura di una barra dalla lenta ma
l'impostazione attuale è senza senso imho
Grazie
SachinSachin
Trova semplicemente la linea che fa così:
MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));
e sostituisci FastMACurrent con Close[1] (per la chiusura della prima barra chiusa) o Close[0] (per la chiusura della barra ancora aperta)
ok l'ho fatto ora testando...grazie
cud u plz anche assistere qui: https: //www.mql5.com/en/forum/general
Sachin
Basta trovare la linea che va come questa:
MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));
e sostituite FastMACurrent con Close[1] (per la chiusura della prima barra chiusa) o Close[0] (per la chiusura della barra ancora aperta)Caro Mladen, puoi controllare perché il filtro orario non funziona? Vedi le linee verticali rosse sul grafico dove non dovrebbe fare trading ma lo fa. In Ea ho impostato il trading solo in certe ore. Molte grazie
Sachin
Trova semplicemente la linea che fa così:
MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));
e sostituite FastMACurrent con Close[1] (per la chiusura della prima barra chiusa) o Close[0] (per la chiusura della barra ancora aperta)Ciao Mladen,
Non ho potuto compilare il codice mql4 a causa dei seguenti errori:
extern string Pivot.Setting = "---------- Pivot Filter Setting";
extern bool Use.Pivot.Filter = false;
==> '.' - punto e virgola previsto MACrossEAV1.5.mq4 77 28 if(Use.Pivot.Filter==true)
==> 'Use' - identificatore non dichiarato MACrossEAV1.5.mq4 458 7
'Pivot' - struttura o tipo di classe previsto MACrossEAV1.5.mq4 458 11
'Filter' - struttura o tipo di classe previsto MACrossEAV1.5.mq4 458 17
Cosa ho fatto di sbagliato?
Grazie per il vostro aiuto
Ciao Mladen,
Non ho potuto compilare il codice mql4 a causa dei seguenti errori:
extern string Pivot.Setting = "---------- Pivot Filter Setting";
extern bool Use.Pivot.Filter = false;
==> '.' - punto e virgola previsto MACrossEAV1.5.mq4 77 28 if(Use.Pivot.Filter==true)
==> 'Use' - identificatore non dichiarato MACrossEAV1.5.mq4 458 7
'Pivot' - struttura o tipo di classe previsto MACrossEAV1.5.mq4 458 11
'Filter' - struttura o tipo di classe previsto MACrossEAV1.5.mq4 458 17
Cosa ho fatto di sbagliato?
Grazie per il vostro aiutoStephFX
Rimuovi il "." dal nome della variabile
Puoi sostituirlo con "_" per esempio e poi avrai :
extern string Pivot_Setting = "---------- Pivot Filter Setting";
extern bool Use_Pivot_Filter = false;
e questo
if(Use_Pivot_Filter==true)
e poi tutto verrà compilato OK
Ciao a tutti,
Dato che sto provando una strategia martingala, ho cercato di fare in modo che "STOP AND REVERSE" funzioni solo quando l'ultimo trade è stato vincente.
{
for(int count=histotal-1;count>=0;count--)
{
if(OrderSelect(count,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()>0)
{
if(StopAndReverse==true && subTotalTrade()>0)
{
if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true))
{
subCloseOrder();
se(subTotalTrade()>0) subCloseOrder();
se(subTotalTrade()>0) subCloseOrder();
if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !");
}
}
}
}
}
}
}
Tuttavia, non sembra funzionare. Si fermerà e invertirà anche se l'ultimo trade era in perdita. Qualche suggerimento?
Grazie!
Ciao a tutti,
Dato che sto provando una strategia martingala, ho cercato di fare in modo che "STOP AND REVERSE" funzioni solo quando l'ultimo trade è stato vincente.
Tuttavia, non sembra funzionare. Si fermerà e invertirà anche se l'ultimo trade era una perdita. Qualche suggerimento?
Grazie!Non state controllando l'ora dell'ordine. Devi controllare anche il tempo di chiusura dell'ordine, e l'ordine con il tempo di chiusura maggiore è quello che vuoi controllare per il profitto
Non stai controllando il tempo dell'ordine. Devi controllare anche il tempo di chiusura dell'ordine, e l'ordine con il tempo di chiusura maggiore è quello che vuoi controllare per il profitto
Il fatto è che io uso un codice molto simile per il sistema martingala che funziona perfettamente:
//|---------martingale
int martingalefactor()
{
int histotal=OrdersHistoryTotal();
se (histotal>0)
{
for(int cnt=histotal-1;cnt>=0;cnt--)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()<0)
{
lotsfactor=lotsfactor*multiplier;
return(lotsfactor);
}
else
{
lottifattore=fattore iniziale;
if(lotsfactor<=0)
{
lotsfactor=1;
}
return(lotsfactor);
}
}
}
}
}
return(lotsfactor);
}
Dato che funziona per la martingala, non dovrebbe funzionare anche ora?
Il fatto è che uso un codice molto simile per il sistema martingala che funziona perfettamente: Visto che funziona per la martingala, non dovrebbe funzionare anche ora?
Provate a usare qualcosa come questo:
{
double TempLastOrderProfit = 0;
datetime CloseTime = 0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
{
CloseTime = OrderCloseTime();
TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission();
}
}
return(TempLastOrderProfit);
}
Ti restituirà l'importo esatto del profitto (o della perdita) dell'ultimo ordine
Provate a usare qualcosa come questo: vi restituirà l'importo esatto del profitto (o della perdita) dell'ultimo ordine
Grazie per il tuo aiuto, Mladen. Ho modificato un po' il codice fino a quando non l'ho compilato senza errori, ma l'EA si ferma ancora e si inverte dopo una perdita. Questo è il codice esatto che sto usando ora:
{
double TempLastOrderProfit = 0;
datetime CloseTime = 0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
{
CloseTime = OrderCloseTime();
}
}
if(StopAndReverse==true && subTotalTrade()>0 && OrderProfit()>0)
{
if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true))
{
subCloseOrder();
se(subTotalTrade()>0) subCloseOrder();
se(subTotalTrade()>0) subCloseOrder();
if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !");
}
}
}
double GetLastPL() Mi dà il seguente errore: '(' - function definition unexpected.