Antwort

DANN-Bedingung, um sie als WENN-Bedingung in der zweiten Regel zu verwenden

12 Antworten

Pago

Kunde, bbp_participant, Gemeinschaft, 83 Antworten.

Profil besuchen

vor 11 Jahren #111005

Hallo,

 

jemand weiß Wie kann das Ergebnis einer Regel #1 in einer zweiten Regel verarbeitet werden?

 

Zum Beispiel:

In der ersten Regel verwende ich ist die Bedingung MACD > 0, wenn das Ergebnis wahr ist, möchte ich dieses Signal in der zweiten Regel verwenden.

 

Ich versuche es mit THEN Assign Variable, aber diese Variable bleibt auch dann bestehen, wenn die IF-Bedingungen nicht mehr erfüllt werden.

 

 

Cezar

0

stearno

Kunde, bbp_participant, Gemeinschaft, 379 Antworten.

Profil besuchen

vor 11 Jahren #121260

Zar,

Sie haben Recht, die Regel weist die Variable zu und berührt sie dann erst wieder, wenn die Bedingungen erfüllt sind.

 

Was Sie also tun müssen, sind 2 Regeln: Die erste Regel weist die Variable zu, wenn der MACD >0 ist, und die zweite Regel weist die Variable zu, wenn der MACD<0 ist. Dann spiegelt Ihre Variable immer den MACD wider.

 

-Stearno

0

Pago

Kunde, bbp_participant, Gemeinschaft, 83 Antworten.

Profil besuchen

vor 11 Jahren #121262

Hallo Stearno,

 

Ich hatte Angst dass dies der einzige Weg ist. Die obige Bedingung war nur ein vereinfachtes Beispiel, die Bedingung ist ziemlich kompliziert und Bedingung für die Umkehrung ist sehr kompliziert und ich dachte, es kann irgendwie anders gelöst werden.

Ich habe eine andere Idee. Ich versuche einfach, die Bedingung als Indikator zu exportieren und dann in den Assistenten zu importieren, um das Sigal zu verwenden.

 

Cezar

0

stearno

Kunde, bbp_participant, Gemeinschaft, 379 Antworten.

Profil besuchen

vor 11 Jahren #121266

Klingt gut. Viel Glück!

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 11 Jahren #121283

Hallo,

weiß jemand, wie man das Ergebnis einer Regel #1 in einer zweiten Regel verarbeitet?

Zum Beispiel:

In der ersten Regel, die ich verwende, ist die Bedingung MACD > 0, wenn das Ergebnis wahr ist, möchte ich dieses Signal in der zweiten Regel verwenden.

Ich versuche es mit THEN Assign Variable, aber diese Variable bleibt auch dann bestehen, wenn die IF-Bedingungen nicht mehr erfüllt werden.

Hallo Cezar,

Sie können das Ergebnis in der zweiten Regel verarbeiten und dann die Variable wieder auf false setzen (mit der Funktion Assign variable).

Mark

Mark
StrategyQuant Architekt

0

Pago

Kunde, bbp_participant, Gemeinschaft, 83 Antworten.

Profil besuchen

vor 11 Jahren #121288

Hallo Mark,

 

I nicht ganz verstehen. Können Sie mir ein konkretes Beispiel für diese Funktion nennen?

 

Cezar

 

 

 

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 11 Jahren #121292

Ich meinte so etwas wie dies:

 

Regel 1:

WENN die Marktposition flach ist und der MACD > 0

DANN

Zuweisung der Variable ThereIsSignal = 1

 

Regel 2:

IF ThereIsSignal = 1

DANN

Am Markt eingeben
Zuweisung der Variable ThereIsSignal = 0

 

 

Auf diese Weise wird die Variable, die durch die erste Regel gesetzt wurde, nicht mehr gesetzt, wenn Sie in den Handel einsteigen; das war Ihr Problem, das ich nicht verstanden habe.

 

Mark

Mark
StrategyQuant Architekt

0

Pago

Kunde, bbp_participant, Gemeinschaft, 83 Antworten.

Profil besuchen

vor 11 Jahren #121303

Dankeschöndas ist die Lösung!

 

Cezar

