Grupp: Huvudforum

Scanning efter hammare i AmiBroker?

0
Ogilla!
6
Gilla!
2005-03-09 19:02:52

Är det någon som skulle kunna skriva ihop en kod till AmiBroker för scanning efter hammare (och omvända hammare el. Shooting stars som ju är en mer internationellt gångbar beteckning)?

Tanken är att man skulle kunna göra en auto-scan där man fårAmibrokern att gå igenom alla aktier man har i en databas och får en lista över de objekt som möter kriterierna.

Eftersom man letar efter hammare som omslag vid nedgångar (eller kanske som slutet av flaggkonsolideringar) och omvända hammare som omslag vid uppgångar så bör ju en parameter vara att det måste ha varit x antal dagars/barers nedgång (gärna som en parameter man själv kan välja antal dagar) för att AmiBrokern ska lista aktien - dvs hammarn ska sättas som den lägsta punkten av x dagar. Och tvärtom för omvända hammare då.

Hammarens utseende vore ju också kanon om man skulle kunna lägga som en parameter - där man kan välja hur stor del av baren som utformas av själva hammar-biten-, men om inte detta är möjligt så skulle man ju kunna tänka sig att koden utformas statiskt som så att slagytan på hammaren -om man får kalla den det - inte får vara större än, säg, 40% av den totala prisbaren.

Om det är någon som skulle kunna knåpa ihop en sådan kod så vore det helt enkelt kanon. Jag lägger frågan i huvudforumet eftersom Amibroker-gruppen hipp som happ slutade att existera.

Om ni har några frågor - typ vad jag menar med slagytan på hammaren kanske...men det tror jag nog att de förstår i och för sig - åtminstone de som har såpass stor kunskap att de klarar av att skriva koder i AmiBroker! och det är ju i första hand dessa personer jag vänder mig till i detta inlägg- så är det bara att meddela dessa. :-)

mvh
 

 

Mathias

0
Ogilla!
2
Gilla!
2005-03-09 19:08:49

...koden är tänkt att vara ett hjälpmedel bara så att man får en "grovsortering" över aktier som man kan scanna lite närmare så den kanske inte behöver vara så jätteavancerad.  

Mathias

0
Ogilla!
6
Gilla!
2005-03-09 19:13:01
0
Ogilla!
2
Gilla!
2005-03-09 19:25:04

#2 Problemet med den koden är att jag får samma felmeddelande som de två andra som gjort inlägg på den sajten. Jag vet inte om det är jag som använder den på fel sätt eller om det är koden som är felskriven. Och författaren har ännu inte kommenterat problematiken.

mvh

Mathias

0
Ogilla!
8
Gilla!
2005-03-09 19:43:37

den här funkar ,,sen är det väl bara att ändra kriterierna som du vill.

http://www.amibroker.com/library/detail.php?id=26

mvh PQ.. 

0
Ogilla!
2
Gilla!
2005-03-09 20:24:45

#4 Den koden funkade.

Dock så finns det en del kritier som jag inte vill ha med (bland annat en Stochastics-sortering - dvs stochasticskriterier måste vara uppfyllda för att den ska leta). Dessutom finns inte den "omvända hammaren" eller Shooting Star som den ju mera populärt kallas - med i den här koden. Så den är inte helt idealisk enligt mina personliga önskemål.

mvh

Mathias

0
Ogilla!
5
Gilla!
2005-03-09 20:30:27

Visst är hammare samma sak som "1 day reversal"?

Jag gjorde koder för alla dessa gerillarevarsals för ett tag sedan.
Nu har jag försökt att göra om den så att den ska passa till skanningen. Jag ska kolla sen om den fungerar.





// START One Day Reversal+
Range=(H-L);
AverageRange=(((Ref(H,-1)-Ref(L,-1))+(Ref(H,-2)-Ref(L,-2)))/2);

Range > AverageRange AND L < Ref(L,-1) AND C < Ref(C,-1) AND H < Ref(H,-1) AND C > L + (Range * 0.8)

//Vill du ha kravet att det ska vara minst 1 dags rekyl före setupen så ta bort nedanstående tecken "//"
//AND Ref(L,-1) <= Ref(L,-2)

//Vill du att den ska skanna efter hammers som ha gett köpsignal (När HIGH har gått över hammerstapelns HIGH), så ta bort
nedanstående tecken "//"
//AND Ref(H,1)>H

//Obs... lägg till ett ; sist i formeln

// END One Day Reversal+


