Amibroker AFL
-
-
-
Target Trend Methode sagt mir zwar nichts, aber vielleicht hilft dir das bei deiner Suche weiter.
Quellcode
- _SECTION_BEGIN("Linear Reg Channel");
- Plot(Close, "", 55, GetPriceStyle());
- P = ParamField("Price field", -1);
- Daysback = Param("Period for Linear Regression Channel", 50, 1, 300, 1);
- SDP1 = Param("Standard Deviation 1", 1.0, 0, 6, 0.05);
- SDP2 = Param("Standard Deviation 2", 2.0, 0, 6, 0.05);
- SDP3 = Param("Standard Deviation 3", 3.0, 0, 6, 0.05);
- ext = Param("extend Linear Regression Channel", 15, 0, 50, 1);
- shift = Param("Look back period", 0, 0, 240, 1);
- Collg = ParamColor("Color Linear Reg Line", colorRed);
- Colsd1 = ParamColor("Color StDev 1", colorBlue);
- Colsd2 = ParamColor("Color StDev 2", colorLime);
- Colsd3 = ParamColor("Color StDev 3", colorGold);
- SDP1 = SDP1/2;
- SDP2 = SDP2/2;
- SDP3 = SDP3/2;
- pds = Daysback;
- x = BarIndex() + 1;
- sx = SelectedValue(x)-shift;
- aa = SelectedValue(Ref(LinRegIntercept(P, pds), -shift));
- bb = SelectedValue(Ref(LinRegSlope(P, pds), -shift));
- StDev0 = StDev(P, pds);
- fd1 = SelectedValue(Ref(SDP1 * StDev0, -shift) );
- fd2 = SelectedValue(Ref(SDP2 * StDev0, -shift) );
- fd3 = SelectedValue(Ref(SDP3 * StDev0, -shift) );
- ys = SelectedValue(ValueWhen(x, aa, 1));
- yi = SelectedValue(ValueWhen(x, bb, 1));
- xs = sx - pds;
- d = ext;//Shift Line Right
- xe = xs + pds + d;
- ye = ys + yi * (xe - xs);
- sty = 1|32|2048;
- Plot(LineArray(xs-d,ys,xe-d,ye,1),"",Collg,sty,0,0,d);
- Plot(LineArray(xs-d,ys-fd1,xe-d,ye-fd1,1),"",Colsd1,sty,0,0,d);
- Plot(LineArray(xs-d,ys+fd1,xe-d,ye+fd1,1),"",Colsd1,sty,0,0,d);
- Plot(LineArray(xs-d,ys-fd2,xe-d,ye-fd2,1),"",Colsd2,sty,0,0,d);
- Plot(LineArray(xs-d,ys+fd2,xe-d,ye+fd2,1),"",Colsd2,sty,0,0,d);
- Plot(LineArray(xs-d,ys-fd3,xe-d,ye-fd3,1),"",Colsd3,sty,0,0,d);
- Plot(LineArray(xs-d,ys+fd3,xe-d,ye+fd3,1),"",Colsd3,sty,0,0,d);
- _SECTION_END();
-
Das Video kenne ich schon. Dachte es mir, dass du es sein könntest...
Apropos:
Eine Idee habe ich auch noch zum Thema. Wie währe es mit einem Indi die zwei Trendlinien die man manuell setzt erkennt und, wenn sie parallel sind, nach oben und unten vervielfältigt... Sollte machbar sein. Dann könnte man mal sich die TagetTrendMethode nochmal ansehen. Da spielen Schnittpunkte von waagerechten, und diagonale Trendlinien-Raster eine Rolle...ich raube, also bin ich.... -
Thx! Dachte schon, ich wäre Alleinunterhalter.
Als horizontales Grid hätte ich noch eine Alternative. Wollte es eigentlich vor ein paar Wochen schon posten, aber ...
Jedenfalls hier gibt's ein kurzes Video dazu.
youtube.com/watch?v=__Ka-Zb15y4
Im Update gibt es noch eine zusätzliche Option für eine durchgehende Linie statt nur für den jeweiligen Tag (im Video nicht enthalten). -
Hab mal wieder was gemacht... ChartTemplate mit definiertem horizontalen und vertikalem Grid...
Horizontales Grid
- wahlweise GridAbstand manuell oder für Forex optimiert >> dadurch fixe Abstände möglich
- FX-Optimiert beinhaltet TF abhängiger Gridabstand >> M1-M5 10P, M10-M15 25Pips, M30-H1 50 Pips, H2 und größer 100 Pips
- falls beim Zoomen der Abstand High-Low/Gridabstand im Chart zu groß wird (>16) wird die Variable für den Gridabstand verdoppelt
Vertikales Grid
- drei GridEbenen für jeweiligen TimeFrame-Bereich
- GridEbenen werden - abhängig vom Zeitraums des sichtbaren Bereichs - ausgeblendet
- zum manuellen anpassen wird der Zeitraum in Stunden im Fenster Interpretation angezeigt
ich raube, also bin ich.... - wahlweise GridAbstand manuell oder für Forex optimiert >> dadurch fixe Abstände möglich
-
Tick Bid/Ask von Herman van den Bergen amibroker.org/userkb/2011/02/0…cting-and-plotting-ticks/
Ich habe ihn mit ihm zusammen noch in eine volumenunabhängige Version abgeändert und noch ein bisschen modifiziert.
Also der folgende Code unterscheidet sich zwar, zeigt aber das Gleiche. Numticks-Werte könnt ihr nach Gusto verändern. Wer Last noch dazuhaben will, dann // vor Plot löschen.
Berichtet mal, ob es korrekt läuft. Zeigt natürlich nur Daten an, wenn realtime aktiv ist und Daten ankommen. Mit AddtoComposite ließen sich die Werte sicher speichern. Beim nächsten AB-Start sind die Ticks gelöscht oder bei betätigen von "Clear" in den Paramters. So wie ich mitbekommen habe, plant Tomasz Janezko in einer der zukünftigen AB-Versionen Bid/Ask Chartdarstellung ohne solche Codes zu ermöglichen. Also solche Darstellmöglichkeiten wie z.B. bei O. img824.imageshack.us/img824/9734/59534237.png Aber rumors not facts.
Quellcode
- _SECTION_BEGIN("Tickchart2");
- //Apply to Indicator, requires RT data, Open Param window to see options.
- //main part by Herman van den Bergen, (modified by trash@candletalk.de)
- //http://www.amibroker.org/userkb/2011/02/09/collecting-and-plotting-ticks/
- // This version is not dependent on volume.
- function TickArray2( Ticker, TickPriceName, NumTicks, Reset )
- {
- Tickprice = GetRTDataForeign( TickPriceName, Ticker );
- PrevBid = Nz( StaticVarGet( "~Bid_" + TickPriceName ) );
- PrevAsk = Nz( StaticVarGet( "~Ask_" + TickPriceName ) );
- Bid = GetRTDataForeign( "Bid", Ticker );
- Ask = GetRTDataForeign( "Ask", Ticker );
- StaticVarSet( "~Bid_" + TickPriceName, Bid );
- StaticVarSet( "~Ask_" + TickPriceName, Ask );
- if ( Ask != PrevAsk OR Bid != PrevBid )
- {
- InIndicator = Status( "Action" ) == 1;
- StaticVarSet( "LastQuotePrice", TickPrice );
- TA = Null; // Clear Output array
- NumTicks = Min( BarCount - 2, NumTicks ); // Stay in array size
- for ( n = NumTicks; n >= 0; n-- )
- {
- T = StaticVarGet( TickPriceName + ( n - 1 ) );
- StaticVarSet( TickPriceName + n, T );
- TA[ BarCount - 1 - n] = T; // Fill return array
- }
- StaticVarSet( TickPriceName + 0, TickPrice );
- TA[BarCount-1] = TickPrice;
- }
- else
- {
- TA = Null; // Clear Output array
- NumTicks = Min( BarCount - 2, NumTicks ); // Stay in array size
- for ( n = NumTicks; n >= 0; n-- )
- {
- T = StaticVarGet( TickPriceName + n );
- TA[ BarCount - 1 - n] = T; // Fill return array
- }
- }
- return TA;
- }
- function TickArraysReset( TickPriceName )
- {
- global NumTicks;
- StaticVarSet( "Init"+TickPricename, 1 );
- for ( n = NumTicks; n >= 0; n-- ) StaticVarRemove( TickPriceName + n );
- }
- GraphXSpace = 20;
- TickerName = Name();
- Clear = ParamTrigger( "Clear Tick Charts", "CLEAR" );
- NumTicks = Param( "Tick-Array Length", 100, 10, 10000, 10 );
- TickPriceName = "Last";
- if ( IsNull( StaticVarGet( "Init"+TickPriceName ) ) OR Clear ) TickArraysReset( TickPriceName );
- TA1 = TickArray2( TickerName, TickPriceName, NumTicks, Clear);
- //Plot( TA1, TickPriceName, 1, 1);
- TickPriceName = "Bid";
- if ( IsNull( StaticVarGet( "Init"+TickPriceName ) ) OR Clear ) TickArraysReset( TickPriceName );
- TA2 = TickArray2( TickerName, TickPriceName, NumTicks, Clear);
- Plot( TA2, TickPriceName, 4, 1);
- TickPriceName = "Ask";
- if ( IsNull( StaticVarGet( "Init"+TickPriceName ) ) OR Clear ) TickArraysReset( TickPriceName );
- TA3 = TickArray2( TickerName, TickPriceName, NumTicks, Clear);
- Plot( TA3, TickPriceName, 5, 1);
- Tick = IIf(StrRight(Name(),3)=="JPY" OR StrLeft(Name(),3)=="XAG", 0.01, 0.0001);
- spread = (TA3-TA2)/Tick;
- _N(Title = StrFormat("{{NAME}} - tick chart in {{INTERVAL}} tf - {{DATE}} {{VALUES}}") + EncodeColor(colorLightGrey) + ", Spread: " + Prec(Spread, 1));
- _SECTION_END();
-
Info für Leute die Timeframeset verwenden
Hello,
As it is explained in the manual amibroker.com/guide/h_timeframe.html
AmiBroker by default uses expandLast mode that protects against looking into the future.
What you are asking for is having higher timeframe values before higher timeframe
bar has formed. It is possible in AmiBroker too - using expandFirst mode
that way you will get higher timeframe values from the very first tick in given
timeframe.
See the following example code:
Apply this formula on hourly chart (or any intraday).
As you can see, using expandFirst, BLUE line represents DAILY last and it is updated in REAL TIME
with each new tick coming in and matches intraday last (red line).
Best regards,
Tomasz Janeczko
amibroker.com
finance.groups.yahoo.com/group/amibroker/message/156781
Expandlast zeigt hingegen den letzten Close Wert des höheren TFs, was das selbe wie TimeFrameExpand( DC, inDaily) wäre. Also TimeFrameExpand( DC, inDaily, expandLast) gleich TimeFrameExpand( DC, inDaily).
Expandfirst zeigt den aktuellen Wert des Bars im höheren TF. Einfach mal im Code zwischen Expandfirst/-last wechseln. Dann wird's klar. -
ibelieve schrieb:
aber vielleicht kann ich es so richten das ich unter DATA den Chart speichere und dann unter USStocks lade.
das geht und so habe ich meinen Text und Linien wieder
Sollte man also immer seinen Hauptchart wo auch Beschriftungen und so drin sind als Template abspeichern. -
oldschuren schrieb:
Trendlinie ect. werden auch in die jeweilige Datenbank abgelegt.
So schaut's wohl aus. Trendlinien werden in der jeweiligen Database gespeichert. Die Templates speichern keine Linien. Also wenn Ibelieve seine alte Database, die er vorher die ganze Zeit nutzte, wieder aufruft, sollten dort diese Linien noch vorhanden sein.
Übertragen kann man die Studies (Fibos, Kanäle und Linien usw) wohl über die Layerfunktion.
mail-archive.com/amibroker@yahoogroups.com/msg45995.html
amibroker.com/video/layers.html
mail-archive.com/amibroker@yahoogroups.com/msg31566.html
Ich muss zugeben, dass ich mich mit layers und layouts noch nie wirklich beschäftigt habe, da nicht benötigt bisher.
Paar andere Links
amibroker.com/guide/h_workspace.html
amibroker.com/guide/h_sheets.html -
-
trash schrieb:
Das speichert einen kompletten Chart mit all seinen Sheets.
sieht zumindest für die zukunft gut aus.
bin jetzt am falschen rechner, aber vielleicht kann ich es so richten das ich unter DATA den Chart speichere und dann unter USStocks lade.
muss ich morgen mal probieren. Bin jetzt am falschen Rechner -
wo bei es mir ja eigentlich nicht um eine bestimmte charteinstellung geht sondern um meine eingezeichneten Linien die ich ja immer verliere wenn ich mir den Wert in einem neuen Chart anschaue. war mir auch schon mal passiert das ich meinen hauptchart wo ich meine Linien einzeichne aus versehen weg klickte und so alle Zeichnungen verlor. Entweder habe ich noch irgend was nicht verstanden in dem zusammenhang oder aber es ist alles mit vorsicht zu geniessen.
-
ibelieve schrieb:
Eventuell mal an den AB Support wenden, vielleicht kennen die einen Trick. Die antworten immer recht schnell. -
ibelieve schrieb:
bin ich jetzt überfragt was das genau heist bzw. macht?
Was speichere ich damit?
Das speichert einen kompletten Chart mit all seinen Sheets. Dieser Chart kann ja ein Blank Chart oder Default Chart sein (File>New). Nach der Auswahl wird ein neuer Tabs erstellt, Tabs wie beim Browser. Vor dem Speichern hast du noch zwei Möglichkeiten, was zu speichern ist von diesem kompletten Tab (siehe Dateityp).
-
trash schrieb:
Du kannst doch für's nächste Mal auch die template Funktion nutzen, um deine Einstellungen für einen kompletten Tab zu speichern.
bin ich jetzt überfragt was das genau heist bzw. macht?
Was speichere ich damit? -
-
-
Hallo Ibelieve, einen Grund kenne ich jetzt nicht wirklich, da mir das noch nicht passierte. Du könnest aber das Ganze eventuell so retten, falls du AB nicht wieder geschlossen hast, dass du AB noch mal startest und du somit zwei Instanzen von AB parellel laufen hast. Die neuen (vermurksten) Settings werden ja erst beim Schließen von AB angewendet, wenn man vorher nicht manuell eingriff und auch manuell speicherte. Wenn also bei dieser zweiten Instanz von AB die alten Settings wieder auftauchen, dann schließt du den AB, der sie löschen ließ, und bei der zweiten Instanz drückst du vorsichtshalber File>save all.
Verstanden? Viel Glück!"I'm a trader, baby. So, why don't you kill me?!" -
erst mal ein großes Danke an trash das Du die Sachen so erklärst das auch ich sie verstehe,
was aber wieder Probleme aufwirft da ich sie dann mache.
Habe das mit dem ändern der Database beim öffen von AB gemacht.
Was eigentlich auch klappte, jetzt startet er mit der der ich will.
Das Problem was ich aber habe ist das er mir meine Ganzen Chartseinstellungen die ich vorher hatte verlor, inclusive meiner eingezeichneten Striche. (kauf, Stopp, verkauf und so)
Hast du eine Idee wie ich die wieder bekommen könnte?
Die werden ja sicherlich irgend wie irgend wo gespeichert.
ICh hoffe man versteht was ich meine.
-
Teilen
- Facebook 0
- Twitter 0
- Google Plus 0
-
Reddit 0