Risposta

La condizione THEN per utilizzarla come condizione IF nella seconda regola.

12 risposte

Pago

Cliente, bbp_partecipante, comunità, 83 risposte.

Visita il profilo

11 anni fa #111005

Salve,

 

qualcuno sa come elaborare il risultato di una regola #1 in una seconda regola?

 

Ad esempio:

Nella prima regola utilizzo è la condizione MACD > 0 se il risultato è vero voglio utilizzare questo segnale nella seconda regola.

 

Ho provato con THEN Assegna variabile, ma questa variabile rimane anche se le condizioni IF non sono più soddisfatte.

 

 

Cezar

0

stearno

Cliente, bbp_partecipante, comunità, 379 risposte.

Visita il profilo

11 anni fa #121260

Zar,

Hai ragione, la regola assegnerà la variabile e poi non la toccherà più finché non saranno soddisfatte le condizioni.

 

Quindi è necessario avere 2 regole: La prima regola assegna la variabile quando il MACD >0 e la seconda regola assegna la variabile quando il MACD<0. In questo modo la variabile sarà sempre un riflesso della posizione del MACD.

 

-STearno

0

Pago

Cliente, bbp_partecipante, comunità, 83 risposte.

Visita il profilo

11 anni fa #121262

Ciao Stearno,

 

Avevo paura che è l'unico modo. Il La condizione di cui sopra era solo un esempio semplificato, la condizione è piuttosto complicata. e La condizione per l'inversione è molto complicata e ho pensato che potesse in qualche modo risolversi diversamente.

Ho un'altra idea. Provo a esportare la condizione come indicatore e poi a importarla nella procedura guidata per utilizzare il segnale.

 

Cezar

0

stearno

Cliente, bbp_partecipante, comunità, 379 risposte.

Visita il profilo

11 anni fa #121266

Sembra buono. Buona fortuna!

0

Mark Fric

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

11 anni fa #121283

Salve,

qualcuno sa come elaborare il risultato di una regola #1 in una seconda regola?

Ad esempio:

Nella prima regola utilizzo la condizione MACD > 0 se il risultato è vero voglio utilizzare questo segnale nella seconda regola.

Ho provato con THEN Assegna variabile, ma questa variabile rimane anche se le condizioni IF non sono più soddisfatte.

Ciao Cezar,

è possibile elaborare il risultato sulla seconda regola e quindi impostare nuovamente la variabile su false (tramite la funzione Assegna variabile).

Marchio

Marchio
Architetto StrategyQuant

0

Pago

Cliente, bbp_partecipante, comunità, 83 risposte.

Visita il profilo

11 anni fa #121288

Ciao Mark,

 

I non capisco bene. Potete darmi un esempio concreto di questa funzione?

 

Cezar

 

 

 

0

Mark Fric

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

11 anni fa #121292

Intendevo qualcosa del genere:

 

Regola 1:

SE la posizione di mercato è piatta e il MACD > 0

ALLORA

Assegnare la variabile ThereIsSignal = 1

 

Regola 2:

SE ThereIsSignal = 1

ALLORA

Entrare nel mercato
Assegnare la variabile ThereIsSignal = 0

 

 

In questo modo la variabile impostata dalla prima regola non sarà più impostata quando si entra nel trade, questo era il vostro problema, come non ho capito.

 

Marchio

Marchio
Architetto StrategyQuant

0

Pago

Cliente, bbp_partecipante, comunità, 83 risposte.

Visita il profilo

11 anni fa #121303

GrazieQuesta è la soluzione!

 

Cezar

0

518pip

Abbonato, bbp_partecipante, comunità, 8 risposte.

Visita il profilo

11 anni fa #121812

Intendevo qualcosa del genere:

 

Regola 1:

SE la posizione di mercato è piatta e il MACD > 0

ALLORA

Assegnare la variabile ThereIsSignal = 1

 

Regola 2:

SE ThereIsSignal = 1

ALLORA

Entrare nel mercato
Assegnare la variabile ThereIsSignal = 0

 

 

In questo modo la variabile impostata dalla prima regola non sarà più impostata quando si entra nel trade, questo era il vostro problema, come non ho capito.

 

Marchio

Salve, sto affrontando un problema simile, vi prego di aiutarmi. Chiunque.

 

ingresso multiplo se il prezzo supera la ema 100.

 

1° ingresso se la 10 ema incrocia la 20 ema, quindi entrare a mercato con obiettivo.

 

