La condizione THEN per utilizzarla come condizione IF nella seconda regola.
12 risposte
Pago
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
stearno
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
Pago
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
stearno
11 anni fa #121266
Sembra buono. Buona fortuna!
Mark Fric
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
Pago
11 anni fa #121288
Mark Fric
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
Pago
11 anni fa #121303
518pip
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,
Pago
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
Mark Fric
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
boomza100
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.
Mark Fric
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
Stai visualizzando 12 risposte - da 1 a 12 (di 12 totali)