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
Ok, lo proverò quando torno a casa, ma allora perché funziona ancora con gli ordini Buy? Grazie
Potresti essere in un ordine di vendita, ma il prezzo soddisfa la condizione per il codice di cambiamento dello stop Buy, quindi viene cambiato, e non soddisfa più le condizioni per la sezione Sell, quindi non viene cambiato lì.
Grande essere
Grazie Big Be per il tuo aiuto ma mi sono appena reso conto che il mio vecchio codice funziona ma devo abilitare l'uso di uno StopLoss per gli ordini SELL per essere modificato.
Strano, non ho bisogno di abilitare un TakeProfit per MoveStopOnce per lavorare con un ordine BUY ma devo abilitare uno StopLoss per MoveStopOnce per modificare l'ordine SELL.
Oh, beh, dovrò guardare il codice un po' più a fondo per capirlo, a meno che tu non sappia perché.
EDIT: se si cambia in;
if(0 < OrderOpenPrice() - Point * MoveStopTo) {
[/code]
instead of;
[code]
if(OrderStopLoss() < OrderOpenPrice() - Point * MoveStopTo) {
Sembra funzionare bene.
Grazie
Bisogno di aiuto con il calcolatore di posizione
OK,
quindi sto costruendo un calcolatore di posizione di dimensionamento come funzione basata sulla "Formula Kelly"
(Win Rate-((1-Win Rate)/(Avg Win/Avg Loss)
Ho tutto il codice e i calcoli che funzionano con gli input manuali (extern) per le variabili richieste e ora sto cercando di far funzionare la funzione in modo dinamico chiamando certe informazioni sul conto (in particolare voglio calcolare il tasso di consistenza vincente (%), il numero medio di pip per trade vincente e il numero medio di pip per trade in perdita)
Potrei usare qualsiasi aiuto per far funzionare le tre funzioni (WinRate AvgWin & AvgLoss). Ho usato la variazione di input manuale per mesi e funziona alla grande. Ecco il codice completo per questa versione (automatica) fino a questo punto... nei test non sto ottenendo alcun output dinamico, tutto torna all'impostazione predefinita (50, 40, 20). L'uso dei frattali è intenzionale in modo da sfruttare la massima crescita del conto (o la minima perdita). come nota la maggior parte dei broker che offrono la piattaforma MT trader permettono il trading frattale sia per lotti mini che std. Questo si rivelerà pieno uso in futuro con la gestione del denaro che può togliere posizioni di lotto parziale (cioè: rimuovere il 25% di 1 Lotto). comunque ...
al fine di raccogliere le informazioni sul conto in tempo reale di cui ho bisogno sto cercando di ...
1. contare tutti i trade
2. contare le operazioni che sono redditizie
ecc. ecc.
Posso o non posso andare su questo modo giusto.
Grazie in anticipo per tutto l'aiuto...
SeaWolf
//+------------------------------------------------------------------+
//| KellyFormula.mq4 |
//+------------------------------------------------------------------+
#proprietà copyright "seawolf"
#proprietà link "seawolf"
//+------------------------------------------------------------------+
//| INGRESSO INFORMAZIONI ESTERNE |
//+------------------------------------------------------------------+
extern int MyAccount = 1001; //------>>>> ID account
extern int ExpertID = 500001; //------>>>> Numero magico per questo EA
extern double PipValue= 1.00; //------>>>> usare per tutti i calcoli
extern double LotCost= 50.0; //------>>>> usare per tutti i calcoli
extern double PercentMax= 24.0; //------>>>> max % conto con leva @ una volta
extern int TradesMax= 3; //------>>>> max operazioni simultanee (esempio: 24%/3 operazioni = 8% per operazione)
extern bool UseKelly= true; //------>>>> manuale per la modifica dell'override
extern double ManualLots= 1.0; //------>>>> # lotti se "UseKelly" è falso
extern double mWinRate= 50.00; //------>>>> consistenza della vincita in % (overide manuale)
extern int mAvgWin= 40; //------>>>> media # pip per operazione vincente (modifica manuale)
extern int mAvgLoss= 20; //------>>>> media # pip per operazione in perdita (modifica manuale)
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di avvio esperto |
//+------------------------------------------------------------------+
int start()
{
//----
PositionSize();
{
Print("Lots=",PositionSize()," WinRate=",WinRate()," AvgWin=",AvgWin()," AvgLoss=",AvgLoss());
}
Comment("L'ora corrente è ",TimeToStr(TimeCurrent(),TIME_MINUTES)," GMT ",TimeToStr(TimeCurrent(),TIME_DATE)," ... Win Rate= ",WinRate()," Avg Win= ",AvgWin()," Avg Loss= ",AvgLoss());
//----
return(0);
}
//----
//+------------------------------------------------------------------+
//| CALCOLA LA DIMENSIONE DELLA POSIZIONE PER TUTTE LE NUOVE TRANSAZIONI |
//+------------------------------------------------------------------+
//------------------------>>>>
doppio PositionSize()
{
//------------------------>>>> NON USARE LA FORMULA DI KELLY, USARE IL TASSO FISSO
if(UseKelly == true)
{
double KelyForm = WinRate()-((1-WinRate())/(AvgWin()/AvgLoss());
doppio PerTrade;
doppio Lotti;
se(KelyForm > PercentMax)
{
PerTrade = (PercentMax/10)/TradesMax;
}
altrimenti se(KelyForm < PercentMax)
{
PerTrade = (KelyForm/10)/TradesMax;
}
else if(KelyForm == PercentMax)
{
PerTrade = (KelyForm/10)/TradesMax;
}
Lotti = (PerTrade * AccountBalance()/LotCost);
return(MathRound(Lots)/10);
}
}
//+------------------------------------------------------------------+
//| RACCOGLIERE INFORMAZIONI SUL CONTO IN TEMPO REALE |
//+------------------------------------------------------------------+
//------------------------>>>>
doppio WinRate()
{
doppio Biglietto;
double CountWins = 0;
for(Ticket=0;Ticket<OrdiniTotali();Ticket++)
{
OrderSelect(Ticket,SELECT_BY_TICKET,MODE_HISTORY);
if(MyAccount==AccountNumber() && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)
{
//------>>>>
if(OrderType()==OP_BUY)
{
if(OrderClosePrice() >= OrderOpenPrice())
CountWins++;
}
else if(OrderType()==OP_SELL)
{
se(OrderClosePrice() <= OrderOpenPrice())
CountWins++;
}
}
}
if(CountWins > 0)
return(MathRound(CountWins/OrdersHistoryTotal())*10);
altrimenti
Print("WinRate in tempo reale non disponibile");
return(mWinRate);
}
//------>>>>
//------------------------>>>>
doppio AvgWin()
{
doppio Biglietto;
double CountTrades = 0;
doppio CountPips = 0;
for(Ticket=0;Ticket<OrdiniTotali();Ticket++)
{
OrderSelect(Ticket,SELECT_BY_TICKET,MODE_HISTORY);
if(MyAccount==AccountNumber() && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)
{
//------>>>>
if(OrderType()==OP_BUY && OrderClosePrice()>=OrderOpenPrice())
CountTrades++;
{
se(OrderProfit() >= 0)
CountPips++;
}
if(OrderType()==OP_SELL && OrderClosePrice()<=OrderOpenPrice())
CountTrades++;
{
se(OrderProfit() >= 0)
CountPips++;
}
}
}
if(CountPips > 0)
return(MathRound(CountPips/CountTrades)*10);
altrimenti
Print("Real Time AvgWin not Available");
return(mAvgWin);
}
//------>>>>
//------------------------>>>>
doppio AvgLoss()
{
doppio Ticket;
double CountTrades = 0;
doppio CountPips = 0;
for(Ticket=0;Ticket<OrdiniTotali();Ticket++)
{
OrderSelect(Ticket,SELECT_BY_TICKET,MODE_HISTORY);
if(MyAccount==AccountNumber() && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)
{
//------>>>>
if(OrderType()==OP_BUY && OrderClosePrice()<OrderOpenPrice())
CountTrades++;
{
if(OrderProfit() < 0)
CountPips++;
}
if(OrderType()==OP_SELL && OrderClosePrice()>OrderOpenPrice())
CountTrades++;
{
if(OrderProfit() < 0)
CountPips++;
}
}
}
if(CountPips > 0)
return(MathRound(CountPips/CountTrades)*10);
altrimenti
Print("Real Time AvgLoss not Available");
return(mAvgLoss);
}
//---------------------------------------------------------------------+
A: Matrixebiz
EDIT: if you change to;
if(0 < OrderOpenPrice() - Point * MoveStopTo) {
[/code]
instead of;
[code]
if(OrderStopLoss() < OrderOpenPrice() - Point * MoveStopTo) {
Sembra funzionare bene.
GrazieNon c'è di che.
Grande essere
Fxpro, chiedere
Ciao a tutti... voglio solo chiedere come configurare i lotti EA in FxPro.
sono confuso perché ha 6 cifre (1 cifra extra) ho fissato il S/L e T/P ma non posso cambiare il lotto ...
sempre 0.4 per trade... anche se lo cambio a 0.1 o 0.3
Ho usato 10 punti 3 EA...
Per favore aiutatemi... email me a hansen_hardrocker@yahoo.co.id
o può PM per favore ...
cheerz tutti ...
Lotto Ask_change (fxpro)
Fxpro, chiedere
Ciao a tutti... voglio solo chiedere come configurare i lotti EA in FxPro...
sono confuso perché ha 6 cifre (1 cifra extra) ho fissato il S/L e T/P ma non posso cambiare il lotto ...
sempre 0.4 per trade... anche se lo cambio a 0.1 o 0.3
Ho usato 10 punti 3 EA...
Per favore aiutatemi... email me a hansen_hardrocker@yahoo.co.id
o può PM per favore ...
cheerz tutti ...
Lo voglio anch'io. per favore mandami a omidchart@yahoo.com
Probabilmente perché hai abilitato il Money Management nell'EA.
Grazie
Probabilmente perché hai abilitato il Money Management nell'EA.
Thx fratello ..
Sono un principiante...
Puoi cambiare questo EA?
Ciao programmatori,
Ho questo EA che piazza ordini stop sopra e sotto il prezzo corrente. Quello di cui ho bisogno è un EA che piazzi ordini limite invece di ordini stop sopra e sotto il prezzo corrente. È possibile modificare questo EA per fare proprio questo mantenendo tutti i parametri uguali?
Grazie in anticipo,
Paul