// START One Day Reversal-
Range=(H-L);
AverageRange=(((Ref(H,-1)-Ref(L,-1))+(Ref(H,-2)-Ref(L,-2)))/2);

Range > AverageRange AND H > Ref(H,-1) AND C > Ref(C,-1) AND L > Ref(L,-1) AND C < L + (Range * 0.2)

//Vill du ha kravet att det ska vara minst 1 dags rekyl före setupen så ta bort nedanstående tecken "//"
//AND Ref(H,-1) >= Ref(H,-2)

//Vill du att den ska skanna efter hammers som ha gett säljsignal, så ta bort nedanstående tecken "//"
//AND Ref(L,1)

//Obs... lägg till ett ; sist i formeln

// END One Day Reversal- Visst är hammare samma sak som "1 day reversal"?

Jag gjorde koder för alla dessa gerillarevarsals för ett tag sedan.
Nu har jag försökt att göra om den så att den ska passa till skanningen. Jag ska kolla sen om den fungerar.





Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


0
Ogilla!
1
Gilla!
2005-03-09 20:31:28

XOM idag behöver man inte scanna efter ;-)) 

0
Ogilla!
0
Gilla!
2005-03-09 20:54:47

#6 Tack Biffen. Ska kolla den lite senare. Ska bara kolla på Tråk-Juve först och hoppas att dom flyger all världens väg från Champions League! Go Go Gravesen!

#7 Den ser ut att kunna bli rejäl!

Mathias

0
Ogilla!
1
Gilla!
2005-03-09 20:57:51

8

Merril Lynch fick för sig att de skulle sälja 25 miljoner aktier när den stod på dagshögsta, min stop for all världens väg :)

0
Ogilla!
6
Gilla!
2005-03-10 03:34:33

#8

Jag har testat nu. Skanningen fungerar. Verkar det vara hammers som den hittar?

Jag såg att man måste lägga in "Buy" och "Sell" när man skannar. Så nu har jag gjort det.

// START One Day Reversal+

Range=(H-L);
AverageRange=(((Ref(H,-1)-Ref(L,-1))+(Ref(H,-2)-Ref(L,-2)))/2);

Buy = Range > AverageRange AND L < Ref(L,-1) AND C < Ref(C,-1) AND H < Ref(H,-1) AND C > L + (Range * 0.8)

//Minst 1 dags rekyl före setupen
AND Ref(L,-1) <= Ref(L,-2);

// END One Day Reversal+

// START One Day Reversal-

Range=(H-L);
AverageRange=(((Ref(H,-1)-Ref(L,-1))+(Ref(H,-2)-Ref(L,-2)))/2);

Sell = Range > AverageRange AND H > Ref(H,-1) AND C > Ref(C,-1) AND L > Ref(L,-1) AND C < L + (Range * 0.2)

//Minst 1 dags rekyl före setupen
AND Ref(H,-1) >= Ref(H,-2);

// END One Day Reversal-

Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


0
Ogilla!
4
Gilla!
2005-03-10 03:39:44

Jag misstänker att man även måste lägga in i formeln var open ska vara...

Det har jag inte gjort, men det är lätt att fixa.

Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


0
Ogilla!
5
Gilla!
2005-03-10 03:51:50

Jag sökte lite bland formerna på Amibrokers AFL bibliotek.

Hittade en formel för flera candleformationer. Jag gjorde om den så att det bara är "Hammer" och "inverted hammer"

Det ser helt rätt ut när man skannar efter signalerna.

//Hammer (Bullish)
Buy=(((H-L)>3*(O-C)) AND
((C-L)/(.001+H-L)>0.6) AND ((O-L)/(.001+H-L)>0.6));

//Inverted Hammer (Bearish)
Sell=(((H-L)>3*(O-C))
AND ((H-C)/(.001+H-L)>0.6) AND ((H-O)/(.001+H-L)>0.6));


 

Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


0
Ogilla!
4
Gilla!
2005-03-10 04:02:01

Jag trodde att "Inverted hammer" och "Shooting star" var exakt samma sak fast med olika namn. Men enligt koderna jag hittade så är det inte samma.

Så här blir koden för "Shooting star"

//Shooting Star (Bearish)
Sell=(((H-L)>4*(O-C)) AND ((H-C)/(.001+H-L)>= 0.75) AND ((H-O)/(.001+H-L)>= 0.75));

Det är alltså högre krav på Shooting Star. Men om du använder koden för Inverted Hammer så hittar den även alla Shooting Star.

Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


