Skip to content
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

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

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

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?

  • Author

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?

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

  • Author

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.

Edited by joshsmi

  • Author

Ginge das dann so

 

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

Edited by joshsmi

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

  • Author
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.

Edited by joshsmi

  • Author

Dann wahrscheinlich so

 

Handelszeit = TimeNum()>=040000 AND TimeNum()<=200000;

  • Author

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.

Edited by joshsmi

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

 

Vielleicht sagt duncan oder nichtsnutz mal was dazu :pfue:

  • Author

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.

  • Author

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;

Edited by joshsmi

  • Author

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.

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.

  • Author

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?

Sollte so sein.

 

Interessant wird es wenn man Tage angibt die es nicht gibt.

  • 7 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Account

Navigation

Search

Search

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.