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
Christoff
In questo modo la variabile Decimali dovrebbe essere OK
In ogni caso, controlla quale codice di errore stai ottenendo in caso di chiusura (parziale) dell'ordine non riuscitaMladen,
Grazie per il suggerimento.
Il problema è che non c'è nessun messaggio di errore. Quando non funziona, sembra che la funzione PartialTP non sia stata nemmeno chiamata. Altre volte - di solito ai primi ordini dopo il riavvio dell'EA - funziona bene.
Ho pensato che forse una delle variabili non torna al valore zero, o qualcosa del genere, ma non riesco ancora a trovare il bug.
Mladen,
Grazie per il suggerimento.
Il problema è che non c'è nessun messaggio di errore. Quando non funziona, sembra che la funzione PartialTP non sia stata nemmeno chiamata. Altre volte - di solito ai primi ordini dopo il riavvio dell'EA - funziona bene.
Ho pensato che forse una delle variabili non torna al valore zero, o qualcosa del genere, ma non riesco ancora a trovare il bug.chrisstoff
Mi dispiace, ma con un codice parziale non posso aiutare di più
Quello che stai descrivendo significa che c'è la necessità di eseguire il debug del codice - e questo può essere fatto solo eseguendolo mentre si utilizza una sorta di punti di controllo
chrisstoff
Mi dispiace, ma con un codice parziale non posso aiutare più
Quello che stai descrivendo significa che c'è la necessità di eseguire il debug del codice - e questo può essere fatto solo eseguendolo mentre si utilizzano alcuni punti di controlloGrazie, Mladen.
È rassicurante che tu non abbia visto problemi nel codice.
Penso che tutte le parti rilevanti del codice siano state postate, quindi devo trovare il bug altrove.
garretto87
Si prega di leggere il post sopra il tuo per una soluzione di questo problema
Il codice completo per questo è il seguente:
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0);
stop=(Ask-stopsize*Point);
prof=(Ask+profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
Malden,
Se voglio aprire i lotti a una percentuale del saldo del mio conto, come codificare?
Esempio:
Il saldo del mio conto è di 500$,
voglio aprire un lotto con il 5%, poi conta automaticamente e apre i lotti da $0.25, TP=10 SL=20.
Come codificarlo?
Grazie.
Malden,
Se voglio aprire i lotti a una percentuale del saldo del mio conto, come codificarlo?
Esempio:
Il saldo del mio conto è di $500,
voglio aprire un lotto con il 5%, poi conta automaticamente e apre i lotti da $0.25, TP=10 SL=20.
Come codificarlo?
Grazie.Puoi usare una funzione come questa per questo:
{
RefreshRates();
double pPoint = MarketInfo(Symbol(),MODE_POINT);
double step = MarketInfo(Symbol(),MODE_LOTSTEP);
double minLot = MarketInfo(Symbol()l,MODE_MINLOT);
double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double lots = minLot;
if (risk>0 && stopLoss>0)
{
lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(s_symbol,MODE_TICKVALUE)/pPoint);
}
}
return(MathMax(MathMin(lots,maxLot),minLot));
}
PS: stopLoss deve essere già passato alla funzione in pip/punti (non in valori interi)
Puoi usare una funzione come questa per questo:
{
RefreshRates();
double pPoint = MarketInfo(Symbol(),MODE_POINT);
double step = MarketInfo(Symbol(),MODE_LOTSTEP);
double minLot = MarketInfo(Symbol()l,MODE_MINLOT);
double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double lots = minLot;
if (risk>0 && stopLoss>0)
{
lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(s_symbol,MODE_TICKVALUE)/pPoint);
}
}
return(MathMax(MathMin(lots,maxLot),minLot));
}
Grazie, Mladen.
Ma non sono riuscito a comporre il codice per comprare il codice dell'ordine.
Appaiono molti errori e avvisi.
Come comporre il codice?
Grazie.
extern double profsize = 10;
int err;
int ticket;
double stop;
double prof;
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask-stopsize*Point);
prof=(Ask+profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
}Grazie, Mladen.
Ma non sono riuscito a comporre il codice per comprare il codice dell'ordine.
Appaiono molti errori e avvertimenti.
Come comporre il codice?
Grazie.
extern double profsize = 10;
int err;
int ticket;
double stop;
double prof;
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask-stopsize*Point);
prof=(Ask+profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
}Prova così (l'ho testato ora e funziona):
extern double profsize = 10;
int err;
int ticket;
double stop;
double prof;
int init() { return(0); }
int deinit() { return(0); }
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask-stopsize*Point*MathPow(10,Digits%2));
prof=(Ask+profsize*Point*MathPow(10,Digits%2));
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
}caro mladen e mr. tools pls,
è possibile creare un ea che dia un segnale basato su certe condizioni come i segnali di 3 o 4 indicatori che soddisfano condizioni predefinite.
per esempio
voglio che l'ea segnali un buy hwen:
ema 8 croce ema 21
qqe sopra 0
non lag ma è verde
e la candela è sopra la nuvola ichimoku
l'EA non dovrebbe aprire operazioni ma solo dare il segnale quando le condizioni indicate sono soddisfatte
Grazie, Mladen.
L'ho provato.
ma apre ancora i lotti con $0.1
Voglioaprire lotti a una percentuale del saldo delmio conto.
EX: il saldo del conto ha $500.
aprire un lotto con il 5%, poi conta automaticamente e apre i lotti da $0.25, TP=10 SL=20.
LotSizeSlot1 = AccountBalance() * (RiskSlot1 / 100)
Dimensione lotto1 = $500*(5%/100)
Dimensione lotto1 = $ 0.25
Poi apre automaticamente lotti da 0,25$ e TP=10 SL=20.
Come crearlo?
Grazie.
Grazie, Mladen.
Ho provato.
ma continua ad aprire i lotti con $0.1
Voglio aprire ilotti ad una percentuale del mio saldo del conto.
EX: il saldo del conto ha $500.
aprire un lotto con il 5%, poi conta automaticamente e apre i lotti da $0.25, TP=10 SL=20.
LotSizeSlot1 = AccountBalance() * (RiskSlot1 / 100)
Dimensione lotto1 = $500*(5%/100)
Dimensione lotto1 = $ 0.25
Poi apre automaticamente lotti da 0,25$ e TP=10 SL=20.
Come crearlo?
Grazie.Come in quello allegato