Como codificar? - página 154

 

Kikousi,

Você pode querer testar por si mesmo as melhores coordenadas. FerruFX e CJA têm usado as melhores soluções de ter posições de canto padrão com entradas de usuário para a colocação de objetos. Você também pode querer olhar para OBJPROP_CORNER

Além disso, por favor, tente não postar o mesmo pedido que você fez. Os usuários vêem seu posto, e se alguém puder ajudá-lo, eles o ajudarão.

Obrigado

Edição: Usando a propriedade de canto 0 é superior esquerdo, 1 é superior direito, 2 inferior esquerdo, 3 inferior direito. É a contagem 0.

 

Ajuda na depuração da minha EA

Olá. Desculpe se este é o fórum errado para postar e, por favor, conserte se for.

Programei minha própria EA e tenho alguns problemas com o preenchimento de pedidos e paro de pedidos de perda. Alguém poderia ajudar? Eu posso compartilhar o EA.

Obrigado

 

codobro,

Muito obrigado por sua amável resposta.

A partir de agora, não colocarei a mesma pergunta novamente.

Aprecio sua sugestão.

Neste contexto, entendo que a posição superior esquerda é (0,0) , then What é a indicação da posição inferior direita naquele momento?

Por exemplo, posso usar (250.350) para a indicação da posição inferior direita quando a posição superior esquerda for (0,0) ?

Agradeço antecipadamente por sua compreensão mais amável do acima exposto.

 

Gráfico indicador que não mostra todos os dados

Hi

Sou bastante bom na programação C, mas começando pela MQL4.

Acabei de fazer meu primeiro indicador e ele mostra uma matriz em parte na janela separada.

Em parte quero dizer, se você rolar para a esquerda, então por alguns períodos de tempo nada é exibido, e se eu rolar mais para a esquerda, então os dados que eu exibi por alguns períodos e assim por diante.

Se você rolar para a direita, então os mesmos períodos de tempo não são mostrados.

Caso contrário, não vejo nenhum padrão.

Além disso, se eu passar de 1 minuto, onde eu vejo alguns dados, para dizer 5 minutos, então nada é mostrado.

Por que todos os dados não são mostrados? O que eu poderia ter perdido?

 

Boa EA - AJUDA NECESSÁRIA

Hai,

Há alguém neste grande fórum, que poderia modificar esta EA sem nenhuma perda parada.

Obrigado

//---- parâmetros de entrada ---------------------------------------------+

INCREMENTO externo=35;

duplo LOTES externo=0,1;

externo int NÍVEIS=3;

duplo externo MAX_LOTS=99;

externo int MAGIC=1803;

extern bool CONTINUE=true;

extern bool MONEY_MANAGEMENT=false;

extern int RISK_RATIO=2;

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

bool UseProfitTarget=false;

bool UsePartialProfitTarget=falso;

int Target_Increment = 50;

int First_Target = 20;

bool UseEntryTime=false;

int EntryTime=0;

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

bool Enter=verdadeiro;

int nextTP;

int init()

{

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

nextTP = First_Target;

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

retorno(0);

}

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

//| função de desinicialização especializada |

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

int deinit()

{

retorno(0);

}

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

//| função de início especializado |

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

int start()

{

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

dobro LucroTarget=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))

{

Comentário ("Não há margem livre suficiente para começar");

retornar(0);

}

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

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

{

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

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

{

total++;

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))

{

Imprimir ("Não há margem livre suficiente para começar");

retornar(0);

}

// - Verificação aberta - Ciclo de início

InitialPrice=Ask;

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

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

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

{

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

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

}

} // instalação inicial feita - todos os canais são instalados

senão // Temos pedidos em aberto

{

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

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

total=OrdensHistóriaTotal();

for(cpt=0;cpt<total;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)

// - Compra de Lotes de Incrimentos

{

for(cpt=LEVELS;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*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)

// - Venda de Lotes de Incremento

{

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*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;

}

}

}

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

Comentário ("mGRID EXPERT ADVISOR ver 2.0\n"),

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

"Data: ",Mês(),"-",Dia(),"-",Ano()," Hora do servidor: ",Hora(),":",Minuto(),":",Segundos(),"\n",

"Tamanho mínimo do lote: ",MarketInfo(Symbol(),MODE_MINLOT),"\n",

"Saldo da conta: $",AccountBalance(),"\n",

"Símbolo": "Símbolo(),"\n",

"Preço: ",NormalizeDuplo(Bid,4),"\n",

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

"Increment=" + INCREMENT,"\n",

"Muitos: ",LOTES,"\n",

"Níveis": + NÍVEIS","\n");

retorno(0);

}

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

int CheckProfits(duplo LOTES, int Goal, bool Corrente, duplo Preço Inicial)

{

int lucro=0, cpt;

if(Corrente)//retorno lucro corrente

{

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;

if(OrderType()==OP_SELLL) profit+=(OrderOpenPrice()-Ask)/Point*OrderLots()/LOTS;

}

}

retorno(lucro);

}

senão

{

if(Goal===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_SELLL) profit-=(OrderStopLoss()-OrderOpenPrice())/Point*OrderOrderLots()/LOTS;

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

}

}

retorno(lucro);

}

senão

{

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

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

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

{

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

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

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

}

}

retorno(lucro);

}

}

}

Bool EndSession()

