![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Ciao,
Non riesco a compilarlo a causa di un errore di parentesi sbilanciate, qualcuno può dirmi perché queste sono sbilanciate?
GrazieSe stai ricevendo questo errore, allora ti manca uno di [ o { o (
probabilmente da qualche parte nel tuo codice c'è una funzione dove hai messo troppe {[(
Ho controllato una parte del tuo codice e ho trovato alcuni errori. Prova questo:
if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order
{
int hstTotal=OrdersHistoryTotal();
for(i=0;i<hstTotal;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == false)
{
Print("Access to history failed ("+GetLastError()+")");
break;
}
else
{
if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;
}
}
Inoltre penso che l'ultima parte del tuo codice (OrderDelete) non funzionerà, perché la funzione OrderDelete non controlla nulla - sta cancellando l'ordine selezionato. Quindi devi passargli il parametro con il biglietto dell'ordine. Invece di questo puoi riconoscere gli ordini cancellati controllando i loro commenti. Ogni ordine cancellato avrà "cancellato" nel suo commento - puoi confrontare il risultato della funzione OrderComment() per trovare questo.
Qualcuno può aiutarmi?
Salve,
Sto cercando di scrivere un EA e ho bisogno di aiuto per scrivere una formula.
Voglio che la formula calcoli la differenza tra la chiusura della candela precedente (PCC1) e la chiusura della candela due candele indietro (PCC2) (lo farò su più coppie). HoL=(PCC1-PCC2)
Il mio obiettivo è quello di segnalare un acquisto o una vendita;
bool BuySignal=false;
bool SellSignal=falso;
if(HoL>0) BuySignal=true;if(HoL<0) SellSignal=true;
Grazie per il vostro aiuto con questo.
...
Se si desidera utilizzare più simboli da un'istanza di EA che è possibile utilizzare qualcosa come questo :
double HoL=iClose(symbolName,0,1)-iClose(symbolName,0,2);[/php]Or to prevent some back testing surprises, a slightly more complicated code
int symbolShift2 = iBarShift(symbolName,0,Time[2]);
double HoL = iClose(symbolName,0,symbolShift1)-iClose(symbolName,0,symbolShift2);
If you are going to use it only on symbol that your EA is attached to than this
[php]
double HoL=Close[1]-Close[2];
è sufficiente
PS:"symbolName" dovrebbe essere impostato su Symbol di tua scelta.
saluti
mladen
Ciao,
Sto cercando di scrivere un EA e ho bisogno di aiuto per scrivere una formula.
Voglio che la formula calcoli la differenza tra la chiusura della candela precedente (PCC1) e la chiusura della candela due candele indietro (PCC2) (la eseguirò su più coppie). HoL=(PCC1-PCC2)
Il mio obiettivo è segnalare un acquisto o una vendita;
bool BuySignal=false;
bool SellSignal=falso;
if(HoL>0) BuySignal=true;if(HoL<0) SellSignal=true;
Grazie per il vostro aiuto con questo.Nascondere TP
Sostituire
{
int ticket,err;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", CurTime()); // set lock indicator
ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,Ask+TP*Poin t,"Ask-StopLoss*Point,EA Order",magic,0,Red);
GlobalVariableDel("InTrade"); // clear lock indicator
}
}
void OpenSell()
{
int ticket,err;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", CurTime()); // set lock indicator
ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,Bid-TP*Point,Bid+StopLoss*Point,"EA Order",magic,0,Red);
GlobalVariableDel("InTrade"); // clear lock indicator
}
}[/CODE]
to
[CODE]void OpenBuy()
{
int ticket,err;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", CurTime()); // set lock indicator
ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,0,"Ask-StopLoss*Point,EA Order",magic,0,Red);
GlobalVariableDel("InTrade"); // clear lock indicator
}
}
void OpenSell()
{
int ticket,err;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", CurTime()); // set lock indicator
ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,0,"EA Order",magic,0,Red);
GlobalVariableDel("InTrade"); // clear lock indicator
}
}Distanza tra ordini buy stop
Ciao a tutti, sto cercando di implementare una distanza tra un ordine buy stop cancellato e il prossimo ordine buy stop.
Ho scritto questo codice che funziona a meno che l'ultimo ordine non sia qualcos'altro. Non sono sicuro di come selezionare un ordine buystop cancellato dalla cronologia. Se qualcuno potesse indicarmi la giusta direzione lo apprezzerei molto.
grazie
// Tempo di ritardo per il prossimo ordine "Buy Stop" cancellato.
//Time Delay for the next Buy Stop Order
if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))
{
total = OrdersHistoryTotal();
for(e = total - 1; e >= 0; e--)
{
OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol() != Symbol()) continue;
{
if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;
}
}
}
Ciao a tutti,
Penso che sia meglio:
if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))
{
total = OrdersHistoryTotal();
for(e = total - 1; e >= 0; e--)
{
OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol() != Symbol()) continue;
if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;
break;
}
}Penso che sia meglio:
Ciao Roger,
Sono molto nuovo nella codifica, perché uso il "break" lì? Si interrompe automaticamente quando la dichiarazione è finita?
Inoltre, qualche indizio su come selezionare un ordine cancellato dalla cronologia?
grazie
Ci mostri solo un frammento di codice e posso solo indovinare.
Suppongo che inizi a controllare la cronologia dopo che l'ultimo ordine è stato chiuso, quindi hai bisogno di sapere quando è stato chiuso. L'ordine più fresco chiuso è alla fine della storia, quindi non è necessario conoscere un altro e "rompere" il controllo.
Ci sono tonnellate di metodi per trovare l'ordine corretto nella storia, hai il tipo, il numero magico, i commenti ecc.
bisogno di un codificatore per un semplice EA
sistema redditizio: min 50 pips -200 pips di profitto per scambio
sistema di 1 ora
utilizzare solo 1 indicatore più ATR (20)
semplice EA con tp/sl/trailing stop
EA coder può aiutare gratuitamente per favore PM con la tua email