Inlägget är redigerat av författaren.

0
Ogilla!
6
Gilla!
2005-03-10 04:13:02

Nu hittade jag svaret på vad skillnaden är mellan dessa 2 :-)

Candlestick Dictionary

Inverted Hammer

A one day bullish reversal pattern. In a downtrend, the open is lower, then it trades higher, but closes near its open, therefore looking like an inverted lollipop.

 

Shooting Star

A single day pattern that can appear in an uptrend. It opens higher, trades much higher, then closes near its open. It looks just like the Inverted Hammer except that it is bearish.

 

Med andra ord så ska du använda denna formel:

//Hammer (Bullish)
Buy=(((H-L)>3*(O-C)) AND ((C-L)/(.001+H-L)>0.6) AND ((O-L)/(.001+H-L)>0.6));

//Shooting Star (Bearish)
Sell=(((H-L)>4*(O-C)) AND ((H-C)/(.001+H-L)>= 0.75) AND ((H-O)/(.001+H-L)>= 0.75));









Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


0
Ogilla!
6
Gilla!
2005-03-10 04:22:24

#0 Eftersom man letar efter hammare som omslag vid nedgångar (eller kanske som slutet av flaggkonsolideringar) och omvända hammare som omslag vid uppgångar så bör ju en parameter vara att det måste ha varit x antal dagars/barers nedgång (gärna som en parameter man själv kan välja antal dagar)

Då är det bara kvar att fixa till någon parameterfunktion för detta (om det går). Annars får jag fixa så att det tex måste vara 2 dagars nedgång före Hammaren och att man lätt kan gå in i formeln och ändra till tex 1 eller 3 dagar.

Jag har lyckats lära mig parameterfunktionen idag. Så det finns en stor risk att jag inte klarar uppdraget ;-)

Mvh/Magnus

Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


0
Ogilla!
5
Gilla!
2005-03-10 04:43:22
Ladda ned

Jag har ej försökt fixa till parameterfunktionen än. Men jag har fixat till ett rekylkrav nu.

Tyvärr så försvinner en del av koden när jag klistrar in den här, så jag bifogar en text-fil.

Mvh/Magnus

Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


0
Ogilla!
0
Gilla!
2005-03-10 08:33:45

biffen tog visst nattpasset :-) 

0
Ogilla!
3
Gilla!
2005-03-10 14:44:14

#17 Hehe... Och jag som var trött när jag slutade jobbet klockan 24.00 ;-)

Jag skulle bara snabbgöra en formel åt en kille och sen skulle jag bara testa om min formel i #6 fungerade. Men så kom hjärnan upp i högvarv och jag fastnade :-)

Hmmm... helt plötsligt känner jag mig som Alfons Åberg. Har ni läst boken (eller sett den tecknade filmen) "Jag ska bara"? :-)

Mvh/Magnus

Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


0
Ogilla!
2
Gilla!
2005-03-10 15:03:29

#16 Har lagt till parametergrejs för att kunna välja max 3 dagars-rekyl... Inte så snyggt kanske, men det var det bästa jag kom på...  för att det ska bli rätt med 3-dagarsrekylen måste 2-dagarsrekyl vara vald...

Edit: Koden nedan funkar inte, kommer aldrig bli några signaler om p2 el p3 är noll....

p3=Param("3dagsrekyl 1/0 Ja/nej",1,0,1,1);
p2=Param("2dagsrekyl 1/0 Ja/nej",1,0,1,1);

//Hammer (Bullish)
Buy=(((H-L)>3*(O-C)) AND
((C-L)/(.001+H-L)>0.6) AND
((O-L)/(.001+H-L)>0.6))
//1 dag rekyl
AND H<Ref(H,-1)
//2 dagar rekyl
AND (Ref(H,-1)<Ref(H,-2))*p2
//3 dagar rekyl
AND (Ref(H,-2)<Ref(H,-3))*p3;


//Shooting Star (Bearish)
Sell=(((H-L)>4*(O-C)) AND
((H-C)/(.001+H-L)>= 0.75) AND
((H-O)/(.001+H-L)>= 0.75))
//1 dag rekyl
AND H>Ref(H,-1)
//2 dagar rekyl
AND (Ref(H,-1)>Ref(H,-2))*p2
//3 dagar rekyl
AND (Ref(H,-2)>Ref(H,-3))*p3;

Inlägget är redigerat av författaren.

0
Ogilla!
0
Gilla!
2005-03-10 15:11:25