0

518pip

Abonnent, bbp_participant, Gemeinschaft, 8 Antworten.

Profil besuchen

vor 11 Jahren #121812

Ich meinte so etwas wie dies:

 

Regel 1:

WENN die Marktposition flach ist und der MACD > 0

DANN

Zuweisung der Variable ThereIsSignal = 1

 

Regel 2:

IF ThereIsSignal = 1

DANN

Am Markt eingeben
Zuweisung der Variable ThereIsSignal = 0

 

 

Auf diese Weise wird die Variable, die durch die erste Regel gesetzt wurde, nicht mehr gesetzt, wenn Sie in den Handel einsteigen; das war Ihr Problem, das ich nicht verstanden habe.

 

Mark

Hallo, ich habe ein ähnliches Problem, bitte helfen Sie mir. Jeder.

 

Mehrfacher Einstieg, wenn der Kurs über dem 100-EMA liegt.

 

1. Eintrag, wenn 10 ema Kreuz über 20 ema, dann auf dem Markt mit Ziel eingeben.

 

2. Einstieg, wenn 10 EMA wieder über 20 EMA kreuzen und der Kurs immer noch über 100 EMA liegt, Einstieg am Markt. (manchmal 1 kann nicht mehr öffnen, wenn Ziel erreicht wurde)

 

Halten Sie auf dem Markt, solange der Preis über 100 ema und sehr Zeit 10 ema & 20 ema Kreuz über unabhängig.

 

Ich habe versucht, Variable zuweisen, aber meine aktuelle ea halten offen sowohl 1. und 2. Eintrag zur gleichen Zeit, wenn der 1. Eintrag geschieht und den Rest der gültigen Einträge zu überspringen.

 

Ich danke Ihnen,

0

Pago

Kunde, bbp_participant, Gemeinschaft, 83 Antworten.

Profil besuchen

vor 11 Jahren #121818

Hallo, ich habe ein ähnliches Problem, bitte helfen Sie mir. Jeder.

 

Mehrfacher Einstieg, wenn der Kurs über dem 100-EMA liegt.

 

1. Eintrag, wenn 10 ema Kreuz über 20 ema, dann auf dem Markt mit Ziel eingeben.

 

2. Einstieg, wenn 10 EMA wieder über 20 EMA kreuzen und der Kurs immer noch über 100 EMA liegt, Einstieg am Markt. (manchmal 1 kann nicht mehr öffnen, wenn Ziel erreicht wurde)

 

Halten Sie auf dem Markt, solange der Preis über 100 ema und sehr Zeit 10 ema & 20 ema Kreuz über unabhängig.

 

Ich habe versucht, Variable zuweisen, aber meine aktuelle ea halten offen sowohl 1. und 2. Eintrag zur gleichen Zeit, wenn der 1. Eintrag geschieht und den Rest der gültigen Einträge zu überspringen.

 

Ich danke Ihnen,

 

 

Hallo 518pip,

 

Ich denke, Sie brauchen keine Variable zuzuweisen.

 

Regel 1: Der erste Eintrag -> IsBarOpen ist True && Bid > EMA 100 && EMA 10 kreuzt über EMA 20

Regel 2 Der zweite Eintrag -> IsBarOpen ist True && (Open P/L [Magic_first_entry] 0 oder Closed P/L [Magic_first_entry] 0) && Bid > EMA 100 && EMA 10 cross above EMA 20   

 

Zum Abschluss können Sie eine dritte Regel mit den Abschlussbedingungen verwenden.

 

 

Ich hoffe, ich konnte Ihnen helfen. Andernfalls können Sie die Strategie dem Beitrag beifügen, dann können wir Ihnen gezielter helfen.

 

 

 

Cezar

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 11 Jahren #121822

Hallo, ich habe ein ähnliches Problem, bitte helfen Sie mir. Jeder.

 

Mehrfacher Einstieg, wenn der Kurs über dem 100-EMA liegt.

 

1. Eintrag, wenn 10 ema Kreuz über 20 ema, dann auf dem Markt mit Ziel eingeben.

 

