Come codificare? - pagina 154

 

Kikousi,

Potresti voler testare da solo le migliori coordinate. FerruFX e CJA hanno utilizzato le migliori soluzioni di avere posizioni angolari predefinite con input dell'utente per il posizionamento degli oggetti. Potresti anche guardare OBJPROP_CORNER

Inoltre, per favore cerca di non postare la stessa richiesta che hai fatto tu. Gli utenti vedono il tuo post e se qualcuno può aiutarti lo farà.

Grazie

Edit: Usando la proprietà dell 'angolo 0 è in alto a sinistra, 1 è in alto a destra, 2 in basso a sinistra, 3 in basso a destra. Il conteggio è 0.

 

Aiuto per il debugging del mio EA

Ciao, scusate se questo è il forum sbagliato per postare e per favore correggete se lo è.

Ho programmato il mio EA e ho alcuni problemi con il riempimento degli ordini e gli ordini stop loss. Qualcuno potrebbe aiutarmi? Posso condividere l'EA.

Grazie

 

codobro,

Grazie mille per la tua gentile risposta.

Non posterò più la stessa domanda d'ora in poi.

Apprezzo il tuo suggerimento.

A questo proposito, ho capito che la posizione in alto a sinistra è (0,0), allora qual è l'indicazione del basso a destra in quel momento?

Per esempio, posso usare (250,350) per l'indicazione in basso a destra quando la posizione in alto a sinistra è (0,0)?

Vi ringrazio in anticipo per la vostra gentile comprensione di quanto sopra.

 

Il grafico dell'indicatore non mostra tutti i dati

Ciao

Sono abbastanza bravo a programmare in C, ma sto iniziando con MQL4.

Ho appena fatto il mio primo indicatore e mostra un array parzialmente nella finestra separata.

Con parzialmente intendo dire che se si scorre a sinistra, allora per alcuni periodi di tempo non viene visualizzato nulla, e se scorro ulteriormente a sinistra, allora i dati i visualizzati per alcuni periodi e così via.

Se si scorre a destra, allora gli stessi periodi di tempo non vengono visualizzati.

Altrimenti non vedo alcuno schema.

Inoltre, se mi sposto da 1-min, dove vedo alcuni dati, a diciamo 5-min, allora non viene mostrato proprio nulla.

Perché non vengono mostrati tutti i dati? Cosa potrebbe essermi sfuggito?

 

Buon EA - BISOGNO DI AIUTO

Hai,

C'è qualcuno in questo grande forum, potrebbe modificare questo EA senza alcuno stop loss.

Grazie

//---- parametri di input ---------------------------------------------+

extern int INCREMENT=35;

extern double LOTS=0.1;

extern int LEVELS=3;

extern double MAX_LOTS=99;

extern int MAGIC=1803;

extern bool CONTINUE=true;

extern bool MONEY_MANAGEMENT=falso;

extern int RISK_RATIO=2;

//+------------------------------------------------------------------+

bool UseProfitTarget=falso;

bool UsePartialProfitTarget=false;

int Target_Increment = 50;

int First_Target = 20;

bool UseEntryTime=falso;

int EntryTime=0;

//+------------------------------------------------------------------+

bool Enter=true;

int nextTP;

int init()

{

//+------------------------------------------------------------------+

nextTP = First_Target;

//+------------------------------------------------------------------+

return(0);

}

//+------------------------------------------------------------------+

//| funzione di deinizializzazione esperta |

//+------------------------------------------------------------------+

int deinit()

{

return(0);

}

//+------------------------------------------------------------------+

//| funzione di avvio esperto |

//+------------------------------------------------------------------+

int start()

