May 22 2007, 13:48
Post
|
|
|
|
Pour Prorealtime (non testé)
CODE Rem ======= pour passage en short ============= EntreeShort = 0 EL = 0 CoursIsLower = 0 DivNeg = 0 iCycle = 0 Rem === le SAR est au dessus du dernier cours ==== IF SAR[0.06,0.08,0.15] > Close Then CoursIsLower = 1 EndIF Rem ==== Recherche de divergences sur le repulse, comparées à la MM7 lissée ==== myWilderMM7 = wilderAverage[7](Close) myWilderRepulse7 = wilderAverage[7](Repulse[3](close)) dMM7 = (myWilderMM7 - myWilderMM7[7]) / 7 dRepulse7 = (myWilderRepulse7 - myWilderRepulse7[7] ) / 7 IF dRepulse7 < 0 And dMM7 > 0 Then DivNeg = 1 EndIf myCycle = wilderAverage[3]( Cycle(Close)) Rem Cycle décroissant If myCycle[1] > myCycle Then iCycle = 1 Endif if iCycle And DivNeg and coursIsLower Then EL = 1 Endif Return EL As "Go Short" source : http://www.pro-at.com/forums-bourse/bourse...ce-1-24174.html Voir aussi ici : http://www.traders.com/Documentation/FEEDb...ips.html#wealth CODE This script requires a new study that we created specifically for this article. The "ZigZagSer" study plots zigzag lines for any price or indicator, using the specified reversal amount. Save the following script in the Wealth-Lab Developer "Studies" folder, and name it "ZigZagSer." [indent] procedure ZigZagSer( Series, Pane: integer; Reversal: float ); begin var LastPeak, LastTrough: float; var Bar, LastPeakBar, LastTroughBar: integer; LastPeak := 0.0; LastTrough := 0.0; LastPeakBar := 0; LastTroughBar := 0; for Bar := 0 to BarCount() - 1 do begin if Peak( Bar, Series, Reversal ) <> LastPeak then begin LastPeak := Peak( Bar, Series, Reversal ); LastPeakBar := PeakBar( Bar, Series, Reversal ); DrawLine( LastTroughBar, LastTrough, LastPeakBar, LastPeak, Pane, 009, #Thin ); end; if Trough( Bar, Series, Reversal ) <> LastTrough then begin LastTrough := Trough( Bar, Series, Reversal ); LastTroughBar := TroughBar( Bar, Series, Reversal ); DrawLine( LastPeakBar, LastPeak, LastTroughBar, LastTrough, Pane, 900, #Thin ); end; end; end; [/indent] You can now run the following Wealth-Lab script to perform the divergence analysis on any stock or future: {$I 'ZigZagSer'} { Script variables } var Bar, M, MF, MPane, MFPane, C, CPane, n: integer; var pb1, pb2, mb1, mb2, lastDrawn: integer; var p1, p2, m1, m2: float; { Function to return the sign of a number } function Sign( x: float ): integer; begin if x >= 0 then Result := 1 else Result := -1; end; { Momentum Analysis Period } const Period = 30; { Reversal values to detect peaks/troughs } const PriceReversal = 7.0; const MReversal = 2.0; const MFReversal = 8.0; { Obtain Mom and fracMom, and get correlation } M := MomentumSeries( #Close, Period ); MF := ROCSeries( #Close, Period ); C := CreateSeries; for Bar := 100 to BarCount - 1 do @C[Bar] := Correlation( M, MF, Bar - 99, Bar ); { Plot them all } MPane := CreatePane( 100, false, true ); MFPane := CreatePane( 100, false, true ); CPane := CreatePane( 100, false, true ); HideVolume; PlotSeriesLabel( M, MPane, #Blue, #Thick, 'Mom(30)' ); PlotSeriesLabel( MF, MFPane, #Red, #Thick, 'fracMom(30)' ); PlotSeriesLabel( C, CPane, #Green, #Thick, 'Correlation(100)' ); { Plot Zig-Zags on Price and Momentum indicators } ZigZagSer( #Close, 0, 7 ); SetPeakTroughMode( #AsPoint ); ZigZagSer( M, MPane, 2 ); ZigZagSer( MF, MFPane, 8 ); { Perform Divergence Analysis } for Bar := 100 to BarCount - 1 do begin { Divergence between Price and Mom - tops } SetPeakTroughMode( #AsPercent ); pb1 := PeakBar( Bar, #Close, 7 ); pb2 := PeakBar( pb1, #Close, 7 ); p1 := Peak( Bar, #Close, 7 ); p2 := Peak( pb1, #Close, 7 ); SetPeakTroughMode( #AsPoint ); mb1 := PeakBar( Bar, M, 2 ); mb2 := PeakBar( mb1, M, 2 ); m1 := Peak( Bar, M, 2 ); m2 := Peak( mb1, M, 2 ); if ( Abs( pb1 - mb1 ) < 4 ) and ( Abs( pb2 - mb2 ) < 4 ) then begin if Sign( p1 - p2 ) <> Sign( m1 - m2 ) then begin if pb1 <> lastDrawn then begin lastDrawn := pb1; DrawLine( pb1, p1 * 1.01, pb2, p2 * 1.01, 0, #Blue, #Thick ); DrawLine( mb1, m1 + 1, mb2, m2 + 1, MPane, #Blue, #Thick ); for n := pb2 to pb1 do SetPaneBackgroundColor( n, MPane, #RedBkg ); end; end; end; { Divergence between Price and fracMom - bottoms } SetPeakTroughMode( #AsPercent ); pb1 := TroughBar( Bar, #Close, 7 ); pb2 := TroughBar( pb1, #Close, 7 ); p1 := Trough( Bar, #Close, 7 ); p2 := Trough( pb1, #Close, 7 ); SetPeakTroughMode( #AsPoint ); mb1 := TroughBar( Bar, MF, 8 ); mb2 := TroughBar( mb1, MF, 8 ); m1 := Trough( Bar, MF, 8 ); m2 := Trough( mb1, MF, 8 ); if ( Abs( pb1 - mb1 ) < 4 ) and ( Abs( pb2 - mb2 ) < 4 ) then begin if Sign( p1 - p2 ) <> Sign( m1 - m2 ) then begin if pb1 <> lastDrawn then begin lastDrawn := pb1; DrawLine( pb1, p1 * 0.99, pb2, p2 * 0.99, 0, #Red, #Thick ); DrawLine( mb1, m1 - 2, mb2, m2 - 2, MFPane, #Red, #Thick ); for n := pb2 to pb1 do SetPaneBackgroundColor( n, MFPane, #RedBkg ); end; end; end; end; |
May 22 2007, 15:09
Post
|
|
|
|
Merci beaucoup Arnaud
|
|
Similar Topics
| Topic Title | Replies | Topic Starter | Views | Last Action | |||
|---|---|---|---|---|---|---|---|
![]() |
2 | kiki83 | 2,098 | 20th December 2005 - 20:55 Last post by: kiki83 |
|||
![]() |
0 | kiki83 | 1,769 | 20th December 2005 - 22:33 Last post by: kiki83 |
|||
![]() |
2 | kiki83 | 2,037 | 21st December 2005 - 7:50 Last post by: kiki83 |
|||
![]() |
8 | danu | 3,145 | 23rd January 2006 - 18:16 Last post by: Maxime |
|||
![]() |
9 | Goldy | 4,267 | 27th January 2006 - 20:24 Last post by: Goldy |
|||
| Lo-Fi Version: Détection Auto Des Divergences - Forex Forum |



May 22 2007, 10:50
