Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Obrigado uma tonelada Mladen .... Você é ótimo ...
Oi, pessoal,
qualquer ajuda com meu pedido na página 103, por favor? Tenho procurado informações online, mas não consegui obter o alerta para cada 5 bar para disparar (a partir do início da hora).
Agradecemos antecipadamente
Caro Mladen/Mr Tools Can u please u fixen esta ea para que ela não reabra o comércio uma vez que pare ou tp é atingido.
Ajuda de codificação para parar a perda
Oi, pessoal,
Eu tenho este EA que parece não poder mudar o Stop Loss nele.
Não importa o que eu mude, ela não mudará. Eu gostaria de mudar o Stop Loss para pelo menos 300. Alguma idéia?
Obrigado de antemão.
este é o código para isso:
// entrada do usuário genérico
Lotes duplos externos=1,0;
externamente int TakeProfit=44;
externo int StopLoss=90;
externo bool RSIMethodA=falso;
bool RSIMethodB=verdadeiro;
RSIValue externo int=50;
bool externo AbandonMethodA=verdadeiro;
bool externo AbandonMethodB=falso;
externo int Abandonar=101;
bool externo MoneyManagement=verdadeiro;
extern int Risk=2;
extern int Slippage=3;
extern bool UseProfitLock=verdadeiro;
externo int BreakEvenTrigger=25;
extern int BreakEven=3;
extern bool LiveTrading=false;
extern bool AccountIsMini=falso;
extern int maxTradesPerPair=1;
externo int MagicNumber=5432;
double lotMM;
bool BuySignal=falso;
bool SetBuy=falso;
bool SellSignal=falso;
bool SetSellSell=falso;
// Manuseio de barras
data/hora de barra=0;
int bartick=0;
int TradeBars=0;
//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int init()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização especializada |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()
{
//----
se (UseProfitLock) ProfitLockStop();
if (AbandonMethodA || AbandonMethodB)
{
RunAbandonCheck();
RunAbandonMethods();
}
se (!SetLotsMM()) retornar(0);
RunOrderTriggerCalculations();
RunPairSpesificSettings();
RunNewOrderManagement();
//----
retorno(0);
}
/////////////////////////////////////////////////
// SetLotsMM - Por Robert Cochran http://autoforex.biz
/////////////////////////////////////////////////
bool SetLotsMM()
{
MarginCutoff duplo;
if(!AccountIsMini) MarginCutoff = 1000;
if((!AccountIsMini) MarginCutoff = 100;
if(!AccountFreeMargin() < MarginCutoff) return(false);
if(MoneyManagement)
{
loteMM = MathCeil(AccountBalance() * Risco / 10000) / 10;
if(lotMM < 0,1) lotMM = Lotes;
if(loteMM > 1,0) loteMM = MathCeil(loteMM);
// Forçar limites de tamanho de lote
if(LiveTrading)
{
if( AccountIsMini) lotMM = lotMM * 10;
if(!AccountIsMini && lotMM < 1.0) lotMM = 1.0;
}
if(lotMM > 100) lotMM = 100;
}
senão
{
lotMM = Lots; // Mude o MoneyManagement para 0 se você quiser que o parâmetro Lots esteja em vigor
}
retorno(verdadeiro);
}
//+------------------------------------------------------------------+
/////////////////////////////////////////////////
// RunOrderTriggerCálculos
/////////////////////////////////////////////////
Bool RunOrderTriggerCálculos()
{
bool RSIPOS=falso;
bool RSINEG=falso;
// média móvel de 3 períodos em Bar[1]
double bullMA3=iMA(Symbol(),0,3,0,MODE_EMA,PRICE_CLOSE,1);
// média móvel de 7 períodos em Bar[1]
duplo bearMA7=iMA(Symbol(),0,7,0,MODE_EMA,PRICE_CLOSE,1);
// média móvel de 2 períodos em Bar[2]
duplo RSI=iRSI(Symbol(),0,2,PRICE_CLOSE,2);
duplo RSI2=iRSI(Symbol(),0,2,PRICE_CLOSE,1);
// Determinar em que polaridade RSI está
se (RSIMethodA)
{
if(RSI>RSIValue && RSI2<RSIValue)
{
RSIPOS=verdadeiro;
RSINEG=falso;
}
senão RSIPOS=falso;
if(RSIRSIValue)
{
RSIPOS=falso;
RSINEG=verdadeiro;
}
senão RSINEG=falso;
}
se (RSIMethodB)
{
if(RSI>RSIValue)
{
RSIPOS=verdadeiro;
RSINEG=falso;
}
if(RSI<RSIValue)
{
RSIPOS=falso;
RSINEG=verdadeiro;
}
}
if ((bullMA3 > (bearMA7+Point)) && RSINEG)
{
BuySignal=verdadeiro;
}
caso contrário, BuySignal=false;
se ((bullMA3 < (bearMA7-Point)) && RSIPOS)
{
SellSignal=verdadeiro;
}
caso contrário, SellSignal=false;
return(true);
}
/////////////////////////////////////////////////
// OpenOrdersBySymbolAndComment
/////////////////////////////////////////////////
int OpenOrdersForThisEA()
{
int ofts=0;
for(int x=0;x<OrdensTotal();x++)
{
OrderSelect(x, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
ofts+++;
}
}
retorno(ofts);
}
/////////////////////////////////////////////////
// PROFIT LOCK - Por Robert Cochran - http://autoforex.biz
/////////////////////////////////////////////////
bool ProfitLockStop()
{
if( OpenOrdersForThisEA() > 0 )
{
para ( int i = 0; i < OrderTotal(); i++){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
//--COMÉRCIO LONGO
if(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber()== MagicNumber)
{
if (Licitação >= OrderOpenPrice() + BreakEvenTrigger*Point &&
OrderOpenPrice() > OrderStopLoss())
{
OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + BreakEven * Point, OrderTakeProfit(), Green);
}
}
//... - COMÉRCIOS CURTOS
if(OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber()==MagicNumber)
{
se (Pergunte <= OrderOpenPrice() - BreakEvenTrigger*Point &&
OrderOpenPrice() < OrderStopLoss())
{
OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice() - BreakEven * Point, OrderTakeProfit(), Blue);
}
}
}
}
}
/////////////////////////////////////////////////
// VERIFICAÇÃO DE ABANDONO
/////////////////////////////////////////////////
Bool RunAbandonCheck()
{
if( OpenOrdersForThisEA() > 0 )
{
se (TradeBars == 0 && bartick == 0)
{
para (int i = 0; i < OrderTotal(); i++)
{
se (OrderSymbol() == Symbol())
{
TradeBars = MathFloor(CurTime() - OrderOpenTime())/60/Período();
bartime = Tempo[0];
bartick = TradeBars;
}
}
}
if(bartime!=Time[0])
{
bartime=Time[0];
bartick++;
}
}
retorno(true);
}
/////////////////////////////////////////////////
// RunAbandonMethods
/////////////////////////////////////////////////
Bool RunAbandonMethods()
{
if( OpenOrdersForThisEA() > 0 )
{
para (int i = 0; i < OrderTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (AbandonMethodA && bartick==Abandonar)//Forçar "HEDGE" após abandono
{
// COMÉRCIO A LONGO PRAZO
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Blue);
SetSell=true;
continuar;
}
// PEQUENAS NEGOCIAÇÕES
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Blue);
SetBuy=verdadeiro;
continuar;
}
}
se (AbandonMethodB && bartick==Abandon)//Indicadores decidem a direção após o abandono
{
// COMÉRCIO A LONGO PRAZO
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,White);
continuar;
}
// PEQUENAS NEGOCIAÇÕES
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,White);
continuar;
}
}
}
}
retorno(true);
}
/////////////////////////////////////////////////
// RunPairSpesificSettings
/////////////////////////////////////////////////
Bool RunPairSpesificSettings()
{
// estabelecer as otimizações dos símbolos
se (Symbol()=="GBPUSD")
{
TakeProfit=55; StopLoss=100; Abandon=69;
}
retorno(true);
}
/////////////////////////////////////////////////
// Gestão de novas encomendas
/////////////////////////////////////////////////
Bool RunNewOrderManagement()
{
duplo TP,SL;
if( OpenOrdersForThisEA() < maxTradesPerPair )
{
//ENTRY Ask(comprar, longo)
se (BuySignal || SetBuy)
{
SL = Perguntar - StopLoss*Point;
TP = Ask + TakeProfit*Point;
OrderSend(Symbol(),OP_BUY,lotMM,Ask,Slippage,SL,TP, "TS-ProfitLock - "+Symbol()+" - Long",MagicNumber,0,White);
bartick=0;
if (SetBuy) SetBuy=falso;
return(true);
}
//ENTRY Bid (venda, abreviado)
se (SellSignal ||| SetSell)
{
SL = Bid + StopLoss*Point;
TP = Bid - TakeProfit*Point;
OrderSend(Symbol(),OP_SELL,lotMM,Bid,Slippage,SL,TP, "TS-ProfitLock - "+Symbol()+" - Short",MagicNumber,0,Red);
bartick=0;
if (SetSell) SetSell=false;
return(true);
}
}
retorno(true);
}
Oi, pessoal,
Eu tenho este EA que parece não poder mudar o Stop Loss nele.
Não importa o que eu mude, ela não mudará. Eu gostaria de mudar o Stop Loss para pelo menos 300. Alguma idéia?
Obrigado de antemão.
este é o código para isso:
// entrada do usuário genérico
Lotes duplos externos=1,0;
externamente int TakeProfit=44;
externo int StopLoss=90;
externo bool RSIMethodA=falso;
bool RSIMethodB=verdadeiro;
RSIValue externo int=50;
bool externo AbandonMethodA=verdadeiro;
bool externo AbandonMethodB=falso;
externo int Abandonar=101;
bool externo MoneyManagement=verdadeiro;
extern int Risk=2;
extern int Slippage=3;
extern bool UseProfitLock=verdadeiro;
externo int BreakEvenTrigger=25;
extern int BreakEven=3;
extern bool LiveTrading=false;
extern bool AccountIsMini=falso;
extern int maxTradesPerPair=1;
externo int MagicNumber=5432;
double lotMM;
bool BuySignal=falso;
bool SetBuy=falso;
bool SellSignal=falso;
bool SetSellSell=falso;
// Manuseio de barras
data/hora de barra=0;
int bartick=0;
int TradeBars=0;
//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int init()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização especializada |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()
{
//----
se (UseProfitLock) ProfitLockStop();
if (AbandonMethodA || AbandonMethodB)
{
RunAbandonCheck();
RunAbandonMethods();
}
se (!SetLotsMM()) retornar(0);
RunOrderTriggerCalculations();
RunPairSpesificSettings();
RunNewOrderManagement();
//----
retorno(0);
}
/////////////////////////////////////////////////
// SetLotsMM - Por Robert Cochran Bem-vindo autoforex.biz - BlueHost.com
/////////////////////////////////////////////////
bool SetLotsMM()
{
MarginCutoff duplo;
if(!AccountIsMini) MarginCutoff = 1000;
if((!AccountIsMini) MarginCutoff = 100;
if(!AccountFreeMargin() < MarginCutoff) return(false);
if(MoneyManagement)
{
loteMM = MathCeil(AccountBalance() * Risco / 10000) / 10;
if(lotMM < 0,1) lotMM = Lotes;
if(loteMM > 1,0) loteMM = MathCeil(loteMM);
// Forçar limites de tamanho de lote
if(LiveTrading)
{
if( AccountIsMini) lotMM = lotMM * 10;
if(!AccountIsMini && lotMM < 1.0) lotMM = 1.0;
}
if(lotMM > 100) lotMM = 100;
}
senão
{
lotMM = Lots; // Mude o MoneyManagement para 0 se você quiser que o parâmetro Lots esteja em vigor
}
retorno(verdadeiro);
}
//+------------------------------------------------------------------+
/////////////////////////////////////////////////
// RunOrderTriggerCálculos
/////////////////////////////////////////////////
Bool RunOrderTriggerCálculos()
{
bool RSIPOS=falso;
bool RSINEG=falso;
// média móvel de 3 períodos em Bar[1]
double bullMA3=iMA(Symbol(),0,3,0,MODE_EMA,PRICE_CLOSE,1);
// média móvel de 7 períodos em Bar[1]
duplo bearMA7=iMA(Symbol(),0,7,0,MODE_EMA,PRICE_CLOSE,1);
// média móvel de 2 períodos em Bar[2]
duplo RSI=iRSI(Symbol(),0,2,PRICE_CLOSE,2);
duplo RSI2=iRSI(Symbol(),0,2,PRICE_CLOSE,1);
// Determinar em que polaridade RSI está
se (RSIMethodA)
{
if(RSI>RSIValue && RSI2<RSIValue)
{
RSIPOS=verdadeiro;
RSINEG=falso;
}
senão RSIPOS=falso;
if(RSIRSIValue)
{
RSIPOS=falso;
RSINEG=verdadeiro;
}
senão RSINEG=falso;
}
se (RSIMethodB)
{
if(RSI>RSIValue)
{
RSIPOS=verdadeiro;
RSINEG=falso;
}
if(RSI<RSIValue)
{
RSIPOS=falso;
RSINEG=verdadeiro;
}
}
if ((bullMA3 > (bearMA7+Point)) && RSINEG)
{
BuySignal=verdadeiro;
}
caso contrário, BuySignal=false;
se ((bullMA3 < (bearMA7-Point)) && RSIPOS)
{
SellSignal=verdadeiro;
}
caso contrário SellSignal=false;
return(true);
}
/////////////////////////////////////////////////
// OpenOrdersBySymbolAndComment
/////////////////////////////////////////////////
int OpenOrdersForThisEA()
{
int ofts=0;
for(int x=0;x<OrdensTotal();x++)
{
OrderSelect(x, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
ofts+++;
}
}
retorno(ofts);
}
/////////////////////////////////////////////////
// PROFIT LOCK - Por Robert Cochran - Bem-vindo autoforex.biz - BlueHost.com
/////////////////////////////////////////////////
bool ProfitLockStop()
{
if( OpenOrdersForThisEA() > 0 )
{
para ( int i = 0; i < OrderTotal(); i++){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
//--COMÉRCIO LONGO
if(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber()== MagicNumber)
{
if (Licitação >= OrderOpenPrice() + BreakEvenTrigger*Point &&
OrderOpenPrice() > OrderStopLoss())
{
OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + BreakEven * Point, OrderTakeProfit(), Green);
}
}
//... - COMÉRCIOS CURTOS
if(OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber()==MagicNumber)
{
se (Pergunte <= OrderOpenPrice() - BreakEvenTrigger*Point &&
OrderOpenPrice() < OrderStopLoss())
{
OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice() - BreakEven * Point, OrderTakeProfit(), Blue);
}
}
}
}
}
/////////////////////////////////////////////////
// VERIFICAÇÃO DE ABANDONO
/////////////////////////////////////////////////
Bool RunAbandonCheck()
{
if( OpenOrdersForThisEA() > 0 )
{
se (TradeBars == 0 && bartick == 0)
{
para (int i = 0; i < OrderTotal(); i++)
{
se (OrderSymbol() == Symbol())
{
TradeBars = MathFloor(CurTime() - OrderOpenTime())/60/Período();
bartime = Tempo[0];
bartick = TradeBars;
}
}
}
if(bartime!=Time[0])
{
bartime=Time[0];
bartick++;
}
}
retorno(verdadeiro);
}
/////////////////////////////////////////////////
// RunAbandonMethods
/////////////////////////////////////////////////
Bool RunAbandonMethods()
{
if( OpenOrdersForThisEA() > 0 )
{
para (int i = 0; i < OrderTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (AbandonMethodA && bartick==Abandonar)//Forçar "HEDGE" após abandono
{
// COMÉRCIO A LONGO PRAZO
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Blue);
SetSell=true;
continuar;
}
// PEQUENAS NEGOCIAÇÕES
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Blue);
SetBuy=verdadeiro;
continuar;
}
}
se (AbandonMethodB && bartick==Abandon)//Indicadores decidem a direção após o abandono
{
// COMÉRCIO A LONGO PRAZO
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,White);
continuar;
}
// PEQUENAS NEGOCIAÇÕES
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,White);
continuar;
}
}
}
}
retorno(true);
}
/////////////////////////////////////////////////
// RunPairSpesificSettings
/////////////////////////////////////////////////
Bool RunPairSpesificSettings()
{
// estabelecer as otimizações dos símbolos
se (Symbol()=="GBPUSD")
{
TakeProfit=55; StopLoss=100; Abandon=69;
}
retorno(true);
}
/////////////////////////////////////////////////
// Gestão de novas encomendas
/////////////////////////////////////////////////
Bool RunNewOrderManagement()
{
duplo TP,SL;
if( OpenOrdersForThisEA() < maxTradesPerPair )
{
//ENTRY Ask(comprar, longo)
se (BuySignal || SetBuy)
{
SL = Perguntar - StopLoss*Point;
TP = Ask + TakeProfit*Point;
OrderSend(Symbol(),OP_BUY,lotMM,Ask,Slippage,SL,TP, "TS-ProfitLock - "+Symbol()+" - Long",MagicNumber,0,White);
bartick=0;
if (SetBuy) SetBuy=falso;
return(true);
}
//ENTRY Bid (venda, abreviado)
se (SellSignal ||| SetSell)
{
SL = Bid + StopLoss*Point;
TP = Bid - TakeProfit*Point;
OrderSend(Symbol(),OP_SELL,lotMM,Bid,Slippage,SL,TP, "TS-ProfitLock - "+Symbol()+" - Short",MagicNumber,0,Red);
bartick=0;
if (SetSell) SetSell=false;
return(true);
}
}
retorno(true);
}Sempre definirá StopLoss para 100 se o símbolo for GBPUSD
Para outros, deve funcionar bem (exceto que você deve multiplicar o stop loss por 10 para corretores de 5 dígitos, já que a EA trabalha com pontos e não com pips)
Estou usando-o em USD/JPY no momento e paro de perder ainda em 100.
Onde eu encontraria o multiplicador de stop loss?
Estou usando-o em USD/JPY no momento e o stop loss ainda permanece em 100. Onde eu encontraria o multiplicador de stop loss?
Parar a perda e ter lucro são definidos nesta parte :
{
double TP,SL;
if( OpenOrdersForThisEA() < maxTradesPerPair )
{
//ENTRY Ask(buy, long)
if (BuySignal || SetBuy)
{
SL = Ask - StopLoss*Point;
TP = Ask + TakeProfit*Point;
OrderSend(Symbol(),OP_BUY,lotMM,Ask,Slippage,SL,TP ,"TS-ProfitLock - "+Symbol()+" - Long",MagicNumber,0,White);
bartick=0;
if (SetBuy) SetBuy=false;
return(true);
}
//ENTRY Bid (sell, short)
if (SellSignal || SetSell)
{
SL = Bid + StopLoss*Point;
TP = Bid - TakeProfit*Point;
OrderSend(Symbol(),OP_SELL,lotMM,Bid,Slippage,SL,T P,"TS-ProfitLock - "+Symbol()+" - Short",MagicNumber,0,Red);
bartick=0;
if (SetSell) SetSell=false;
return(true);
}
}
return(true);
}[/PHP]
As of stop loss that stays 100 : this part of code
[PHP]bool RunPairSpesificSettings()
{
// set up the symbol optimizations
if (Symbol()=="GBPUSD")
{
TakeProfit=55; StopLoss=100; Abandon=69;
}
return(true);
}é ativado somente se o símbolo for "GBPUSD" (como é visto pelo código), então somente nesse caso ele reverte. Verifique novamente seu código e procure por 100 e você encontrará o que está acontecendo com seu stop loss, pois no código que você anexou o stop loss é revertido somente no caso de GBPUSD
Mesmo que eu mude os pares de moedas para aqueles com os quais estou negociando, isso ainda não vai parar de perder. Este EA seria perfeito se o stop loss pudesse ser mudado.
Obrigado por tentar ajudar de qualquer forma.
Olá codificadores,
Alguém poderia ajudar a modificar este indicador de quebra de aperto para ter uma opção de banda de bollinger EMA, bem como uma opção de canal keltner EMA?
Obrigado :)
Olá codificadores,
Alguém poderia ajudar a modificar este indicador de quebra de aperto para ter uma opção de banda de bollinger EMA, bem como uma opção de canal keltner EMA?
Obrigado :)Olá Iwillsurvive, mudou o indicador para que você tenha uma opção de ma's tanto na banda de keltner como na banda de bollinger, por padrão está definido para EMA.