joshsmi Posted September 1, 2010 Report Share Posted September 1, 2010 Ich habe hier zwei Codes, die für Forex geeignet sein sollen. Aber bei mir funktionieren die nicht.Könnte mal jemand bitte testen? _SECTION_BEGIN("P&F1"); symbol = Name(); ccy2= StrRight(symbol,3); Ccy1= StrLeft(symbol,3); decimals=IIf(ccy2 == "JPY" 10, 10000); Box = Param("Box", 10, 1, 100, 1)/decimals; Reverse = Param("Reverse",3, 1, 5, 1); j = 0; Lo[0] = Box * ceil(L[0]/Box) ; Hi[0] = Lo[0] + box; direction = 0; for( i = 1; i < BarCount; i++ ) { if(direction[j] == 0) { if(L[i] <= Lo[j] - Box) { Chg = Lo[j] - L[i]; n= floor(Chg/box); Lo[j] = Lo[j] - n* box; } else { if(H[i] >= Lo[j] + Reverse*Box) { Chg = H[i] - Lo[j]; n = floor(Chg/box); j++; direction[j] = 1; Hi[j] = Lo[j-1] + n* Box; Lo[j] = Lo[j-1] + Box; } } } else { if(H[i] >= Hi[j] + Box) { Chg = H[i] - Hi[j]; n= floor(Chg/box); Hi[j] = Hi[j] + n*box; } else { if(L[i] <= Hi[j] - Reverse * Box ) { Chg = Hi[j] - L[i]; n= floor(Chg/box); j++; direction[j] = 0; Lo[j] = Hi[j-1] - n*box; Hi[j] = Hi[j-1] - Box; } } } } delta = BarCount - j -1; direction = Ref(direction, - delta); Hi = Ref(Hi, -delta) + Box/2; Lo = Ref(Lo, -delta)- Box/2; Cl = IIf(direction == 1, Hi, Lo); Op = IIf(direction == 1, Cl - Box, Cl + Box); PlotOHLC(Op, Hi, Lo, Cl,"", colorLightYellow , stylePointAndFigure); _SECTION_END(); _SECTION_BEGIN("P&F2"); if(MarketID()==3) { GraphXSpace = 5; SetChartBkColor(ParamColor("BackGroundColor", colorCustom1)); gridColor = ParamColor("GridColor", ColorRGB( 37,64,90)); SetBarsRequired(100000,100000); symbol = Name(); ccy2= StrRight(symbol,3); Ccy1= StrLeft(symbol,3); decimals=IIf(ccy2 == "JPY" OR Ccy1 =="XAG",100, IIf( Ccy1 == "XAU" , 10, 10000)); format = IIf (ccy2 == "JPY"|| Ccy1 == "XAU", 8.2, 8.4); Box = Param("Box", 10, 1, 100, 1)/decimals; Reverse = Param("Reverse",3, 1, 5, 1); j = 0; Lo[0] = Box * ceil(L[0]/Box) ; Hi[0] = Lo[0] + box; direction = 0; for( i = 1; i < BarCount; i++ ) { if(direction[j] == 0) { if(L[i] <= Lo[j] - Box) { Chg = Lo[j] - L[i]; n= floor(Chg/box); Lo[j] = Lo[j] - n* box; } else { if(H[i] >= Lo[j] + Reverse*Box) { Chg = H[i] - Lo[j]; n = floor(Chg/box); j++; direction[j] = 1; Hi[j] = Lo[j-1] + n* Box; Lo[j] = Lo[j-1] + Box; } } } else { if(H[i] >= Hi[j] + Box) { Chg = H[i] - Hi[j]; n= floor(Chg/box); Hi[j] = Hi[j] + n*box; } else { if(L[i] <= Hi[j] - Reverse * Box ) { Chg = Hi[j] - L[i]; n= floor(Chg/box); j++; direction[j] = 0; Lo[j] = Hi[j-1] - n*box; Hi[j] = Hi[j-1] - Box; } } } } delta = BarCount - j -1; direction = Ref(direction, - delta); Hi = Ref(Hi, -delta) + Box/2; Lo = Ref(Lo, -delta)- Box/2; Cl = IIf(direction == 1, Hi, Lo); Op = IIf(direction == 1, Cl - Box, Cl + Box); PlotOHLC(Op, Hi, Lo, Cl,"", colorLightYellow , stylePointAndFigure|styleNoLabel); Lastc = LastValue( C); Last = Ref(Lastc, -(BarCount-1)); Plot( Last,"", colorRed,styleNoLine|styleDots, 0 , 0, 1); /* Grid Construction*/ PlotGridLines = ParamToggle("PlotdGrid", "No|Yes"); if (PlotGridLines) { SetChartOptions(1,0, 0); end = BarCount-1; bar = BarIndex(); begin = Status("firstvisiblebar"); ScreenHigh =LastValue( HHV(Hi, end - begin)) + box; ScreenLow =LastValue( LLV(Lo, end - begin))-box; shift = 5; gLine= LineArray( begin-shift, screenlow, end, screenLow, 0, 1); GridMin = screenLow; GridMax = screenhigh; step = round((GridMax - GridMin )/ box); Plot(LineArray( begin-shift, screenhigh, end, screenhigh, 0, 1), "", gridColor, styleLine|styleNoLabel|styleNoRescale, 0, 0 ,shift); for (n =0; n <step ; n++) { Plot( gLine + n*Box, "", gridColor, styleLine|styleNoLabel|styleNoRescale, 0, 0 ,shift); text = NumToStr( GridMin + n*Box+ 0.5*box, format); PlotText(text, end+2, GridMin + n*Box+ 0.25*box, colorLightYellow); } VerticalGrid = IIf ( bar >= begin-1, IIf(frac(bar/2) ==0, screenHigh, screenLow), Null); Plot (VerticalGrid, "", gridColor, styleStaircase|styleNoLabel|styleNoRescale, 0,0, 1); } else SetChartOptions(1,chartShowArrows|0); Title = "Interval: " + Interval(2) + "\n" + "Box : " + Box*decimals + " pip \n" + "ATR : " +NumToStr(LastValue(ATR(20) *decimals), 1.0) + " pip"; } else Title = "PF with Forex Settings is not Suitable for this market"; _SECTION_END(); Quote Link to comment Share on other sites More sharing options...
ibelieve Posted September 2, 2010 Report Share Posted September 2, 2010 im ersten fehlt hier wohl ein Komma decimals=IIf(ccy2 == "JPY" 10, 10000); decimals=IIf(ccy2 == "JPY" , 10, 10000); Verwendest Du einen Weißen Hintergrund solltest Du vielleicht auch die Farbe ändern.Aber verstehen tue ich den dann auch nicht. Beim Zweiten verstehe ich den Angezeigten Fehler auch nicht. Dann habe ich aber hier noch einen gefunden,aber keine Ahnung dazu weil ich mich seit Ewigkeiten nicht mehr mit P&F beschäftigt habe da ich nichts passendes in AmiBroker gefunden habe. ( "Point & Figure w Values adj" ); GraphXSpace = 5; SetChartBkColor( ParamColor( "BackGroundColor", colorBlack) ); //GraphColor = ParamColor("GarphColor",colorLightGrey); GridColor = ParamColor( "GridColor", colorLightGrey ); Scaling = ParamList( "Scaling Method", "Traditional|Percentage|AVG True Range" ); if ( scaling == "Traditional" ) Box = Param( "Box", 1, 0.2, 10, 0.1 ); else if ( scaling == "Percentage" ) Box = Param( "Box ", 1, 0.2, 10, 0.1 ) / 100 * LastValue( C ); else if ( scaling == "AVG True Range" ) Box = Param( "Box", 1, 0.3, 5, 0.1 ) * LastValue( ATR ( 20 ) ); shiftChart = 0; shiftLastClose = 1; shiftGrid = 7; shiftPriceAxis = 2; Reverse = Param( "Reverse", 3, 1, 5 ); j = 0; PFL[0] = Box * ceil( Low[0] / Box ) + Box; PFH[0] = Box * floor( High[0] / Box ); direction = 0; for ( i = 1; i < BarCount; i++ ) { if ( direction[j] == 0 ) { if ( Low[i] <= PFL[j] - Box ) { PFL[j] = Box * ceil( Low[i] / Box ); } else { if ( High[i] >= PFL[j] + Reverse*Box ) { j++; direction[j] = 1; PFH[j] = Box * floor( High[i] / Box ); PFL[j] = PFL[j - 1] + Box; } } } else { if ( High[i] >= PFH[j] + Box ) { PFH[j] = Box * floor( High[i] / Box ); } else { if ( Low[i] <= PFH[j] - Reverse * Box ) { j++; direction[j] = 0; PFH[j] = PFH[j - 1] - Box; PFL[j] = Box * ceil( Low[i] / Box ); } } } } delta = BarCount - j - 1; direction = Ref( direction, - delta ); Hi = Ref( PFH, -delta ) + Box / 2; Lo = Ref( PFL, -delta ) - Box / 2; Cl = IIf( direction == 1, Hi, Lo ); Op = IIf( direction == 1, Cl - Box, Cl + Box ); Graphcolor = IIf( direction == 1, ParamColor( "X_Color", colorBrightGreen ), ParamColor( "O_Color", colorRed ) ); PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor , stylePointAndFigure | styleNoLabel, 0, 0 , shiftChart ); PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor , stylePointAndFigure | styleNoLabel, 0, 0 , shiftChart ); Last = Ref( LastValue( C ), -( BarCount - 1 ) ); Plot( Last, "", colorRed, styleNoLine | styleDots, 0 , 0, shiftLastClose ); // selected value Value = IIf( direction > 0, SelectedValue( Hi ) - box / 2, SelectedValue( Lo ) + box / 2 ); //---------------------------------------------------------- // GRID CONSTRUCTION //---------------------------------------------------------- PlotGridLines = ParamToggle( "PlotdGrid", "Yes! |No", 1 ) ; if ( PlotGridLines ) { begin = SelectedValue( BarIndex() ); end = LastValue( BarIndex() ); period = end - begin + 1; if ( begin < end ) { ScreenHigh = LastValue( HHV( cl, period ) ); ScreenLow = LastValue( LLV( Cl, period ) ); top = LineArray( begin - shiftGrid, screenHigh, end, screenhigh, 0 , 1 ); Bot = LineArray( begin - shiftGrid, screenlow, end, screenLow, 0, 1 ); Plot( top, "", gridColor, styleLine | styleNoLabel , 0, 0, shiftGrid ); //Plot( bot, "", gridColor,styleLine|styleNoLabel, 0 , 0 , shiftGrid); VerticalGrid = IIf ( BarIndex() >= begin, IIf( direction == 1, screenHigh, screenLow ), Null ); Plot ( VerticalGrid, "", gridColor, styleStaircase | styleNoLabel, 0, 0, 1 ); format = 8.2; for ( n = LastValue( bot ); n < LastValue( top ) - 0.5*box; n = n + box ) { Plot( bot , "", gridColor, styleLine | styleNoLabel, 0, 0 , shiftGrid ); text = NumToStr( LastValue( bot ) + 0.5 * box, format ); xposition = BarCount + shiftPriceaxis; yPosition = LastValue( bot ) + 0.27 * box; PlotText( text, xPosition , yPosition, colorBlue ); bot = bot + box; Graphcolor = IIf( direction == 1, ParamColor( "X_Color", colorBrightGreen ), ParamColor( "O_Color", colorRed ) ); PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor , stylePointAndFigure | styleNoLabel, 0, 0 , shiftChart ); } } } //---------------------------------------------------------- // TITLE //---------------------------------------------------------- Title = "\n" + " Instrument : " + Name() + FullName() + "\n " + "Formula : " + " Point & Figure (High/Low Range)" + "\n " + "Box : " + NumToStr( Box, 4.4 ) + " " + "Reverse : " + NumToStr( Reverse, 2.0 ) + "\n " + "ATR : " + WriteVal( LastValue( ATR( 100 ) ), format = 4.4 ); _SECTION_END(); This code by signature "apfxtrader" is the best I have noticed. It has three scaling methods Traditional|Percentage|AVG True Range.He has also some ideas about exploration of P&F formations.Search his signature. Quote Link to comment Share on other sites More sharing options...
joshsmi Posted September 2, 2010 Author Report Share Posted September 2, 2010 Den Komma Fehler hatte ich gestern, nachdem ich bei Google die zwei AFl Codes gefunden hatte, auch noch selbst korrigiert, hatte aber keine Lust mehr mich hier einzuloggen, auch weil ich darauf vertraute, dass noch andere schlaue Kommafinder existieren. :D Beim zweiten habe ich auch keine Ahnung, was das bedeuten soll.Danke für die dritte Variante. Die müßte man für Devisen auch noch umändern, wie es aussieht. Bin selbst ansonsten kein P&F Spezialist und habe mich damit auch noch nie wirklich beschäftigt. Quote Link to comment Share on other sites More sharing options...
ibelieve Posted September 2, 2010 Report Share Posted September 2, 2010 Die müßte man für Devisen auch noch umändern, wie es aussieht. Mit den Einstellungen bekommst Du zumindest ein Bild hin. Aber ein wirklichen einfach zu handhabenden P&F Chart für AmiBroker habe ich noch nie gesehen. Quote Link to comment Share on other sites More sharing options...
joshsmi Posted September 2, 2010 Author Report Share Posted September 2, 2010 Ah, deiner scheint ein korrigierter zu sein, weil ich hatte nur auf den Namen geachtet "Point & Figure w Values adj". Den hatte ich nämlich auch schon aus dem Netz probiert, mußte ihn aber ändern. Deiner mit dem selben Namen "Point & Figure w Values adj" funktionierte gleich. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.