2. Einstieg, wenn 10 EMA wieder über 20 EMA kreuzen und der Kurs immer noch über 100 EMA liegt, Einstieg am Markt. (manchmal 1 kann nicht mehr öffnen, wenn Ziel erreicht wurde)

 

Halten Sie auf dem Markt, solange der Preis über 100 ema und sehr Zeit 10 ema & 20 ema Kreuz über unabhängig.

 

Ich habe versucht, Variable zuweisen, aber meine aktuelle ea halten offen sowohl 1. und 2. Eintrag zur gleichen Zeit, wenn der 1. Eintrag geschieht und den Rest der gültigen Einträge zu überspringen.

 

Ich danke Ihnen,

 

Sie können das so machen (ich zeige nur die lange Seite):

 

——————–

Regel 1:

——————–

IF

OrderPosition(1000) ist nicht flach // wir stellen sicher, dass die erste Bestellung bereits geöffnet ist

und Bid > EMA(100) // sicherstellen, dass der Kurs über dem EMA(100) liegt

und EMA(10) kreuzt über EMA(20)

DANN

Marktzugang mit magischer Zahl (2000)

 

——————–

Regel 2:

——————–

IF

OrderPosition(1000) ist flach // wir stellen sicher, dass die Bestellung nicht bereits geöffnet ist

und Bid > EMA(100) // sicherstellen, dass der Kurs über dem EMA(100) liegt

und EMA(10) kreuzt über EMA(20)

 

DANN

Marktzugang mit magischer Zahl (1000)

 

 

 

Das sollte funktionieren. Die zweite Regel sorgt dafür, dass jedes Signal genommen wird, wenn der EMA(10) den EMA(20) kreuzt, und Regel 1 sorgt für den speziellen Fall, dass die erste Order bereits eröffnet ist.

Die Regeln müssen in dieser Reihenfolge eingehalten werden.
Vielleicht müssen Sie auch Is Bar Open = true zu beiden Regeln hinzufügen, um sicherzustellen, dass die Trades nur bei Bar Open eröffnet werden.

Mark
StrategyQuant Architekt

0

boomza100

Abonnent, bbp_participant, Gemeinschaft, 7 Antworten.

Profil besuchen

vor 11 Jahren #121844

Hallo zusammen,

 

Ich habe eine ähnliche Frage, die zum Thema dieses Threads passt.

 

Mit jedem neuen Tick werden neue Positionen eröffnet.

 

Ich möchte eine Position nur einmal eröffnen, wenn meine Bedingungen erfüllt sind.

 

Wenn es bereits eine offene Position gibt, öffnen Sie keine weitere Position.

 

Wenn eine Position geschlossen wurde, kann eine weitere Position eröffnet werden, wenn die Bedingungen erfüllt sind.

 

Mein Code sieht folgendermaßen aus.

 

 

 

——————–

Regel 1:

——————–

 

IF IsBarOpen ist wahr

 

und einige andere Bedingungen //zu lang, um sie hier zu wiederholen, aber das macht nichts

 

und OrderPosition(MagicLong) ist flach //d.h.: es gibt keine offenen Positionen ??? (ist das richtig?)

 

THEN Einstieg am Markt (MagicLong)

 

 

Soweit ich weiß, kann man nur eine Position pro magischer Zahl eröffnen, aber es werden jeden Tick neue Positionen eröffnet.

 

Irgendwelche Vorschläge,

 

Danke.

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 11 Jahren #121915

Hallo,

 

Bedingung OrderPosition(MagicLong) is Flat ist wirklich wahr, wenn es keine offenen Positionen gibt, also sind Ihre Bedingungen korrekt.

 

Soweit ich weiß, kann man nur eine Position pro magischer Zahl eröffnen, aber es werden jeden Tick neue Positionen eröffnet.

 

Ja, es sollten nicht mehrere Positionen mit der gleichen magischen Zahl eröffnet werden. Wenn bei jedem Tick eine neue Position eröffnet wird, gibt es ein Problem oder einen möglichen Fehler. Können Sie Ihre Strategie (.sqw-Datei) hier posten?

Mark
StrategyQuant Architekt

0

Ansicht von 12 Antworten - 1 bis 12 (von insgesamt 12)