Två dagar som jag testar mot är 2014-10-16 och 2015-01-15, sänker jag kraven för en hammer så blir det signal lite andra dagar, en del korrekta, en del helt felaktiga. Kan det vara kursdatan/avslut som blir felaktigt för vissa dagar när man kör simulatorn men som visas rätt i grafen? Isåfall är det ju svårt att lita på simuleringarna.
Allmänt meddelande
Collapse
No announcement yet.
Felaktiga signaler vid simulering.
Collapse
X
-
Det intressanta är att se hur dessa två dagar ser ut vid den tidpunkt då du testar villkoren för hammer. Om det är runt 17:24 så är det ju 6 minuter kvar tills index har fullbordat dagsstapeln, och då är det inte längre lika säkert att du har en hammer. Det är lätt att låta sig luras av dagsstaplarnas utseende i efterhand. Men kolla intradaydatat för den dagen och se om det verkligen är en hammer vid tiden du testar.
Comment
-
Jo, bägge dessa dagar är hammers när jag testar. Har nu för typ 5e gången raderat min kursdatabas och satt på nedladdning 3000dgr bakåt.
Menar du på allvar Rikard att man kan lita på O,L,H på dagens stapel i dagsupplösning? Vilket tror du fungerar bäst? Ett script utan intradagsprefix som helt enkelt hämtar t.ex. O eller att använda sig av extraobjekt i dagsupplösning och hämta via cmpref(O,0,A)?
Jag känner att jag får väldigt konstiga resultat när jag gör på bägge sätten. Därför försöker jag själv via globala lagra denna informationen. Men det fungerar inte riktigt bra det heller. Kan det vara kursdatan som ställer till det?
Kan inte någon testa den uträkningen av hammer jag la ut och se om ni får signal på ovanstående datum, och dessutom INTE signal på dagar som inte är hammers.
Nu är det inte bara för hammers jag använder mig av dessa, men jag använder mig av hammern för att kontrollera så att värdena fungerar, annars är de ju fel i andra sammanhang där de används också.
/Erik
Comment
-
Har nu hämtat hem ny kursdata. Om man däremot kollar på 2015-01-15 så ser den ganska kass ut på slutet av dagen. Kan det vara det som gör att mina script inte ger signal? Det är ju egentligen ganska tråkigt att man inte kan lita på simuleringarna. Man får ju starta en modell nästan i blindo och hoppas det fungerar live. När man då kör lite längre modeller så kan det ju ta åratal innan man vet om det fungerar eller inte. /Erik
Comment
-
Ursprungligen postat av Rikard Nilsson Visa inläggDet kan ju vara knas med datat den dagen helt enkelt. I så fall förklarar det ju varför dina script inte ger signal.
Kan inte du testa med den koden jag bifogade för några meddelande sedan att göra en enkel ordermodell som köper vid stängning på hammer och sedan säljer typ efter 20p uppgång eller något bara så att den kommer ur, sedan simulerar du några år bakåt och se hur signalerna kommer. Eventuellt kanske du vill skriva en egen hammerberäknare så som du anser att det borde fungera.
/Erik
Comment
-
Du kan logga kursen som används genom att skriva ett litet script som returnerar värdet i cellen du lagrar open i, och välja in det scriptet som dn egen kolumn i Analyzern. Då får du upp den kolumnen i resultatlistan och kan se vilken kurs det är vid varje signaltillfälle.
Comment
-
Du kan logga som Rikard skriver. Det är bara då du vet exakt vad som händer. Cellerna som skriver till hi och low kanske också behöver en synktest? Generellt kan det bli strul då den nya dagen ännu inte fått någon insamling och close by default får gårdagenskurs.
Comment
-
Jag har också en modell som jag körde ett tag och sedan avbröt då kurserna inte blir synkade. Tänkte ta tag i detta. Jag har modifierat scriptet i tidigare inlägg. Jag har inte gjort några tester. E-rik, du kan kolla om det fungerar för dig.
hammer_längdkrav:=1.5
hammer_öppn:=2.7
hammer_stäng:=2.7
i1(
{Hämtar öppningskursen och skriver i Gvar129}
intra_igår=find(gt(frac(date()),0.5),200,c,1)
öpp_dagsstapel1=and(not(eqv(cmpref(o,0,A),intra_igår)),eqv(int(d),int(date())))
öpp_dagsstapel2=and(öpp_dagsstapel1,gt(int(d),int(GetGvar(130))))
SetGvarIf(d,130,öpp_dagsstapel2) {används för att bara ge ett värde}
SetGvarIf(c,129,öpp_dagsstapel2)
Sättvärden=and(eqv(int(d),int(GetGvar(130))),eqv(int(d),int(date())))
{Beräknar dagshögsta}
dagshögsta=or(öpp_dagsstapel2,and(Sättvärden,gt(c,GetGvar(137))))
SetGvarIf(c,137,dagshögsta)
{Beräknar dagslägsta}
dagslägsta=or(öpp_dagsstapel2,and(Sättvärden,lt(c,GetGvar(138))))
SetGvarIf(c,138,dagslägsta)
{Beräknar ifall vi har en hammer-formation}
hammer_higho=gt(GETGvar(129),sub(dagshögsta,div(sub(dagshögsta,dagslägsta),hammer_öppn)))
hammer_highc=gt(cmpref(c,0,a),sub(dagshögsta,div(sub(dagshögsta,dagslägsta),hammer_stäng)))
hammer_ok=and(hammer_higho,and(hammer_highc,gt(div(sub(dagshögsta,dagslägsta),dagshögsta),div(hammer_längdkrav,100))))
SetGvarIf(if(Sättvärden,hammer_ok,0),147,1)
add(0,0)
)
{@A(0,OMX Stock )}
Edit: Såg att det kan bli strul om inte feeden kommit igång förrän efter lunch. Vet ej om det hänt och får i så fall hantera det senare.Last edited by Henric; 2015-11-03, 15:54.
Comment
-
Ursprungligen postat av Henric Visa inläggJag har också en modell som jag körde ett tag och sedan avbröt då kurserna inte blir synkade. Tänkte ta tag i detta. Jag har modifierat scriptet i tidigare inlägg. Jag har inte gjort några tester. E-rik, du kan kolla om det fungerar för dig.
hammer_längdkrav:=1.5
hammer_öppn:=2.7
hammer_stäng:=2.7
i1(
{Hämtar öppningskursen och skriver i Gvar129}
intra_igår=find(gt(frac(date()),0.5),200,c,1)
öpp_dagsstapel1=and(not(eqv(cmpref(o,0,A),intra_igår)),eqv(int(d),int(date())))
öpp_dagsstapel2=and(öpp_dagsstapel1,gt(int(d),int(GetGvar(130))))
SetGvarIf(d,130,öpp_dagsstapel2) {används för att bara ge ett värde}
SetGvarIf(c,129,öpp_dagsstapel2)
Sättvärden=and(eqv(int(d),int(GetGvar(130))),eqv(int(d),int(date())))
{Beräknar dagshögsta}
dagshögsta=or(öpp_dagsstapel2,and(Sättvärden,gt(c,GetGvar(137))))
SetGvarIf(c,137,dagshögsta)
{Beräknar dagslägsta}
dagslägsta=or(öpp_dagsstapel2,and(Sättvärden,lt(c,GetGvar(138))))
SetGvarIf(c,138,dagslägsta)
{Beräknar ifall vi har en hammer-formation}
hammer_higho=gt(GETGvar(129),sub(dagshögsta,div(sub(dagshögsta,dagslägsta),hammer_öppn)))
hammer_highc=gt(cmpref(c,0,a),sub(dagshögsta,div(sub(dagshögsta,dagslägsta),hammer_stäng)))
hammer_ok=and(hammer_higho,and(hammer_highc,gt(div(sub(dagshögsta,dagslägsta),dagshögsta),div(hammer_längdkrav,100))))
SetGvarIf(if(Sättvärden,hammer_ok,0),147,1)
add(0,0)
)
{@A(0,OMX Stock )}
Edit: Såg att det kan bli strul om inte feeden kommit igång förrän efter lunch. Vet ej om det hänt och får i så fall hantera det senare.
Jag tror iof att vi även måste ändra i hammeruträkningen eftersom vi där använder variablerna dagshögsta och dagslägsta. På "ditt sätt" måste vi nog ändra till getgvar(137) och getgvar(138).
Den koden jag kört med nu ett tag fungerar hyffsat. Får med de flesta och ger enbart ett fåtal felaktiga signaler - kan dock ha med kursdatan att göra så det kanske fungerar skarpt, känns bara lite lurt att köra skarpt med något som "kanske" fungerar.
Hammerformationen är ju inte det enda jag använder H,L,O,C till utan en mängd formationer och även för att kolla hur dagen utvecklat sig, om det tillexempel är en svag eller stark stängning osv. Så det blir ju mycket fel om värdena inte är korrekta. /ErikLast edited by e-Rik; 2015-11-07, 12:44.
Comment
-
Har nu gjort den ändringen jag tänkte på och nu fungerar det riktigt bra
hammer_higho=gt(GETGvar(129),sub(GetGvar(137),div(sub(GetGvar(137),GetGvar(138)),hammer_öppn)))
hammer_highc=gt(cmpref(c,0,a),sub(GetGvar(137),div(sub(GetGvar(137),GetGvar(138)),hammer_stäng)))
hammer_ok=and(hammer_higho,and(hammer_highc,gt(div(sub(GetGvar(137),GetGvar(138)),GetGvar(137)),div(hammer_längdkrav,100))))
/Erik
Comment
-
Håller med. Vid skarp körning så kommer det in data eller ej. Det fungerar inte alltid korrekt vid simulering och kan få helt avgörande betydelse. Det gäller särskilt stapelformationer i dagsupplösning som absolut inte går att köra med o,l,h rakt av.
Att inte o,l,h inte fungerar som tänkt i simulering beror förmodligen på att data är en lång serie utan uppehåll och när data sakna fylls luckorna på med senaste insamlad data. En lösning skulle vara att fylla på luckorna med färskare data från andra hållet. Det skulle förmodligen rent praktiskt vara komplicerat.
Jag ändrade bara beräkningarna av h och l i cellerna. Tittade ej på dina stapelformationer.
Comment
-
Man kan åtminstone kolla närmare på diagrammen i intradayupplösning de dagar då simuleringen blir fel, mest för att verifiera att det är något med datat kanske. Då kan man utesluta dessa dagar ur simuleringen på något sätt. Och en felkälla är ju alltid att det är lurigt att titta på en dagsstapel i efterhand och simulera med animering och signal strax innan stängning etc. Det är inte säkert att dagsstapeln ser likadan ut några minuter innan stängning som den gör efter stängning.
Comment
-
Absolut, stapeln förändras kontinuerligt under dagen.
Det kan vara svårt att identifiera dagar med problem. Inte sällan räcker det att feeden kommit igång någon minut efter öppningen för att staplen ska hämta data från gårdagen. Det påverkar främst öppningskursen, men påverkar även l och h som Erik upplevt.
Edit: Det blir ett hästjobb att behöva kolla varje dag i simulering. Kör man skarp och verifierar med simulering så är det ok.Last edited by Henric; 2015-11-07, 13:33.
Comment
-
Ursprungligen postat av Rikard Nilsson Visa inläggMan kan åtminstone kolla närmare på diagrammen i intradayupplösning de dagar då simuleringen blir fel, mest för att verifiera att det är något med datat kanske. Då kan man utesluta dessa dagar ur simuleringen på något sätt. Och en felkälla är ju alltid att det är lurigt att titta på en dagsstapel i efterhand och simulera med animering och signal strax innan stängning etc. Det är inte säkert att dagsstapeln ser likadan ut några minuter innan stängning som den gör efter stängning.
Comment
Comment