{

int ticket, cpt, profit, total=0, BuyGoalProfit, SellGoalProfit, PipsLot;

double ProfitTarget=INCREMENTO*2, BuyGoal=0, SellGoal=0, spread=(Ask-Bid)/Point, InitialPrice=0;

//----

if(INCREMENT<MarketInfo(Symbol(),MODE_STOPLEVEL)+spread) INCREMENT=1+MarketInfo(Symbol(),MODE_STOPLEVEL)+spread;

if(MONEY_MANAGEMENT) LOTS=NormalizeDouble(AccountBalance()*AccountLeverage()/1000000*RISK_RATIO,0)*MarketInfo(Symbol(),MODE_MINLOT);

if(LOTS<MarketInfo(Symbol(),MODE_MINLOT))

{

Comment("Non c'è abbastanza margine libero per iniziare");

return(0);

}

for(cpt=1;cpt<LEVELS;cpt++) PipsLot+=cpt*INCREMENT;

for(cpt=0;cpt<OrdiniTotali();cpt++)

{

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

if(OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol())

{

totale++;

if(!InitialPrice) InitialPrice=StrToDouble(OrderComment());

if(UsePartialProfitTarget && UseProfitTarget && OrderType()<2)

{

double val=getPipValue(OrderOpenPrice(),OrderType());

takeProfit(val,OrderTicket());

}

}

}

if(total<1 && Enter && (!UseEntryTime || (UseEntryTime && Hour()==EntryTime))

{

if(AccountFreeMargin()<(100*LOTS))

{

Print("Non c'è abbastanza margine libero per iniziare");

return(0);

}

// - Conto aperto - Inizio ciclo

InitialPrice=Ask;

SellGoal=InitialPrice-(LEVELS+1)*INCREMENTO*Punto;

BuyGoal=InitialPrice+(LEVELS+1)*INCREMENTO*Punto;

for(cpt=1;cpt<=LEVELLI;cpt++)

{

OrderSend(Symbol(),OP_BUYSTOP,LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

OrderSend(Symbol(),OP_SELLSTOP,LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

} // setup iniziale fatto - tutti i canali sono impostati

else // Abbiamo ordini aperti

{

BuyGoal=InitialPrice+INCREMENT*(LEVELS+1)*Point;

SellGoal=InitialPrice-INCREMENT*(LEVELS+1)*Point;

total=OrdersHistoryTotal();

for(cpt=0;cpt<totale;cpt++)

{

OrderSelect(cpt,SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && StrToDouble(OrderComment())==InitialPrice){EndSession();return(0);}

}

if(UseProfitTarget && CheckProfits(LOTS,OP_SELL,true,InitialPrice)>ProfitTarget) {EndSession();return(0);}

BuyGoalProfit=CheckProfits(LOTS,OP_BUY,false,InitialPrice);

SellGoalProfit=CheckProfits(LOTS,OP_SELL,false,InitialPrice);

if(BuyGoalProfit<ProfitTarget)

// - Incriminazioni Lotti Acquisto

{

for(cpt=LEVELLI;cpt>=1 && BuyGoalProfit<ProfitTarget;cpt--)

{

if(Ask<=(InitialPrice+(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))

{

ticket=OrderSend(Symbol(),OP_BUYSTOP,cpt*LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

if(ticket>0) BuyGoalProfit+=LOTS*(BuyGoal-InitialPrice-cpt*INCREMENT*Point)/Point;

}

}

if(SellGoalProfit<ProfitTarget)

// - Aumenta i lotti di vendita

{

for(cpt=LEVELS;cpt>=1 && SellGoalProfit<ProfitTarget;cpt--)

{

if(Bid>=(InitialPrice-(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))

{

ticket=OrderSend(Symbol(),OP_SELLSTOP,cpt*LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

if(ticket>0) SellGoalProfit+=LOTS*(InitialPrice-cpt*INCREMENT*Point-SellGoal-spread*Point)/Point;

}

}

}

//+------------------------------------------------------------------+

Comment("mGRID EXPERT ADVISOR ver 2.0\n",

"FX Acc Server:",AccountServer(),"\n",

"Data:",Mese(),"-",Giorno(),"-",Anno()," Ora del server:",Ora(),":",Minuti(),":",Secondi(),"\n",

"Dimensione minima del lotto: ",MarketInfo(Symbol(),MODE_MINLOT),"\n",

"Saldo del conto: $",Saldo del conto(),"\n",

"Simbolo: ", Symbol(),"\n",

"Prezzo: ",NormalizeDouble(Bid,4),"\n",

"Pip Spread: ",MarketInfo("EURUSD",MODE_SPREAD),"\n",

"Incremento=" + INCREMENTO,"\n",

"Lotti: ",LOTTI,"\n",

"Livelli: " + LIVELLI,"\n");

return(0);

}

//+------------------------------------------------------------------+

int CheckProfits(double LOTS, int Goal, bool Current, double InitialPrice)

{

int profit=0, cpt;

if(Current)//restituisce il profitto attuale

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

if(OrderType()==OP_BUY) profit+=(Bid-OrderOpenPrice())/Point*OrderLots()/LOTS;

se(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-Ask)/Point*OrderLots()/LOTS;

}

}

return(profit);

}

else

{

se(Obiettivo==OP_BUY)

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

if(OrderType()==OP_BUY) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELL) profit-=(OrderStopLoss()-OrderOpenPrice())/Point*OrderLots()/LOTS;

if(OrderType()==OP_BUYSTOP) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;

}

}

return(profit);

}

else

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

se(OrderType()==OP_BUY) profit-=(OrderOpenPrice()-OrderStopLoss())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELLSTOP) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;

}

}

return(profit);

}

}

}

