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 ragazzi, ho cercato per gli ultimi tre giorni di ottenere questo expert advisor per eseguire operazioni lunghe in mt4 senza successo. esegue solo operazioni corte anche se il signal_buy è lì. per favore qualcuno potrebbe dare un'occhiata a questo codice e risolverlo per me o dirmi cosa fare. sono nuovo nella programmazione e l'ho costruito da un costruttore di strategie online. grazie in anticipo! il codice è allegato.
I am not sure about the -3 shift parameter : it shift the curve to the left, so the current bar is undefinited. Try to replace all -3 by 0 to see if the buy orders are triggered.
I would replace
double Var2 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double Var3 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);
double Var4 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current + 0);
double Buy1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double Buy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);
double Sell1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double Sell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current + 0);
double CloseBuy1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double CloseBuy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);
double CloseSell1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double CloseSell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);by
[PHP]double Buy1_1 = iMA(NULL, 0, 3, 0, MODE_SMA, PRICE_CLOSE, Current);
double Buy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);
double Sell1_1 = Buy1_1;
double Sell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current);
double CloseBuy1_1 = Buy1_1;
double CloseBuy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);
double CloseSell1_1 = Buy1_1;
double CloseSell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);Rem :
- Var1,2,3,4 non sono utilizzati.
- Sia CloseBuy1_2 che CloseSell1_2 sono uguali: uno è probabilmente sbagliato (MODE_LOWER)
Bisogno di aiuto con il codice
Michel, grazie mille per il tuo aiuto, l'ho risolto perfettamente! Voi ragazzi siete i migliori, posso finalmente riposare un po'. Vi farò sapere come sono andati i miei test.
A proposito, stai dicendo che -3 non sarà mai in grado di lavorare in questo expert advisor? Grazie ancora.
... a proposito, stai dicendo che -3 non potrà mai funzionare in questo expert advisor? grazie ancora.
A dire il vero, non ho mai capito l'uso di questo spostamento: se volete conoscere il valore di un indicatore 3 barre prima della barra attuale, basta usare 3 come spostamento, ma l'ultimo; il primo sposta solo il disegno della curva, e se usate un valore negativo, è come se il passato conoscesse il futuro...
Comunque sarei felice che qualcuno mi spiegasse il suo uso!
Ma per rispondere alla tua domanda, cerca di conoscere la strategia esatta che vuoi seguire, da dove viene quel -3 ?
ciao
su questo esperto vorrei modificare tutti gli sl agli ultimi ordini sl come tp ma non ci sono riuscito
per favore aiutatemi
Cosa ho fatto?
Ho bisogno di aiuto per codificare in MT4
Ho del codice qui sotto:
StopLoss=EMAtrend-iClose(NULL,0,1);
TakeProfit=StopLoss
Se(EMAshort>EMAlong && EMAshort_prev<EMAlong_prev)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Ask+StopLoss*Point,Bid+TakeProfit*Point, "Buy at close price",10000,0,Green);
}
Se(EMAshortEMAlong_prev)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,0,StopLoss,Bid+TakeProfit*Point, "Sell at close price",11000,0,Red);
}
L'idea era:
1. Aprire l'ordine al prezzo di chiusura quando i criteri sono soddisfatti;
2. Voglio fare in modo che l'EMAtrend sia il livello di stoploss;
3. La distanza tra l'EMAtrend e la barra del prezzo di chiusura sarà la distanza per il takeprofit dal prezzo aperto
Provo il codice di cui sopra ma non succede niente e c'è un errore 130.
Per favore aiutatemi.
Bisogno di aiuto con il codice
Ciao a tutti
Sto cercando di far compilare un ea, ma si presenta con il seguente errore:
Now the part of the ea causing this is right at the start of the code :
If I block this out it comes up with errors for the following bit of code :
[CODE] if(TotalTradesThisSymbol(TradeSymbol)==0) { int BS=0,SS=0,BL=0,SL=0; }
if(TotalTradesThisSymbol(TradeSymbol)>0) {
for(cnt=0;cnt<total;cnt++) {
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()== Symbol) {
if(OrderMagicNumber()==11) { BS=OrderTicket(); }
if(OrderMagicNumber()==22) { SS=OrderTicket(); }
if(OrderMagicNumber()==33) { BL=OrderTicket(); }
if(OrderMagicNumber()==44) { SL=OrderTicket(); }
}//end if(OrderSymbol
}//end for
}//end if */Quello che voglio sapere è se c'è un modo semplice per risolvere questo problema.
Non sono bravo a codificare, solo a copiare e incollare.
Grazie in anticipo
Basza
Ciao a tutti
Sto cercando di far compilare un ea, ma si presenta con il seguente errore:
Now the part of the ea causing this is right at the start of the code :
If I block this out it comes up with errors for the following bit of code :
[CODE] if(TotalTradesThisSymbol(TradeSymbol)==0) { int BS=0,SS=0,BL=0,SL=0; }
if(TotalTradesThisSymbol(TradeSymbol)>0) {
for(cnt=0;cnt<total;cnt++) {
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()== Symbol) {
if(OrderMagicNumber()==11) { BS=OrderTicket(); }
if(OrderMagicNumber()==22) { SS=OrderTicket(); }
if(OrderMagicNumber()==33) { BL=OrderTicket(); }
if(OrderMagicNumber()==44) { SL=OrderTicket(); }
}//end if(OrderSymbol
}//end for
}//end if */Quello che voglio sapere è se c'è un modo semplice per risolvere questo problema.
Non sono bravo a codificare, solo a copiare e incollare.
Grazie in anticipo
BaszaPuoi definire TradeSymbol come stringa nello scoop globale, ma lì non puoi valutare la funzione Symbol(). Quindi sostituisci tutto "TradeSymbol" con "Symbol()", o assegna il valore nella funzione init() o start() come questo:
aiuto nella programmazione
Ciao, stavo cercando di programmare un ea, e ho seguito il tuo corso (molto interessante!)
So abbastanza bene come programmare in java e un po' di c++
Stavo cercando di programmare un ea con gli indicatori di tendenza del cervello, l'idea di fondo è
quando brainTrend2stop e braintrend1stop DOT sono presenti compro (e viceversa)
ma se chiamo la funzione icustom in questo modo
BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1) ;
ottengo solo il valore dell'indicatore nella barra attuale
c'è un modo per renderlo booleano? Vorrei scrivere una funzione come
comprare=vero
BuyCondition = (IndicatorName1=true && IndicatorName2=true);
qualcuno può aiutarmi, per favore, per favore?
Controllare se un ordine di entrata viene eseguito...
Ho un EA che apre e gestisce la posizione, ma a volte dà all'indicatore lo stesso segnale multiplo e l'EA apre ogni volta che questo segnale esce una nuova posizione - ma non voglio una seconda o terza posizione e così via, voglio solo la prima - è possibile che l'EA controlli la posizione aperta in base al numero magico e alla coppia per evitare tali entrate multiple?
Ciao, stavo cercando di programmare un ea, e ho seguito il tuo corso (molto interessante!)
So abbastanza bene come programmare in java e un po' di c++
Stavo cercando di programmare un ea con indicatori di tendenza del cervello l'idea di fondo è
quando brainTrend2stop e braintrend1stop DOT sono presenti compro (e viceversa)
ma se chiamo la funzione icustom in questo modo
BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1) ;
ottengo solo il valore dell'indicatore nella barra attuale
c'è un modo per renderlo booleano? Vorrei scrivere una funzione come
comprare=vero
BuyCondition = (IndicatorName1=true && IndicatorName2=true);
qualcuno può aiutarmi, per favore, per favore, per favore?