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
Prezados Mrtools/Mladen
Cud u plz definiu o parâmetro de distância máxima como sendo a distância do preço de fechamento de uma barra em relação à ma lenta
o cenário atual não tem sentido imho
Obrigado
SachinSachin
Basta encontrar a linha que vai assim:
MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint)));
e substitua FastMACurrent por Close[1] (para o fechamento da primeira barra fechada) ou Close[0] (para o fechamento da barra ainda aberta)
ok, eu fiz isso agora testando...saúde
cud u plz também auxilia aqui : https://www.mql5.com/en/forum/general
Sachin
Basta encontrar a linha que vai assim:
MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint)));
e substituir a corrente FastMAC por Fechar[1] (para o fechamento da primeira barra fechada) ou Fechar[0] (para o fechamento da barra ainda aberta)Caro Mladen cud u por favor verifique por que o filtro de tempo não está funcionando . veja linhas verticais vermelhas no gráfico onde não é suposto que ele seja comercializado, mas sim comercializado. Em Ea i, eu estabeleço a troca somente em certas horas. Muito obrigado.
Sachin
Basta encontrar a linha que vai assim:
MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint)));
e substituir a corrente FastMAC por Fechar[1] (para o fechamento da primeira barra fechada) ou Fechar[0] (para o fechamento da barra ainda aberta)Olá, Mladen,
Não consegui compilar o código mql4 por causa dos seguintes erros:
string externa Pivot.Setting = "---------- Pivot Filter Setting";
bool externo Uso.Pivot.Filtro = falso;
==> '.' - ponto-e-vírgula esperadoMACrossEAV1.5.mq47728 if(Use.Pivot.Filter===verdadeiro)
==> 'Use' - identificador não declaradoMACrossEAV1.5.mq44587
Pivot - estrutura ou tipo de classe esperadaMACrossEAV1.5.mq445811
Filtro - estrutura ou tipo de classe esperadaMACrossEAV1.5.mq445817
O que eu fiz de errado?
Obrigado por sua ajuda.
Olá, Mladen,
Não consegui compilar o código mql4 por causa dos seguintes erros:
string externa Pivot.Setting = "---------- Pivot Filter Setting";
bool externo Uso.Pivot.Filtro = falso;
==> '.' - ponto e vírgula esperado MACrossEAV1.5.mq4 77 28 if(Use.Pivot.Filter===verdadeiro)
==> 'Use' - identificador não declarado MACrossEAV1.5.mq4 458 7
Pivot' - estrutura ou tipo de classe MACrossEAV1.5.mq4 458 11
Filtro' - estrutura ou tipo de classe MACrossEAV1.5.mq4 458 17
O que eu fiz de errado?
Obrigado por sua ajudaStephFX
Remover o "." do nome da variável
Você pode substituí-lo por "_", por exemplo, e então você terá :
string externa Pivot_Setting = "---------- Ajuste do Filtro Pivot";
bool externo Use_Pivot_Filter = falso;
e isto
if(Use_Pivot_Filter==verdadeiro)
e então todos irão compilar OK
Olá a todos,
Como estou experimentando uma estratégia de martingale, tentei fazer com que o "STOP AND REVERSE" só funcionasse quando a última troca fosse uma vitória.
{
for(int count=histotal-1;count>=0;count--)
{
if(OrderSelect(count,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()>0)
{
if(StopAndReverse===true && subTotalTrade()>0)
{
if((LastTrade==="BUY" && SellCondition===verdadeiro) ||| (LastTrade==="SELL" && BuyCondition===verdadeiro))
{
subCloseOrder();
if(subTotalTrade()>0) subCloseOrder();
if(subTotalTrade()>0) subCloseOrder();
if(IsTesting() && PrintControl===verdadeiro) Print("STOP AND REVERSE !");
}
}
}
}
}
}
}
Não parece estar funcionando, no entanto. Ela vai parar e reverter, mesmo que o último comércio tenha sido uma perda. Alguma sugestão?
Obrigado!
Olá a todos,
Como estou experimentando uma estratégia de martingale, tentei fazer com que o "STOP AND REVERSE" só funcionasse quando a última troca fosse uma vitória.
No entanto, não parece estar funcionando. Ela vai parar e reverter, mesmo que a última troca tenha sido uma perda. Alguma sugestão?
Obrigado!Você não está verificando o tempo do pedido. Você deve verificar também a hora de fechamento da ordem, e a ordem com a maior hora de fechamento é a que você quer verificar o lucro.
Você não está verificando a hora do pedido. Você deve verificar também a hora de fechamento do pedido, e o pedido com a maior hora de fechamento é aquele que você deseja verificar para obter lucro.
O problema é que eu uso um código muito semelhante para o sistema de martingale, que funciona perfeitamente:
//|---------martingale
int martingalefactor()
{
int histotal=OrdensHistóriaTotal();
se (histotal>0)
{
for(int cnt=histotal-1;cnt>=0;cnt--)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()<0)
{
lotsfactor= fator de lote*multiplicador;
retorno(fator de lote);
}
senão
{
lotsfactor=initiallotsfactor;
if(lotsfactor<=0)
{
lotsfactor=1;
}
retorno(fator de sorteio);
}
}
}
}
}
retorno(fator de sorteio);
}
Como funciona para o martingale, não deveria funcionar agora também?
O problema é que eu uso um código muito semelhante para o sistema de martingale, que funciona perfeitamente: Como funciona para o martingale, não deveria funcionar agora também?
Tente usar algo como isto :
{
double TempLastOrderProfit = 0;
datetime CloseTime = 0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
{
CloseTime = OrderCloseTime();
TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission();
}
}
return(TempLastOrderProfit);
}
Ele lhe devolverá o valor exato do lucro (ou perda) do último pedido
Tente usar algo como isto: Ele lhe devolverá o valor exato do lucro (ou perda) do último pedido
Obrigado por sua ajuda, Mladen. Eu mexi um pouco no código até conseguir compilá-lo sem erros, mas a EA ainda pára e reverte depois de uma perda. Este é o código exato que estou usando agora:
{
duplo TempLastOrderProfit = 0;
data/hora FecharTempo = 0;
for(int i=OrdensHistóriaTotal()-1;i>=0;i--)
{
se (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)
{
CloseTime = OrderCloseTime();
}
}
if(StopAndReverse===true && subTotalTrade()>0 && OrderProfit()>0)
{
if((LastTrade==="BUY" && SellCondition===verdadeiro) ||| (LastTrade==="SELL" && BuyCondition===verdadeiro))
{
subCloseOrder();
if(subTotalTrade()>0) subCloseOrder();
if(subTotalTrade()>0) subCloseOrder();
if(IsTesting() && PrintControl===verdadeiro) Print("STOP AND REVERSE !");
}
}
}
duplo GetLastPL() Me dá o seguinte erro: '(' - definição de função inesperada.