bool EndSession()

{

int cpt, total=OrdersTotal();

for(cpt=0;cpt<totale;cpt++)

{

Sleep(3000);

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderType()>1) OrderDelete(OrderTicket());

else if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3);

else if(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3);

}

if(!CONTINUE) Enter=false;

return(true);

}

double getPipValue(double ord,int dir)

{

double val;

RefreshRates();

if(dir == 1) val=(NormalizeDouble(ord,Digits) - NormalizeDouble(Ask,Digits));

else val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits));

val = val/Point;

return(val);

}

//========== FUNZIONE takeProfit

void takeProfit(int current_pips, int ticket)

{

if(OrderSelect(ticket, SELECT_BY_TICKET))

{

if(current_pips >= nextTP && current_pips < (nextTP + Target_Increment))

{

if(OrderType()==1)

{

if(OrderClose(ticket, MAX_LOTS, Ask, 3))

nextTP+=Target_Increment;

altrimenti

Print("Errore nella chiusura dell'ordine: ",GetLastError());

}

else

{

if(OrderClose(ticket, MAX_LOTS, Bid, 3))

nextTP+=Target_Increment;

altrimenti

Print("Errore nella chiusura dell'ordine: ",GetLastError());

}

}

}

}

 
hkstar98:
Hai,

C'è qualcuno in questo grande forum, potrebbe modificare questo EA senza alcuno stop loss.

Grazie

//---- parametri di input ---------------------------------------------+

extern int INCREMENT=35;

extern double LOTS=0.1;

extern int LEVELS=3;

extern double MAX_LOTS=99;

extern int MAGIC=1803;

extern bool CONTINUE=true;

extern bool MONEY_MANAGEMENT=falso;

extern int RISK_RATIO=2;

//+------------------------------------------------------------------+

bool UseProfitTarget=falso;

bool UsePartialProfitTarget=false;

int Target_Increment = 50;

int First_Target = 20;

bool UseEntryTime=falso;

int EntryTime=0;

//+------------------------------------------------------------------+

bool Enter=true;

int nextTP;

int init()

{

//+------------------------------------------------------------------+

nextTP = First_Target;

//+------------------------------------------------------------------+

return(0);

}

//+------------------------------------------------------------------+

//| funzione di deinizializzazione esperta |

//+------------------------------------------------------------------+

int deinit()

{

return(0);

}

//+------------------------------------------------------------------+

//| funzione di avvio esperto |

//+------------------------------------------------------------------+

int start()

