Resposta

THEN para usá-la como uma condição IF na segunda regra

12 respostas

Pago

Cliente, bbp_participant, comunidade, 83 respostas.

Perfil da visita

11 anos atrás #111005

Olá,

 

alguém sabe Como processar o resultado de uma regra #1 em uma segunda regra?

 

Por exemplo:

Na primeira regra, eu uso é a condição MACD > 0 se o resultado for verdadeiro, quero usar esse sinal na segunda regra.

 

Tento fazer isso com THEN Assign Variable, mas essa variável permanece mesmo que as condições IF não sejam mais atendidas.

 

 

Cezar

0

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

11 anos atrás #121260

Czar,

Você está correto, a regra atribuirá a variável e não a tocará novamente até que as condições sejam atendidas.

 

Portanto, o que você precisa fazer é ter duas regras: A primeira regra atribui a variável quando MACD >0 e a segunda regra atribui a variável quando MACD<0. Assim, sua variável sempre será um reflexo de onde está o MACD.

 

-STearno

0

Pago

Cliente, bbp_participant, comunidade, 83 respostas.

Perfil da visita

11 anos atrás #121262

Oi Stearno,

 

Eu estava com medo que esse é o único caminho. O A condição acima foi apenas um exemplo simplificado; a condição é bastante complicada e A condição para o reverso é muito complicada e achei que, de alguma forma, ela poderia ser resolvida de forma diferente.

Eu tenho Outra ideia. Eu apenas tentaria exportar a condição como um indicador e, em seguida, importá-la para o assistente a fim de usar o sinal.

 

Cezar

0

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

11 anos atrás #121266

Parece bom. Boa sorte!

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

11 anos atrás #121283

Olá,

Alguém sabe como processar o resultado de uma regra #1 em uma segunda regra?

Por exemplo:

Na primeira regra, uso a condição MACD > 0; se o resultado for verdadeiro, quero usar esse sinal na segunda regra.

Tento fazer isso com THEN Assign Variable, mas essa variável permanece mesmo que as condições IF não sejam mais atendidas.

Olá Cezar,

O que você pode fazer é processar o resultado na segunda regra e, em seguida, definir a variável como falsa novamente (por meio da função Assign variable).

Marcar

Marcar
EstratégiaQuant arquiteto

0

Pago

Cliente, bbp_participant, comunidade, 83 respostas.

Perfil da visita

11 anos atrás #121288

Olá Mark,

 

I não entendo muito bem. Você pode me dar um exemplo concreto dessa função?

 

Cezar

 

 

 

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

11 anos atrás #121292

Eu quis dizer algo assim:

 

Regra 1:

SE a posição do mercado estiver plana e MACD > 0

ENTÃO

Atribuir a variável ThereIsSignal = 1

 

Regra 2:

IF ThereIsSignal = 1

ENTÃO

Entrar no mercado
Atribuir a variável ThereIsSignal = 0

 

 

Dessa forma, a variável que foi definida pela primeira regra não será definida quando você entrar na negociação; esse era o seu problema, pelo que entendi.

 

Marcar

Marcar
EstratégiaQuant arquiteto

0

Pago

Cliente, bbp_participant, comunidade, 83 respostas.

Perfil da visita

11 anos atrás #121303

ObrigadoEssa é a solução!

 

Cezar

0

518pip

Assinante, bbp_participante, comunidade, 8 respostas.

Perfil da visita

11 anos atrás #121812

Eu quis dizer algo assim:

 

Regra 1:

SE a posição do mercado estiver plana e MACD > 0

ENTÃO

Atribuir a variável ThereIsSignal = 1

 

Regra 2:

IF ThereIsSignal = 1

ENTÃO

Entrar no mercado
Atribuir a variável ThereIsSignal = 0

 

 

Dessa forma, a variável que foi definida pela primeira regra não será definida quando você entrar na negociação; esse era o seu problema, pelo que entendi.

 

Marcar

Olá, estou lidando com um problema semelhante, por favor, me ajude. Qualquer um.

 

entrada múltipla se o preço estiver acima de 100 ema.

 

Primeira entrada se a 10 ema cruzar acima da 20 ema, então entre no mercado com a meta.

 

Segunda entrada: se a 10 ema cruzar acima da 20 ema novamente e o preço ainda estiver acima da 100 ema, entre no mercado. (às vezes, a primeira pode não abrir mais se a meta for atingida)

 

manter a entrada no mercado enquanto o preço estiver acima da 100 ema e sempre que a 10 ema e a 20 ema cruzarem acima de forma independente.

 

Tentei atribuir uma variável, mas minha EA atual mantém aberta a 1ª e a 2ª entrada ao mesmo tempo quando a 1ª entrada acontece e pula o restante das entradas válidas.

 

Obrigado,

0

Pago

Cliente, bbp_participant, comunidade, 83 respostas.

Perfil da visita

11 anos atrás #121818

Olá, estou lidando com um problema semelhante, por favor, me ajude. Qualquer um.

 

entrada múltipla se o preço estiver acima de 100 ema.

 

Primeira entrada se a 10 ema cruzar acima da 20 ema, então entre no mercado com a meta.

 

