Amibroker AFL

      Target Trend Methode sagt mir zwar nichts, aber vielleicht hilft dir das bei deiner Suche weiter.

      Quellcode

      1. _SECTION_BEGIN("Linear Reg Channel");
      2. Plot(Close, "", 55, GetPriceStyle());
      3. P = ParamField("Price field", -1);
      4. Daysback = Param("Period for Linear Regression Channel", 50, 1, 300, 1);
      5. SDP1 = Param("Standard Deviation 1", 1.0, 0, 6, 0.05);
      6. SDP2 = Param("Standard Deviation 2", 2.0, 0, 6, 0.05);
      7. SDP3 = Param("Standard Deviation 3", 3.0, 0, 6, 0.05);
      8. ext = Param("extend Linear Regression Channel", 15, 0, 50, 1);
      9. shift = Param("Look back period", 0, 0, 240, 1);
      10. Collg = ParamColor("Color Linear Reg Line", colorRed);
      11. Colsd1 = ParamColor("Color StDev 1", colorBlue);
      12. Colsd2 = ParamColor("Color StDev 2", colorLime);
      13. Colsd3 = ParamColor("Color StDev 3", colorGold);
      14. SDP1 = SDP1/2;
      15. SDP2 = SDP2/2;
      16. SDP3 = SDP3/2;
      17. pds = Daysback;
      18. x = BarIndex() + 1;
      19. sx = SelectedValue(x)-shift;
      20. aa = SelectedValue(Ref(LinRegIntercept(P, pds), -shift));
      21. bb = SelectedValue(Ref(LinRegSlope(P, pds), -shift));
      22. StDev0 = StDev(P, pds);
      23. fd1 = SelectedValue(Ref(SDP1 * StDev0, -shift) );
      24. fd2 = SelectedValue(Ref(SDP2 * StDev0, -shift) );
      25. fd3 = SelectedValue(Ref(SDP3 * StDev0, -shift) );
      26. ys = SelectedValue(ValueWhen(x, aa, 1));
      27. yi = SelectedValue(ValueWhen(x, bb, 1));
      28. xs = sx - pds;
      29. d = ext;//Shift Line Right
      30. xe = xs + pds + d;
      31. ye = ys + yi * (xe - xs);
      32. sty = 1|32|2048;
      33. Plot(LineArray(xs-d,ys,xe-d,ye,1),"",Collg,sty,0,0,d);
      34. Plot(LineArray(xs-d,ys-fd1,xe-d,ye-fd1,1),"",Colsd1,sty,0,0,d);
      35. Plot(LineArray(xs-d,ys+fd1,xe-d,ye+fd1,1),"",Colsd1,sty,0,0,d);
      36. Plot(LineArray(xs-d,ys-fd2,xe-d,ye-fd2,1),"",Colsd2,sty,0,0,d);
      37. Plot(LineArray(xs-d,ys+fd2,xe-d,ye+fd2,1),"",Colsd2,sty,0,0,d);
      38. Plot(LineArray(xs-d,ys-fd3,xe-d,ye-fd3,1),"",Colsd3,sty,0,0,d);
      39. Plot(LineArray(xs-d,ys+fd3,xe-d,ye+fd3,1),"",Colsd3,sty,0,0,d);
      40. _SECTION_END();
      Bilder
      • linreg.png

        35,78 kB, 1.121×725, 290 mal angesehen
      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).
      Dateien
      • #Gridadv.zip

        (933 Byte, 292 mal heruntergeladen, zuletzt: )
      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


      Dateien
      ich raube, also bin ich....
      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

      1. _SECTION_BEGIN("Tickchart2");
      2. //Apply to Indicator, requires RT data, Open Param window to see options.
      3. //main part by Herman van den Bergen, (modified by trash@candletalk.de)
      4. //http://www.amibroker.org/userkb/2011/02/09/collecting-and-plotting-ticks/
      5. // This version is not dependent on volume.
      6. function TickArray2( Ticker, TickPriceName, NumTicks, Reset )
      7. {
      8. Tickprice = GetRTDataForeign( TickPriceName, Ticker );
      9. PrevBid = Nz( StaticVarGet( "~Bid_" + TickPriceName ) );
      10. PrevAsk = Nz( StaticVarGet( "~Ask_" + TickPriceName ) );
      11. Bid = GetRTDataForeign( "Bid", Ticker );
      12. Ask = GetRTDataForeign( "Ask", Ticker );
      13. StaticVarSet( "~Bid_" + TickPriceName, Bid );
      14. StaticVarSet( "~Ask_" + TickPriceName, Ask );
      15. if ( Ask != PrevAsk OR Bid != PrevBid )
      16. {
      17. InIndicator = Status( "Action" ) == 1;
      18. StaticVarSet( "LastQuotePrice", TickPrice );
      19. TA = Null; // Clear Output array
      20. NumTicks = Min( BarCount - 2, NumTicks ); // Stay in array size
      21. for ( n = NumTicks; n >= 0; n-- )
      22. {
      23. T = StaticVarGet( TickPriceName + ( n - 1 ) );
      24. StaticVarSet( TickPriceName + n, T );
      25. TA[ BarCount - 1 - n] = T; // Fill return array
      26. }
      27. StaticVarSet( TickPriceName + 0, TickPrice );
      28. TA[BarCount-1] = TickPrice;
      29. }
      30. else
      31. {
      32. TA = Null; // Clear Output array
      33. NumTicks = Min( BarCount - 2, NumTicks ); // Stay in array size
      34. for ( n = NumTicks; n >= 0; n-- )
      35. {
      36. T = StaticVarGet( TickPriceName + n );
      37. TA[ BarCount - 1 - n] = T; // Fill return array
      38. }
      39. }
      40. return TA;
      41. }
      42. function TickArraysReset( TickPriceName )
      43. {
      44. global NumTicks;
      45. StaticVarSet( "Init"+TickPricename, 1 );
      46. for ( n = NumTicks; n >= 0; n-- ) StaticVarRemove( TickPriceName + n );
      47. }
      48. GraphXSpace = 20;
      49. TickerName = Name();
      50. Clear = ParamTrigger( "Clear Tick Charts", "CLEAR" );
      51. NumTicks = Param( "Tick-Array Length", 100, 10, 10000, 10 );
      52. TickPriceName = "Last";
      53. if ( IsNull( StaticVarGet( "Init"+TickPriceName ) ) OR Clear ) TickArraysReset( TickPriceName );
      54. TA1 = TickArray2( TickerName, TickPriceName, NumTicks, Clear);
      55. //Plot( TA1, TickPriceName, 1, 1);
      56. TickPriceName = "Bid";
      57. if ( IsNull( StaticVarGet( "Init"+TickPriceName ) ) OR Clear ) TickArraysReset( TickPriceName );
      58. TA2 = TickArray2( TickerName, TickPriceName, NumTicks, Clear);
      59. Plot( TA2, TickPriceName, 4, 1);
      60. TickPriceName = "Ask";
      61. if ( IsNull( StaticVarGet( "Init"+TickPriceName ) ) OR Clear ) TickArraysReset( TickPriceName );
      62. TA3 = TickArray2( TickerName, TickPriceName, NumTicks, Clear);
      63. Plot( TA3, TickPriceName, 5, 1);
      64. Tick = IIf(StrRight(Name(),3)=="JPY" OR StrLeft(Name(),3)=="XAG", 0.01, 0.0001);
      65. spread = (TA3-TA2)/Tick;
      66. _N(Title = StrFormat("{{NAME}} - tick chart in {{INTERVAL}} tf - {{DATE}} {{VALUES}}") + EncodeColor(colorLightGrey) + ", Spread: " + Prec(Spread, 1));
      67. _SECTION_END();
      Bilder
      • AB.png

        22,73 kB, 1.201×804, 290 mal angesehen
      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:


      Quellcode

      1. TimeFrameSet(inDaily);
      2. DC = Close;
      3. TimeFrameRestore();
      4. Plot( Close, "intraday last", colorRed );
      5. Plot( TimeFrameExpand( DC, inDaily, expandFirst), "daily last", colorBlue );


      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.

      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
      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.
      Die Wissenden reden nicht viel,die Redenden wissen nicht viel.

      klaus-m.blogspot.com/

      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).

      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.
      Die Wissenden reden nicht viel,die Redenden wissen nicht viel.

      klaus-m.blogspot.com/