Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Signale für eine bestimmte Periode ausklamern

Geschrieben

Hallo, wie kann man Signale, die für eine bestimmte Tageszeit entstehen, ausklammern?

Nemen wir ein Beispiel, ich möchte die Signalbildung der Übernacht Kerzen im 4h Chart (von 20:00 bis 04:00 - also 20:00 Kerze und 0:00 Uhr Kerze) verhindern bzw im Backtestteil oder Signal Scanteil von Amibroker.

Desweiteren, wie lassen sich Signale für eine Dauer über mehrere Monate (oder Quartal) ausklammern?

 

Danke für die Hilfe!

Featured Replies

Geschrieben

Ich verstehe wahrscheinlich die Frage nicht Richtig.

 

Aber Du kannst bei den Kaufbedingungen eine Uhrzeit mit angeben wann gehandelt werden darf,

eine Sell Bedingung formulieren das bei einer bestimmten Uhrzeit verkauft wird um in Deinem angegebenen Bereich Flat zu sein.

 

Desweiteren, wie lassen sich Signale für eine Dauer über mehrere Monate (oder Quartal) ausklammern?

 

?

Verstehe ich nicht

Geschrieben

so wie ich es verstehe, möchte er bei einem Backtest die Signale unterdrücken, die oft das Ergebnis verhageln da es nachts weniger Liquidität gibt.

 

Sprich, ihn interessiert nur der tagaktive Teil mit dem entsprechenden Ergebnis. Alles andere verzerrt nur das Resultat des Backtests.

 

So in etwa oder joshsmi?

Geschrieben
  • Autor

Ja Ronner hat es richtig verstanden. Aber auch ibelieve, obwohl er nicht sicher war.

 

Noch mal, mit welchem Befehl läßt es sich in einer Buy oder Sell Anweisung bewerkstelligen, dass zu einer bestimmten Candle Periode kein (normalerweise) entstehendes Signal generiert wird?

 

Desweiteren, wie läßt sich ein Befehl eingliedern bzw mit welchem Befehl läßt es sich verhindern, dass auch in einer bestimmten Jahresperiode (Sommer z.B.) kein Signal generiert wird?

Geschrieben
Noch mal, mit welchem Befehl läßt es sich in einer Buy oder Sell Anweisung bewerkstelligen, dass zu einer bestimmten Candle Periode kein (normalerweise) entstehendes Signal generiert wird?

 

TIMENUM

- get current bar time Date/Time

(AFL 2.0)

 

 

SYNTAX timenum()

RETURNS ARRAY

FUNCTION Returns the array with numbers that represent quotation time coded as follows:

10000 * hour + 100 * minute + second, so 12:37:15 becomes 123715

EXAMPLE TimeNum()

SEE ALSO Hour(), Minute(), Second(), TimeNum()

 

// Handel nur von 14:30 - 20:30 Uhr
Handelszeit = TimeNum()>=143000 AND TimeNum()<=203000;

 

Damit kannst Du Uhrzeit bestimmen wann gehandelt werden darf.

Es laufen ausserhalb der Ziet dann aber auch keine Stopps.

 

 

(Sommer z.B.)

 

Messbox für die die Temperatur an den PC,

Werte auslesen und Amibroker sagen wenn über 25C kein handel :pfue:

 

Habe ich noch nicht gemacht,

sollte aber irgend eine Date Funktion geben.

 

DATENUM

- date number Date/Time

(AFL 1.4)

 

 

SYNTAX datenum()

RETURNS ARRAY

FUNCTION Returns the array with numbers that represent quotation dates coded as follows:

10000 * (year - 1900) + 100 * month + day, so 2001-12-31 becomes 1011231 and 1995-12-31 becomes 951231

EXAMPLE datenum();

SEE ALSO

Geschrieben
  • Autor

Danke das könnte es sein.

 

Wie muss ich da vorgehen, um diese in die Buy Sell Anweisung einzufügen?

 

Stehe noch am Anfang mit der AFL Sprache

 

z.B.

 

Buy = Cross(Close,MA(C,50))

Sell = Cross(MA(C,50),(Close))

 

Short = ExRem(Sell,Buy);

Cover = ExRem(Buy,Sell);

 

Jetzt soll für Signale 20:00 - 04:00 Uhr nicht gelten.

Bearbeitet von joshsmi

Geschrieben
  • Autor

Ginge das dann so

 

Buy = Cross(...,...) and TimeNum()<>200000 TO TimeNum()<>040000?

Bearbeitet von joshsmi

Geschrieben
Ginge das dann so

 

Buy = Cross(...,...) and TimeNum()<>200000 TO TimeNum()<>040000?

 

oder aber du definierst es als "Handelzeiten" wie ich oben und schreibst dann

 