{

int cpt, total=OrdensTotal();

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

{

Sleep(3000);

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

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

caso contrário if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3);

caso contrário se(OrderSymbol()==Symbol() && OrderType()==OP_SELLL) OrderClose(OrderTicket(),OrderLots(),Ask,3);

}

if(!CONTINUE) Enter=false;

return(true);

}

duplo getPipValue(duplo ord,int dir)

{

val. duplo;

RefreshRates();

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

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

val = val/Ponto;

return(val);

}

//========== FUNCTION 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;

senão

Imprimir("Pedido de fechamento de erro : ",GetLastError());

}

senão

{

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

nextTP+=Target_Increment;

senão

Imprimir("Pedido de fechamento de erro : ",GetLastError());

}

}

}

}

 
hkstar98:
Hai,

Há alguém neste grande fórum, que poderia modificar esta EA sem nenhuma perda parada.

Obrigado

//---- parâmetros de entrada ---------------------------------------------+

INCREMENTO externo=35;

duplo LOTES externo=0,1;

externo int NÍVEIS=3;

duplo externo MAX_LOTS=99;

externo int MAGIC=1803;

extern bool CONTINUE=true;

extern bool MONEY_MANAGEMENT=false;

extern int RISK_RATIO=2;

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

bool UseProfitTarget=false;

bool UsePartialProfitTarget=falso;

int Target_Increment = 50;

int First_Target = 20;

bool UseEntryTime=false;

int EntryTime=0;

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

bool Enter=verdadeiro;

int nextTP;

int init()

{

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

nextTP = First_Target;

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

retorno(0);

}

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

//| função de desinicialização especializada |

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

int deinit()

{

retorno(0);

}

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

//| função de início especializado |

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

int start()

{

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

dobro LucroTarget=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))

{

Comentário ("Não há margem livre suficiente para começar");

retornar(0);

}

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

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

{

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

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

{

total++;

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))

{

Imprimir ("Não há margem livre suficiente para começar");

retornar(0);

}

// - Verificação aberta - Ciclo de início

InitialPrice=Ask;

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

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

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

{

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

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

}

} // instalação inicial feita - todos os canais são instalados

senão // Temos pedidos em aberto

{

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

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

total=OrdensHistóriaTotal();

for(cpt=0;cpt<total;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)

// - Compra de Lotes de Incrimentos

{

for(cpt=LEVELS;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*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)

// - Venda de Lotes de Incremento

{

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*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;

}

}

}

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

Comentário ("mGRID EXPERT ADVISOR ver 2.0\n"),

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

"Data: ",Mês(),"-",Dia(),"-",Ano()," Hora do servidor: ",Hora(),":",Minuto(),":",Segundos(),"\n",

"Tamanho mínimo do lote: ",MarketInfo(Symbol(),MODE_MINLOT),"\n",

"Saldo da conta: $",AccountBalance(),"\n",

"Símbolo": "Símbolo(),"\n",

"Preço: ",NormalizeDuplo(Bid,4),"\n",

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

"Increment=" + INCREMENT,"\n",

"Muitos: ",LOTES,"\n",

"Níveis": + NÍVEIS","\n");

retorno(0);

}

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

int CheckProfits(duplo LOTES, int Goal, bool Corrente, duplo Preço Inicial)

{

int lucro=0, cpt;

if(Corrente)//retorno lucro corrente

{

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;

if(OrderType()==OP_SELLL) profit+=(OrderOpenPrice()-Ask)/Point*OrderLots()/LOTS;

}

}

retorno(lucro);

}

senão

{

if(Goal===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_SELLL) profit-=(OrderStopLoss()-OrderOpenPrice())/Point*OrderOrderLots()/LOTS;

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

}

}

retorno(lucro);

}

senão

{

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

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

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

{

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

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

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

}

}

retorno(lucro);

}

}

}

Bool EndSession()

{

int cpt, total=OrdensTotal();

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

{

Sleep(3000);

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

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

caso contrário if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3);

caso contrário se(OrderSymbol()==Symbol() && OrderType()==OP_SELLL) OrderClose(OrderTicket(),OrderLots(),Ask,3);

}

if(!CONTINUE) Enter=false;

return(true);

}

duplo getPipValue(duplo ord,int dir)

{

val. duplo;

RefreshRates();

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

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

val = val/Ponto;

return(val);

}

//========== FUNCTION 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;

senão

Imprimir("Pedido de fechamento de erro : ",GetLastError());

}

senão

{

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

nextTP+=Target_Increment;

senão

Imprimir("Pedido de fechamento de erro : ",GetLastError());

}

}

}

}

Hi

aqui você vai

Arquivos anexados:
new.mq4  8 kb
 

codersguru:
jdun,

O código de SL & TP já está escrito neste EA:

Vejam estas linhas:

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;

*/
 

máximo comércio por sinais

Alguém sabe o que eu usaria para limitar o número de trocas por sinal (eu gostaria de 1 troca por sinal, mas estou ficando como 8 e o último sempre é um perdedor)

 

Ajuda

Hai,

Ainda há um stop loss

pghiaci:
Olá, aqui você vai
 

EA c/ múltiplos CUSTOM times ?

Eu percebo que uma EA pode ser feita c/ múltiplos períodos de tempo, MAS uma pode ser escrita c/ tempos personalizados ? Eu tenho um EA c/ horários personalizados, mas preciso de horários personalizados e não de horários padrão para que eles não "alinhem" com tanta freqüência.

Saudações

Razão: