Dias de negociação
1 resposta
jdowney
10 anos atrás #111962
Olá Suporte,
Estou tendo um problema com meu EA para negociar em determinados dias da semana, com a opção de ativar ou desativar o dia no EA.
No entanto, quando faço o backtest na plataforma MT4, o EA só negocia às segundas-feiras e não no restante da semana.
Defini as variáveis como Boolan e int e tentei as duas opções sem sucesso.
Veja a captura de tela anexada e a estratégia (TradeDays On OFF.sqw)
Alguma ideia? Estou deixando passar alguma coisa ou talvez seja a ordem em que as regras deveriam estar...
Cumprimentos a John.
//——————————————————————–
// No Trades Mon
IF (IsBarOpen is True) && (((MonTrade = 0)
E (DayOfWeek[0] = _CONSTANT_)))
ENTÃO
// Ação #1
Fechar todos os pedidos;
// Ação #2
Não fazer nada
FIM SE;
//——————————————————————–
// No Trades Tue
IF (IsBarOpen is True) && (((TueTrade = 0)
E (DayOfWeek[0] = _CONSTANT_)))
ENTÃO
// Ação #1
Fechar todos os pedidos;
// Ação #2
Não fazer nada
FIM SE;
//——————————————————————–
// No Trades Wed
IF (IsBarOpen is True) && (((WedTrade = 0)
E (DayOfWeek[0] = _CONSTANT_)))
ENTÃO
// Ação #1
Fechar todos os pedidos;
// Ação #2
Não fazer nada
FIM SE;
//——————————————————————–
// No Trades Thur
IF (IsBarOpen is True) && (((ThuTrade = 0)
E (DayOfWeek[0] = _CONSTANT_)))
ENTÃO
// Ação #1
Fechar todos os pedidos;
// Ação #2
Não fazer nada
FIM SE;
//——————————————————————–
// No Trades Fri
IF (IsBarOpen is True) && (((FriTrade = 0)
E (DayOfWeek[0] = _CONSTANT_)))
ENTÃO
// Ação #1
Fechar todos os pedidos;
// Ação #2
Não fazer nada
FIM SE;
//——————————————————————–
// No Trades Sat
IF (IsBarOpen is True) && (((SatTrade = 0)
E (DayOfWeek[0] = _CONSTANT_)))
ENTÃO
// Ação #1
Fechar todos os pedidos;
// Ação #2
Não fazer nada
FIM SE;
//——————————————————————–
// EnvUpper Band Short
IF (IsBarOpen is True) && (((Bid >= Envelopes( 8 , Exponential , 0 , Median price , 0.12 )[1])
E ((SpreadInPips < 7)
E ((DayOfWeek[0] = _CONSTANT_)
E ((MonTrade = 1)
Ou ((DayOfWeek[0] = _CONSTANT_)
E ((TueTrade = 1)
Ou ((DayOfWeek[0] = _CONSTANT_)
E ((WedTrade = 1)
Ou ((DayOfWeek[0] = _CONSTANT_)
E ((ThuTrade = 1)
Ou ((DayOfWeek[0] = _CONSTANT_)
E ((FriTrade = 1)
Ou ((DayOfWeek[0] = _CONSTANT_)
E (SatTrade = 1)))))))))))))))
ENTÃO
// Ação #1
Fechar pedido com o número mágico: 2000;
// Ação #2
Venda de 0,1 lote a mercado
Número mágico = 1000;
Stop Loss = 25 pips;
Profit Target = (Envelopes( 8 , Exponential , 0 , Median price , 0.03 )[1] ? 1 : 0) pips;
// Ação #3
Desenhe a seta para baixo;
FIM SE;
//——————————————————————–
// EnvLower Band Long
IF (IsBarOpen is True) && (((Ask <= Envelopes( 8 , Exponential , 0 , Median price , 0.12 )[1])
E ((SpreadInPips < 7)
E ((DayOfWeek[0] = _CONSTANT_)
E ((MonTrade = 1)
Ou ((DayOfWeek[0] = _CONSTANT_)
E ((TueTrade = 1)
Ou ((DayOfWeek[0] = _CONSTANT_)
E ((WedTrade = 1)
Ou ((DayOfWeek[0] = _CONSTANT_)
E ((ThuTrade = 1)
Ou ((DayOfWeek[0] = _CONSTANT_)
E ((FriTrade = 1)
Ou ((DayOfWeek[0] = _CONSTANT_)
E (SatTrade = 1)))))))))))))))
ENTÃO
// Ação #1
Fechar pedido com o número mágico: 1000;
// Ação #2
Comprar 0,1 lote no mercado
Número mágico = 2000;
Stop Loss = 25 pips;
Profit Target = (Envelopes( 8 , Exponential , 0 , Median price , 0.03 )[1] ? 1 : 0) pips;
// Ação #3
Desenhe a seta para cima;
FIM SE;
Marca Fric
10 anos atrás #123738
Olá,
Um problema que vejo é que as condições não são colocadas corretamente entre parênteses.
Você deve adicionar colchetes para agrupar adequadamente as condições "and" e "or", caso contrário, elas serão avaliadas uma a uma, o que terá resultados muito inesperados.
Você pode definir colchetes no painel IF, veja a captura de tela.
Marcar
EstratégiaQuant arquiteto
Visualizando 1 resposta (de um total de 1)