BUY = XXXX and Handelszeiten ;

 

Die Übersicht ist nachher eigentlich besser und Du kannst viel einfacher mal die Zeiten ändern bzw. musst Sie nur einmal ändern auch wenn Du sie nachher mehrmals im Programm verwendest.

 

Edit,

habe jetzt leider keine Zeit mehr,

glaube aber deine Zeile der Zeit ist Falsch.

 

Das <> stört mich irgend wie

Geschrieben
  • Autor
oder aber du definierst es als "Handelzeiten" wie ich oben und schreibst dann

 

BUY = XXXX and Handelszeiten ;

 

Die Übersicht ist nachher eigentlich besser und Du kannst viel einfacher mal die Zeiten ändern bzw. musst Sie nur einmal ändern auch wenn Du sie nachher mehrmals im Programm verwendest.

 

Richtig, so geht es natürlich einfacher.

 

Aber wäre die Schreibweise so richtig

 

mit <> sowie TO statt AND?

 

EDIT: habe gerade gesehen, dass du noch editiert hast.

Bearbeitet von joshsmi

Geschrieben
  • Autor

Ich habe es mal ausprobiert und es funktioniert

 

Jetzt fehlen noch die Monate, welche nicht betrachtet werden sollen.

 

Handelsmonate1 = DATENUM()>021231 AND DATENUM()<=030630;

Handelsmonate2 = DATENUM()>030930 AND DATENUM()<=031231;

 

Aber, das wäre ja jetzt nur für das Jahr 2003 und nicht von 2003 bis jetzt.

Bearbeitet von joshsmi

Geschrieben

Sorry, aber ich bin auch nicht der Programmierer :pfue:

 

Vielleicht sagt duncan oder nichtsnutz mal was dazu :pfue:

Geschrieben
  • Autor

Ich habe es jetzt mal so gemacht

 

HZ = TimeNum()>=040000 AND TimeNum()<=160000;

HM1 = DateNum()>021231 AND DateNum()<=030630;

HM2 = DateNum()>030930 AND DateNum()<=040630;

HM3 = DateNum()>040930 AND DateNum()<=050630;

HM4 = DateNum()>050930 AND DateNum()<=060630;

HM5 = DateNum()>060930 AND DateNum()<=070630;

HM6 = DateNum()>070930 AND DateNum()<=080630;

HM7 = DateNum()>080930 AND DateNum()<=090630;

HM8 = DateNum()>090930 AND DateNum()<=100630;

HM = HM1 + HM2 + HM3 + HM4 + HM5 + HM6 + HM7 + HM8;

 

Aber für DateNum müßte es doch eine elegantere Lösung geben.

 

Mal sehen, ob jemand eine parat hat.

Geschrieben
  • Autor

Die DateNum Aufstellung scheint falsch zu sein.

 

Wenn ich auf Scan klicke im Automatic Analyzer, dann listet er nichts auf.

 

Habe es auch mal so probiert

 

HM = HM1 AND HM2 AND HM3 AND HM4 AND HM5 AND HM6 AND HM7 AND HM8;

Bearbeitet von joshsmi

Geschrieben
  • Autor

So klappt es für die Monate

 

statt AND ein OR sowie vor das Datum eine 1

 

HM1 = DateNum()>1021231 AND DateNum()<1030701;

HM2 = DateNum()>1030930 AND DateNum()<1040701;

HM3 = DateNum()>1040930 AND DateNum()<1050701;

HM4 = DateNum()>1050930 AND DateNum()<1060701;

HM5 = DateNum()>1060930 AND DateNum()<1070701;

HM6 = DateNum()>1070930 AND DateNum()<1080701;

HM7 = DateNum()>1080930 AND DateNum()<1090701;

HM8 = DateNum()>1090930 AND DateNum()<1100701;

HM = HM1 OR HM2 OR HM3 OR HM4 OR HM5 OR HM6 OR HM7 OR HM8;

 

Jetzt fehlt nur noch eine elegantere Lösung.

Geschrieben

Moin,

 

Wenn du ganze Monate ausklammern willst sollte es wohl auch hier mit gehen.

 

MONTH

- month Date/Time

(AFL 1.4)

 

 

SYNTAX month()

RETURNS ARRAY

FUNCTION Returns the array with months(1-12)

EXAMPLE buy = ( month() == 1 ) and day < 3; // buy in January

 

Musst Du dann nicht für jedes Jahr einzeln schreiben.

Geschrieben
  • Autor

Danke

 

buy = ( month() == 1 ) and day < 3; // buy in January

 

Day < 3 heißt hier im Beispiel, dass nur am 1. und 2. Januar gekauft werden soll, oder?

  • 7 Monate später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.