Seconda entrata se la 10 ema incrocia di nuovo la 20 ema e il prezzo è ancora sopra la 100 ema, entrare a mercato. (a volte il 1° potrebbe non aprirsi più se l'obiettivo è stato raggiunto).

 

mantenere l'ingresso a mercato finché il prezzo supera la 100 ema e molto spesso la 10 ema e la 20 ema si incrociano indipendentemente.

 

Ho provato ad assegnare una variabile, ma la mia attuale ea continua ad aprire sia la prima che la seconda voce allo stesso tempo quando avviene la prima voce e salta il resto delle voci valide.

 

Grazie,

0

Pago

Cliente, bbp_partecipante, comunità, 83 risposte.

Visita il profilo

11 anni fa #121818

Salve, sto affrontando un problema simile, vi prego di aiutarmi. Chiunque.

 

ingresso multiplo se il prezzo supera la ema 100.

 

1° ingresso se la 10 ema incrocia la 20 ema, quindi entrare a mercato con obiettivo.

 

Seconda entrata se la 10 ema incrocia di nuovo la 20 ema e il prezzo è ancora sopra la 100 ema, entrare a mercato. (a volte il 1° potrebbe non aprirsi più se l'obiettivo è stato raggiunto).

 

mantenere l'ingresso a mercato finché il prezzo supera la 100 ema e molto spesso la 10 ema e la 20 ema si incrociano indipendentemente.

 

Ho provato ad assegnare una variabile, ma la mia attuale ea continua ad aprire sia la prima che la seconda voce allo stesso tempo quando avviene la prima voce e salta il resto delle voci valide.

 

Grazie,

 

 

Ciao 518pip,

 

Non è necessario assegnare una variabile.

 

Regola 1: La prima entrata -> IsBarOpen è vero && Bid > EMA 100 && EMA 10 cross sopra EMA 20

Regola 2 Il secondo ingresso -> IsBarOpen è vero && (Open P/L [Magic_first_entry] 0 o Closed P/L [Magic_first_entry] 0) && Bid > EMA 100 && EMA 10 cross sopra EMA 20   

 

Per chiudere è possibile utilizzare una terza regola con le condizioni di chiusura.

 

 

Spero di poter aiutarvi. Altrimenti potete allegare la strategia al post, così potremo aiutarvi in modo più specifico.

 

 

 

Cezar

0

Mark Fric

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

11 anni fa #121822

Salve, sto affrontando un problema simile, vi prego di aiutarmi. Chiunque.

 

ingresso multiplo se il prezzo supera la ema 100.

 

1° ingresso se la 10 ema incrocia la 20 ema, quindi entrare a mercato con obiettivo.

 

Seconda entrata se la 10 ema incrocia di nuovo la 20 ema e il prezzo è ancora sopra la 100 ema, entrare a mercato. (a volte il 1° potrebbe non aprirsi più se l'obiettivo è stato raggiunto).

 

mantenere l'ingresso a mercato finché il prezzo supera la 100 ema e molto spesso la 10 ema e la 20 ema si incrociano indipendentemente.

 

Ho provato ad assegnare una variabile, ma la mia attuale ea continua ad aprire sia la prima che la seconda voce allo stesso tempo quando avviene la prima voce e salta il resto delle voci valide.

 

Grazie,

 

Si può fare così (mostrerò solo il lato lungo):

 

——————–

Regola 1:

——————–

SE

OrderPosition(1000) non è Flat // ci si assicura che il primo ordine sia già aperto

e Bid > EMA(100) // assicurarsi che il prezzo sia superiore a EMA(100)

e l'EMA(10) supera l'EMA(20)

ALLORA

Entrare nel mercato con il numero magico (2000)

 

——————–

Regola 2:

——————–

SE

OrderPosition(1000) è Flat // ci assicuriamo che l'ordine non sia già stato aperto

e Bid > EMA(100) // assicurarsi che il prezzo sia superiore a EMA(100)

e l'EMA(10) supera l'EMA(20)

 

ALLORA

Entrate nel mercato con il numero magico (1000)

 

 

 

Questo dovrebbe funzionare. La seconda regola si occupa di prendere qualsiasi segnale quando l'EMA(10) incrocia l'EMA(20) e la regola 1 si occupa del caso speciale in cui il primo ordine è già aperto.

Le regole devono essere in quest'ordine.
Forse dovrete aggiungere anche Is Bar Open = true a entrambe le regole per assicurarvi che i trade vengano aperti solo all'apertura della barra.

Marchio
Architetto StrategyQuant

0

boomza100

Abbonato, bbp_partecipante, comunità, 7 risposte.

Visita il profilo

11 anni fa #121844

Ciao a tutti,

 

Ho una domanda simile, in linea con l'argomento di questo thread.

 

Continuo a ricevere nuove posizioni aperte, ad ogni nuovo tick.

 

Quello che voglio fare è aprire una posizione solo una volta, se le mie condizioni sono soddisfatte.

 

Se c'è già una posizione aperta, non aprirne un'altra.

 

Se una posizione è stata chiusa, è possibile aprirne un'altra se le condizioni sono soddisfatte.

 

Il mio codice è così.

 

 

 

——————–

Regola 1:

——————–

 

SE IsBarOpen è vero

 

e qualche altra condizione //troppo lungo da ripetere qui, ma non ha importanza

 

e OrderPosition(MagicLong) è Flat //cioè: non ci sono posizioni aperte ???? (è corretto?)

 

QUINDI entrare a mercato (MagicLong)

 

 

Da quanto ho capito, è possibile aprire solo una posizione per numero magico, ma continua ad aprire nuove posizioni ad ogni tick.

 

Qualsiasi suggerimento,

 

Grazie.

0

Mark Fric

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

11 anni fa #121915

Ciao,

 

La condizione OrderPosition(MagicLong) è Flat è vera se non ci sono posizioni aperte, quindi le condizioni sono corrette.

 

Da quanto ho capito, è possibile aprire solo una posizione per numero magico, ma continua ad aprire nuove posizioni ad ogni tick.

 

Sì, non dovrebbe aprire più posizioni con lo stesso numero magico. Se apre una nuova posizione ad ogni tick c'è qualche problema o possibile bug. Puoi postare qui la tua strategia (file .sqw)?

Marchio
Architetto StrategyQuant

0

Stai visualizzando 12 risposte - da 1 a 12 (di 12 totali)