{

int ticket, cpt, profit, total=0, BuyGoalProfit, SellGoalProfit, PipsLot;

double ProfitTarget=INCREMENTO*2, BuyGoal=0, SellGoal=0, spread=(Ask-Bid)/Point, InitialPrice=0;

//----

if(INCREMENT<MarketInfo(Symbol(),MODE_STOPLEVEL)+spread) INCREMENT=1+MarketInfo(Symbol(),MODE_STOPLEVEL)+spread;

if(MONEY_MANAGEMENT) LOTS=NormalizeDouble(AccountBalance()*AccountLeverage()/1000000*RISK_RATIO,0)*MarketInfo(Symbol(),MODE_MINLOT);

if(LOTS<MarketInfo(Symbol(),MODE_MINLOT))

{

Comment("Non c'è abbastanza margine libero per iniziare");

return(0);

}

for(cpt=1;cpt<LEVELS;cpt++) PipsLot+=cpt*INCREMENT;

for(cpt=0;cpt<OrdiniTotali();cpt++)

{

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

if(OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol())

{

totale++;

if(!InitialPrice) InitialPrice=StrToDouble(OrderComment());

if(UsePartialProfitTarget && UseProfitTarget && OrderType()<2)

{

double val=getPipValue(OrderOpenPrice(),OrderType());

takeProfit(val,OrderTicket());

}

}

}

if(total<1 && Enter && (!UseEntryTime || (UseEntryTime && Hour()==EntryTime))

{

if(AccountFreeMargin()<(100*LOTS))

{

Print("Non c'è abbastanza margine libero per iniziare");

return(0);

}

// - Conto aperto - Inizio ciclo

InitialPrice=Ask;

SellGoal=InitialPrice-(LEVELS+1)*INCREMENTO*Punto;

BuyGoal=InitialPrice+(LEVELS+1)*INCREMENTO*Punto;

for(cpt=1;cpt<=LEVELLI;cpt++)

{

OrderSend(Symbol(),OP_BUYSTOP,LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

OrderSend(Symbol(),OP_SELLSTOP,LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

} // setup iniziale fatto - tutti i canali sono impostati

else // Abbiamo ordini aperti

{

BuyGoal=InitialPrice+INCREMENT*(LEVELS+1)*Point;

SellGoal=InitialPrice-INCREMENT*(LEVELS+1)*Point;

total=OrdersHistoryTotal();

for(cpt=0;cpt<totale;cpt++)

{

OrderSelect(cpt,SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && StrToDouble(OrderComment())==InitialPrice){EndSession();return(0);}

}

if(UseProfitTarget && CheckProfits(LOTS,OP_SELL,true,InitialPrice)>ProfitTarget) {EndSession();return(0);}

BuyGoalProfit=CheckProfits(LOTS,OP_BUY,false,InitialPrice);

SellGoalProfit=CheckProfits(LOTS,OP_SELL,false,InitialPrice);

if(BuyGoalProfit<ProfitTarget)

// - Incriminazioni Lotti Acquisto

{

for(cpt=LEVELLI;cpt>=1 && BuyGoalProfit<ProfitTarget;cpt--)

{

if(Ask<=(InitialPrice+(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))

{

ticket=OrderSend(Symbol(),OP_BUYSTOP,cpt*LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

if(ticket>0) BuyGoalProfit+=LOTS*(BuyGoal-InitialPrice-cpt*INCREMENT*Point)/Point;

}

}

if(SellGoalProfit<ProfitTarget)

// - Aumenta i lotti di vendita

{

for(cpt=LEVELS;cpt>=1 && SellGoalProfit<ProfitTarget;cpt--)

{

if(Bid>=(InitialPrice-(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))

{

ticket=OrderSend(Symbol(),OP_SELLSTOP,cpt*LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

if(ticket>0) SellGoalProfit+=LOTS*(InitialPrice-cpt*INCREMENT*Point-SellGoal-spread*Point)/Point;

}

}

}

//+------------------------------------------------------------------+

Comment("mGRID EXPERT ADVISOR ver 2.0\n",

"FX Acc Server:",AccountServer(),"\n",

"Data:",Mese(),"-",Giorno(),"-",Anno()," Ora del server:",Ora(),":",Minuti(),":",Secondi(),"\n",

"Dimensione minima del lotto: ",MarketInfo(Symbol(),MODE_MINLOT),"\n",

"Saldo del conto: $",Saldo del conto(),"\n",

"Simbolo: ", Symbol(),"\n",

"Prezzo: ",NormalizeDouble(Bid,4),"\n",

"Pip Spread: ",MarketInfo("EURUSD",MODE_SPREAD),"\n",

"Incremento=" + INCREMENTO,"\n",

"Lotti: ",LOTTI,"\n",

"Livelli: " + LIVELLI,"\n");

return(0);

}

//+------------------------------------------------------------------+

int CheckProfits(double LOTS, int Goal, bool Current, double InitialPrice)

{

int profit=0, cpt;

if(Current)//restituisce il profitto attuale

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

if(OrderType()==OP_BUY) profit+=(Bid-OrderOpenPrice())/Point*OrderLots()/LOTS;

se(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-Ask)/Point*OrderLots()/LOTS;

}

}

return(profit);

}

else

{

se(Obiettivo==OP_BUY)

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

if(OrderType()==OP_BUY) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELL) profit-=(OrderStopLoss()-OrderOpenPrice())/Point*OrderLots()/LOTS;

if(OrderType()==OP_BUYSTOP) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;

}

}

return(profit);

}

else

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

se(OrderType()==OP_BUY) profit-=(OrderOpenPrice()-OrderStopLoss())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELLSTOP) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;

}

}

return(profit);

}

}

}