Biffen kör hårt! Tack Biffen. Jag ska testa dina koder så fort jag får tid.

mvh 

Mathias

0
Ogilla!
2
Gilla!
2005-03-11 21:27:23

Jag har inte hunnit kolla på Stefanders lösning än. Men idag när jag damsugade så kom jag helt plötsligt på en lösning.

Jag har inte tid att skriva koden än (min sambo blir så sur på mig när jag sitter framför datorn på helgen), så jag får fixa det på måndag.

Mvh/Magnus

Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


0
Ogilla!
4
Gilla!
2005-03-12 15:12:30

Så där ja... Nu fick jag till det :-)

Här är explorern med parametrar för rekyl 0-5dagar. (Hoppas inget tecken försvann nu när jag klistade in formeln)

P1=Param("Rekyldagar",2,0,5,1);

//Rekyl för Hammer
Rekyl1a=LRekyl2a=Ref(L,-1)Rekyl3a=Ref(L,-2)Rekyl4a=Ref(L,-3)Rekyl5a=Ref(L,-4)
Cond1a=IIf(P1==1,Rekyl1a,1);
Cond2a=IIf(P1==2,Rekyl1a AND Rekyl2a,Cond1a);
Cond3a=IIf(P1==3,Rekyl1a AND Rekyl2a AND Rekyl3a,Cond2a);
Cond4a=IIf(P1==4,Rekyl1a AND Rekyl2a AND Rekyl3a AND Rekyl4a, Cond3a);
Cond5a=IIf(P1==5,Rekyl1a AND Rekyl2a AND Rekyl3a AND Rekyl4a AND Rekyl5a,Cond4a);

//Hammer (Bullish)
Buy = (((H-L)>3*(O-C)) AND
((C-L)/(.001+H-L)>0.6) AND
((O-L)/(.001+H-L)>0.6))
AND cond5a;

//Rekyl för Shooting Star
Rekyl1b=H>Ref(H,-1);
Rekyl2b=Ref(H,-1)>Ref(H,-2);
Rekyl3b=Ref(H,-2)>Ref(H,-3);
Rekyl4b=Ref(H,-3)>Ref(H,-4);
Rekyl5b=Ref(H,-4)>Ref(H,-5);

Cond1b=IIf(P1==1,Rekyl1b,1);
Cond2b=IIf(P1==2,Rekyl1b AND Rekyl2b,Cond1b);
Cond3b=IIf(P1==3,Rekyl1b AND Rekyl2b AND Rekyl3b,Cond2b);
Cond4b=IIf(P1==4,Rekyl1b AND Rekyl2b AND Rekyl3b AND Rekyl4b, Cond3b);
Cond5b=IIf(P1==5,Rekyl1b AND Rekyl2b AND Rekyl3b AND Rekyl4b AND Rekyl5b,Cond4b);

//Shooting Star (Bearish)
Sell=(((H-L)>4*(O-C)) AND
((H-C)/(.001+H-L)>= 0.75) AND
((H-O)/(.001+H-L)>= 0.75))
AND cond5b;

Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


0
Ogilla!
4
Gilla!
2005-03-12 15:17:47

Jag gjorde även en indikator med samma parameter.

La även in lite annat: Staplarna färgade vid upp/nedtrend. MA20, MA50 och MA200

Prickarna betyder att det är obekräftade signaler och pilarna betyder att det är bekräftade signaler.

P1=Param("Rekyl",2,0,5,1);

//Rekyl för Hammer
Rekyl1a=LRekyl2a=Ref(L,-1)Rekyl3a=Ref(L,-2)Rekyl4a=Ref(L,-3)Rekyl5a=Ref(L,-4)
Cond1a=IIf(P1==1,Rekyl1a,1);
Cond2a=IIf(P1==2,Rekyl1a AND Rekyl2a,Cond1a);
Cond3a=IIf(P1==3,Rekyl1a AND Rekyl2a AND Rekyl3a,Cond2a);
Cond4a=IIf(P1==4,Rekyl1a AND Rekyl2a AND Rekyl3a AND Rekyl4a, Cond3a);
Cond5a=IIf(P1==5,Rekyl1a AND Rekyl2a AND Rekyl3a AND Rekyl4a AND Rekyl5a,Cond4a);

//Hammer (Bullish)
Hammer = (((H-L)>3*(O-C)) AND
((C-L)/(.001+H-L)>0.6) AND
((O-L)/(.001+H-L)>0.6))
AND cond5a;