Segunda entrada: se a 10 ema cruzar acima da 20 ema novamente e o preço ainda estiver acima da 100 ema, entre no mercado. (às vezes, a primeira pode não abrir mais se a meta for atingida)

 

manter a entrada no mercado enquanto o preço estiver acima da 100 ema e sempre que a 10 ema e a 20 ema cruzarem acima de forma independente.

 

Tentei atribuir uma variável, mas minha EA atual mantém aberta a 1ª e a 2ª entrada ao mesmo tempo quando a 1ª entrada acontece e pula o restante das entradas válidas.

 

Obrigado,

 

 

Olá 518pip,

 

Acho que você não precisa atribuir uma variável.

 

Regra 1: A primeira entrada -> IsBarOpen é verdadeira && Bid > EMA 100 && EMA 10 cruza acima da EMA 20

Regra 2 A segunda entrada -> IsBarOpen is True && (Open P/L [Magic_first_entry] 0 or Closed P/L [Magic_first_entry] 0) && Bid > EMA 100 && EMA 10 cross above EMA 20   

 

Para fechar, você pode usar uma terceira regra com as condições de fechamento.

 

 

Espero que sim ajudá-lo. Caso contrário, você pode anexar a estratégia à postagem para que possamos ajudá-lo mais especificamente.

 

 

 

Cezar

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

11 anos atrás #121822

Olá, estou lidando com um problema semelhante, por favor, me ajude. Qualquer um.

 

entrada múltipla se o preço estiver acima de 100 ema.

 

Primeira entrada se a 10 ema cruzar acima da 20 ema, então entre no mercado com a meta.

 

Segunda entrada: se a 10 ema cruzar acima da 20 ema novamente e o preço ainda estiver acima da 100 ema, entre no mercado. (às vezes, a primeira pode não abrir mais se a meta for atingida)

 

manter a entrada no mercado enquanto o preço estiver acima da 100 ema e sempre que a 10 ema e a 20 ema cruzarem acima de forma independente.

 

Tentei atribuir uma variável, mas minha EA atual mantém aberta a 1ª e a 2ª entrada ao mesmo tempo quando a 1ª entrada acontece e pula o restante das entradas válidas.

 

Obrigado,

 

Você pode fazer assim (mostrarei apenas o lado comprido):

 

——————–

Regra 1:

——————–

SE

OrderPosition(1000) não é Flat // verificamos se o primeiro pedido já foi aberto

and Bid > EMA(100) // certifique-se de que o preço esteja acima da EMA(100)

e a EMA(10) cruza acima da EMA(20)

ENTÃO

Entrar no mercado com o número mágico (2000)

 

——————–

Regra 2:

——————–

SE

OrderPosition(1000) is Flat // verificamos se o pedido ainda não foi aberto

and Bid > EMA(100) // certifique-se de que o preço esteja acima da EMA(100)

e a EMA(10) cruza acima da EMA(20)

 

ENTÃO

Entre no mercado com o número mágico (1000)

 

 

 

Isso deve funcionar. A segunda regra cuida de receber qualquer sinal quando a EMA(10) cruza a EMA(20) e a Regra 1 cuida do caso especial em que a primeira ordem já está aberta.

As regras devem estar nesta ordem.
Talvez você tenha que adicionar também Is Bar Open = true às duas regras para garantir que as negociações sejam abertas somente na abertura da barra.

Marcar
EstratégiaQuant arquiteto

0

boomza100

Assinante, bbp_participante, comunidade, 7 respostas.

Perfil da visita

11 anos atrás #121844

Olá a todos,

 

Tenho uma pergunta semelhante, de acordo com o assunto deste tópico.

 

Continuo recebendo novas posições abertas, a cada novo tick.

 

O que eu quero fazer é abrir uma posição apenas uma vez, se minhas condições forem atendidas.

 

Se já houver uma posição aberta, não abra outra.

 

Se uma posição tiver sido fechada, não há problema em abrir outra posição se as condições forem atendidas.

 

Meu código é o seguinte.

 

 

 

——————–

Regra 1:

——————–

 

IF IsBarOpen é verdadeiro

 

and Some Other Condition //muito longo para repetir aqui, mas não importa

 

e OrderPosition(MagicLong) é Flat //ou seja: não há posições abertas ??? (é isso mesmo?)

 

ENTÃO entre no mercado (MagicLong)

 

 

Pelo que entendi, você só pode abrir uma posição por número mágico, mas ele continua abrindo novas posições a cada tick.

 

Alguma sugestão?

 

Obrigado.

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

11 anos atrás #121915

Hi,

 

A condição OrderPosition(MagicLong) is Flat é realmente verdadeira se não houver posições abertas, portanto, suas condições estão corretas.

 

Pelo que entendi, você só pode abrir uma posição por número mágico, mas ele continua abrindo novas posições a cada tick.

 

Sim, ele não deveria abrir várias posições com o mesmo número mágico. Se ele abrir uma nova posição a cada tick, há algum problema ou possível bug. Você pode postar sua estratégia (arquivo .sqw) aqui?

Marcar
EstratégiaQuant arquiteto

0

Visualizando 12 respostas - 1 até 12 (de um total de 12)