bool EndSession()

{

int cpt, total=OrdersTotal();

for(cpt=0;cpt<totale;cpt++)

{

Sleep(3000);

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderType()>1) OrderDelete(OrderTicket());

else if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3);

else if(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3);

}

if(!CONTINUE) Enter=false;

return(true);

}

double getPipValue(double ord,int dir)

{

double val;

RefreshRates();

if(dir == 1) val=(NormalizeDouble(ord,Digits) - NormalizeDouble(Ask,Digits));

else val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits));

val = val/Point;

return(val);

}

//========== FUNZIONE takeProfit

void takeProfit(int current_pips, int ticket)

{

if(OrderSelect(ticket, SELECT_BY_TICKET))

{

if(current_pips >= nextTP && current_pips < (nextTP + Target_Increment))

{

if(OrderType()==1)

{

if(OrderClose(ticket, MAX_LOTS, Ask, 3))

nextTP+=Target_Increment;

altrimenti

Print("Errore nella chiusura dell'ordine: ",GetLastError());

}

else

{

if(OrderClose(ticket, MAX_LOTS, Bid, 3))

nextTP+=Target_Increment;

altrimenti

Print("Errore nella chiusura dell'ordine: ",GetLastError());

}

}

}

}

Ciao

qui si va

File:
new.mq4  8 kb
 

codersguru:
jdun,

Il codice di SL & TP è già scritto in questo EA:

Guarda queste linee:

if (Symbol()=="GBPUSD") {

PipsForEntry= 13;

TrailingStop = 40;

TakeProfit = 45;

InitialStopLoss=33;

} else if (Symbol()=="EURUSD") {

PipsForEntry= 13;

TrailingStop = 30;

TakeProfit = 45;

InitialStopLoss=23;

} else if (Symbol()=="USDCHF") {

PipsForEntry= 13;

TrailingStop = 30;

TakeProfit = 45;

InitialStopLoss=15;

} else {

PipsForEntry= 13;

TrailingStop = 30;

TakeProfit = 45;

InitialStopLoss=30;

} [/PHP]

If you want to make SL & TP external variables which you can set, you have to comment the above lines of code and uncomment these lines:

[PHP]/*

extern int PipsForEntry= 5;

extern double TrailingStop = 40;

extern double TakeProfit = 120;

extern double InitialStopLoss=50;

*/
 

numero massimo di compravendite per segnale

Qualcuno sa cosa dovrei usare per limitare il numero di operazioni per segnale (vorrei 1 operazione per segnale ma ne ottengo tipo 8 e l'ultima è sempre perdente)

 

Aiuto

Hai,

C'è ancora uno stop loss

pghiaci:
Ciao qui si va
 

EA con più tempi personalizzati?

Mi rendo conto che un EA può essere fatto con più time frame, MA è possibile scriverne uno con tempi personalizzati? Ho un EA con MTF ma ho bisogno di tempi personalizzati e non di tempi predefiniti, quindi non si "allineano" molto spesso.

saluti