PlotShapes( shapeSmallCircle*Hammer, colorRed,0,L,-20);
// Bekräftad signal
HammerBuy = Hammer AND Ref(H,1)>H;
PlotShapes( shapeUpArrow*HammerBuy, colorRed,0,L,-20);

//Rekyl för Shooting Star
Rekyl1b=H>Ref(H,-1);
Rekyl2b=Ref(H,-1)>Ref(H,-2);
Rekyl3b=Ref(H,-2)>Ref(H,-3);
Rekyl4b=Ref(H,-3)>Ref(H,-4);
Rekyl5b=Ref(H,-4)>Ref(H,-5);

Cond1b=IIf(P1==1,Rekyl1b,1);
Cond2b=IIf(P1==2,Rekyl1b AND Rekyl2b,Cond1b);
Cond3b=IIf(P1==3,Rekyl1b AND Rekyl2b AND Rekyl3b,Cond2b);
Cond4b=IIf(P1==4,Rekyl1b AND Rekyl2b AND Rekyl3b AND Rekyl4b, Cond3b);
Cond5b=IIf(P1==5,Rekyl1b AND Rekyl2b AND Rekyl3b AND Rekyl4b AND Rekyl5b,Cond4b);

//Shooting Star (Bearish)
Shooting=(((H-L)>4*(O-C)) AND
((H-C)/(.001+H-L)>= 0.75) AND
((H-O)/(.001+H-L)>= 0.75))
AND cond5b;

PlotShapes( shapeSmallCircle*Shooting, colorRed,0,H,20);
// Bekräftad signal
ShootingSell = Shooting AND Ref(L,1)PlotShapes( shapeDownArrow*ShootingSell, colorRed,0,H,-20);

// Trendfilter 4
BullishLutning= MA(C,20) > Ref(MA(C,20),-1) AND MA(C,50) > Ref(MA(C,50),-1);
BearishLutning= MA(C,20) < Ref(MA(C,20),-1) AND MA(C,50) < Ref(MA(C,50),-1);
BullishFilter= MA(C,20) > MA(C,50) AND BullishLutning;
BearishFilter= MA(C,20) < MA(C,50) AND BearishLutning;
ADXFilter= ADX(14) >= 18;

// define color
color = IIf( BullishFilter AND ADXFilter, colorGreen, IIf( BearishFilter AND ADXFilter, colorRed, colorBlack));

// Plot basic candle chart
PlotOHLC(Open, High, Low, Close,
"\n"+"O = " + O + "\n"+"H = "+ H + "\n"+"L = " + L
+ "\n"+"C = " + C,
color, styleCandle);

// Förskjut grafen neråt/uppåt
Plot (H*1.03,"",colorBlack,styleNoLine|styleNoLabel);
Plot (L*0.97,"",colorBlack,styleNoLine|styleNoLabel);

// Indicators
Plot(MA(C,20),"MA20",colorBlue,styleLine);
Plot(MA(C,50),"MA50",colorYellow,styleLine);
Plot(MA(C,200),"MA200",colorRed,styleLine);

// Title
Title= EncodeColor(colorBlack)+FullName()+" " +Name()+" "+Date()+" "+"Hammer & Shooting Star"
+" "+"O = " + O + " "+"H = "+ H + " "+"L = " + L + " "+"C = " + C + "\n";

 

Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


Inlägget är redigerat av författaren.

0
Ogilla!
1
Gilla!
2005-03-12 15:25:15

dubbelinlägg


Inlägget är redigerat av författaren.

0
Ogilla!
1
Gilla!
2005-03-13 18:42:03

Tyvärr så försvann det en del tecken när jag klistrade in koden i #22 och i #23

Den rätta koden ligger i denna länk (inlägg #4 och #5)

Mvh/Magnus

Gå gärna med i min grupp
Gerilla och Swingtrading


Ta del av mina aktielänkar


Upp till toppen
Kommentera

 

Tjäna mer pengar på dina aktieaffärer

Bli medlem på Aktieguiden gratis på 30 sekunder.

Som medlem på Aktieguiden kan du:

  • Läsa träffsäkra tips och analyser från duktiga traders
  • Ställa frågor till och chatta med aktieproffs
  • Få gratis tillgång till en över miljon inlägg aktiehandel
  • Skapa egna privata forumgrupper

För att få delta i diskussionerna på Aktieguiden krävs att du verifierar ditt mobilnummer. Läs gärna mer om varför verifiering behövs.

 

Redan medlem? Klicka här för att logga in.