
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
questo è sbagliato: if(totalOrders==0 && Magic==OrderMagicNumber() &&
OrderSelect(i-1 , SELECT_BY_POS,MODE_HISTORY)==true)
perché state chiamando OrderMagicNumber() prima di OrderSelect(), quindi probabilmente si riferisce alla chiamata precedente.
Oh, scusa se ho espresso male la mia opinione.
Voglio codificare (ma non sono in grado di farlo) qualcosa che fermi il trading dell'EA (o parte del trading dell'EA) se l'equity è sotto un valore.
Grazie per il tuo aiuto Roger09, ma non ho bisogno di visualizzare l'equity sul graficoProva questo EA
CloseAllBuySell - MQL4 Code Base
Usate la sua idea e fate un codice con qualcosa come
if (AccountEquity()<YourValue) closeallorders();
Qualcuno potrebbe aggiungere il trailing stop EMA all'esempio di Moving Average EA
EMA trailing impostato su 1
Poi cambiate l'entrata in
Buy=Open[1]>ma && Close[1]>ma;
Sell=Open[1]<ma && Close[1]<ma;
Questo dovrebbe essere un ottimo scalper semplice.
Saluti
Beno
Aggiungere all'inizio del programma
extern int pips=2;//(o il vostro numero di pips)
poi sostituire
sl = OrderOpenPrice() ;
if ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))
sl = OrderOpenPrice() ;[/CODE]
to
[CODE]if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))
sl = OrderOpenPrice() +pips*Point;
if ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))
sl = OrderOpenPrice() -pips*Point;Qualcuno può aiutarmi a mettere un avviso in questo indicatore per quando disegna una nuova freccia?
Grazie!
No, correggilo
extern int pips=2;
//+------------------------------------------------------------------+
//| funzione di avvio del programma script |
//+------------------------------------------------------------------+
int start()
{
//----
stringa curr = Symbol();
int ot = OrdiniTotali();
int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
stringa ordComments[200];
int ix=0;
for (int i=0; i<ot; i++)
{
int o = OrderSelect(i, SELECT_BY_POS);
se (OrderSymbol() == Symbol())
se ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
doppio sl = 0;
if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice())
sl = OrderOpenPrice() +pips*Point;
se ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice())
sl = OrderOpenPrice() -pips*Point;
se (sl != 0+10)
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
//----
return(0);
OK, il codice ora assomiglia a questo:
extern int pips=10;//
//+------------------------------------------------------------------+
//| funzione di avvio del programma script |
//+------------------------------------------------------------------+
int start()
{
//----
stringa curr = Symbol();
int ot = OrdiniTotali();
int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
stringa ordComments[200];
int ix=0;
for (int i=0; i<ot; i++)
{
int o = OrderSelect(i, SELECT_BY_POS);
se (OrderSymbol() == Symbol())
se ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
doppio sl = 0;
if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice())
sl = OrderOpenPrice() +pips*Point;
se ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice())
sl = OrderOpenPrice() -pips*Point;
se (sl != 0)
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
Ciao Roger09,
Molte grazie per il tuo aiuto con questo codice. Il mio codice di script ora assomiglia a questo (ho aggiunto le modifiche in rosso solo per questa risposta, il codice in MQ4 assomiglia al resto che era lì):
//+------------------------------------------------------------------+
//||funzione di avvio del programma script |
//+------------------------------------------------------------------+
int start()
{
//----
extern int pips=2;//
stringa curr = Symbol();
int ot = OrdiniTotali();
int ords[200], ordType[200], ordTicket[200]; double ordLots[200];
stringa ordComments[200];
int ix=0;
for (int i=0; i<ot; i++)
{
int o = OrderSelect(i, SELECT_BY_POS);
se (OrderSymbol() == Symbol())
se ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
{
doppio sl = 0;
if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice())
sl = OrderOpenPrice() +pips*Point;
se ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice())
sl = OrderOpenPrice() -pips*Point;
se (sl != 0)
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
//----
return(0);
Puoi farmi sapere se ho capito bene? Sto volando alla cieca qui, quindi abbi pazienza.
In realtà funzionerà, ma questo codice non è buono. Purtroppo non conosco i tuoi obiettivi principali e non posso consigliarti altro.