Allmänt meddelande

Collapse
No announcement yet.

Trading-filosofi

Collapse
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Helg igen och hög tid för filosofiska grubblerier! (ni har väl tagit er back-up?)

    Som vi tidigare konstaterat så drivs ju börskurserna av information och förväntan. Ett allt snabbare nyhetsflöde och en allt mer ihopkopplad värld som möjliggör blixtsnabba transaktioner påverkar naturligtvis marknadsklimatet.
    Om man skulle jämföra indexutvecklingen på 1970-talet så kommer det naturligtvis att skilja sig från idag. På 70-talet hade vi ju tex "fixa" valutaväxelkurser (kurserna ändrades ju genom att länderna alltid hade möjlighet att devalvera), så OMXS30 och DAX kunde ju leva parallella liv.

    Jag menar att precis som marknadsklimatet ändrat sig från 70-talet tills nu så har det ändrat sig mer eller mindre kontinuerligt hela tiden. Därför är det helt avgörande att de strategier man tar fram fungerar NU och inte 1971 eller 2008 eller 2016.

    De strategier som man kan läsa om i böcker är antagligen framtagna på 1990-talet (då man fick snabbare datorer som kunde analysera mycket data) och utvecklade för amerikanska index för den tiden. Hur bra de fungerar på OMXS30 NU återstår att se.

    Med NAT och analysatorn har vi ju utmärkta möjligheter att testa alla möjliga och omöjliga idéer! Då jag började med NAT 2011 fanns varken analysatorn eller simuleringskonton utan det blev till att testa i realtid med skarpa pengar, dvs det kostade en hel del i läropengar att ta fram sina strategier.

    Som sagt nu är det ju helg dvs simuleringsdags!
    Simulera mera!
    Bertil

    Comment


    • Hejsan Bertil!

      Som nybörjare här i området får jag säga att jag uppskattar dina funderingar!

      Både rent generellt och för att se hur en någon som varit med länge skriver modeller. Man lär sig alltid något nytt!

      Nu hittade jag i ett av skripten hittade jag en konstruktion som jag inte sett förut och inte blir klok på, ett namn + ":" + ett heltal. Ett exempel: "slang04=LLV(slang03,perioder12:520)". Vad betyder egentligen "perioder12:520"?

      Mvh,
      Anders

      Comment


      • Det är dynamiska perioder, dvs om man har en variabel som innehåller antal perioder en funktion ska titta bakåt i dataserien behöver minne reserveras för maximala antalet i compilern. Det görs med :

        Comment


        • Ok, så påverkar inte direkt funtionaliteten, men optimerar exekveringen?

          Comment


          • Ursprungligen postat av AndersE Visa inlägg
            Ok, så påverkar inte direkt funtionaliteten, men optimerar exekveringen?
            Om man inte reserverar det minne som behövs havererar funktionen och man får felaktiga värden.

            Ett alternativ är att beräkna ovanför periodindelningen, då får parametern ett fast värde vid kompileringen
            ...
            perioder99:=50
            perioder10:=HHVBARS(H,perioder99)
            i1(
            slang01=LLV(L,perioder10)
            ....
            Då behövs ingen minnesreservation.
            Men om man skall beräkna ovanför periodindelningen så kan man ha max 10 parentesnivåer.
            I mitt exempel i tråden är beräkningarna så komplexa att de ofta motsvarar fler än 10 parentesnivåer, alltså måste jag använda :
            Då man använder : skall man ange ett värde som är större än det största värde som parametern (i detta fall perioder12) kan få.
            En handelsdag är max 510 minuter (09:00-17.30), så jag tog i lite extra och skrev :520.

            Då man skriver komplexa script så är det alltid bra att under utvecklingen rita ut alla kritiska värden med funktionen draw.

            Jag har ju en tendens att skriva väldigt komplexa script och ibland får kompilatorn spader. Då kan man välja att ha en del beräkningar ovanför periodindelaren och en del under. Hjälper inte detta så finns ett annat knep som jag kommit på nämligen att mellanlagra värden i globala variabler tex
            ...
            SetGVarIf(perioder12,5555,1)
            Perioder13=GetGVar(5555)
            ...

            På så sätt bryter man upp kompileringen i flera delar. Detta trix vet nog inte ens Rikard om.

            mvh
            Bertil
            Last edited by Bertil; 2019-08-22, 18:42.

            Comment


            • @Bertil, har du labbat med robotar som handlar med FIB-nivåer eller Pivot-nivåer?

              Comment


              • Ursprungligen postat av PerG Visa inlägg
                @Bertil, har du labbat med robotar som handlar med FIB-nivåer eller Pivot-nivåer?
                Nä, jag har inte läst någon tradinglitteratur så jag är inte "biased".
                Jag har bara tittat på kursutvecklingar och försökt hitta mönster.

                Då jag började med NAT så tänkte jag att andra som lagt ner hundratals timmar med programmering och slukat tradinglitteratur ju måste ha kommit fram till något bra, så jag köpte färdiga krypterade strategier som jag inte hade en aning om hur de fungerade. Tyvärr fungerade de inte så bra i då rådande marknadsklimat, så jag började filosofera och koda själv.

                Om man kodat något själv har man större acceptans om man hittar någon bugg eller att strategin går dåligt tillfälligt. Därför skulle jag aldrig sälja någon strategi, för jag skulle ta illa vid mig då kunderna förlorade pengar.
                Däremot är jag för öppen kod där var och en får avgöra och ansvara för hur den skall användas.
                (Nu svarade jag lite off topic men du ställde ju frågan i tråden Trading-filosofi)

                Om du hittar någon info eller kod (även i annat språk än NAT) om fib nivåer så skapa gärna en tråd så kanske det går att få till någon användbar kod. Jag är ju för att testa alla möjliga och omöjliga koder.

                Ett generellt "problem" är dock att många som tradar tekniskt ritar sina egna stöd, motståndsnivåer och trendkanaler grafiskt efter egen erfarenhet som är svår att helautomatiskt skriva ner i kod.

                mvh
                Bertil

                Comment


                • Ursprungligen postat av Bertil Visa inlägg
                  Om man inte reserverar det minne som behövs havererar funktionen och man får felaktiga värden.

                  Ett alternativ är att beräkna ovanför periodindelningen, då får parametern ett fast värde vid kompileringen
                  ...
                  perioder99:=50
                  perioder10:=HHVBARS(H,perioder99)
                  i1(
                  slang01=LLV(L,perioder10)
                  ....
                  Då behövs ingen minnesreservation.
                  Men om man skall beräkna ovanför periodindelningen så kan man ha max 10 parentesnivåer.
                  I mitt exempel i tråden är beräkningarna så komplexa att de ofta motsvarar fler än 10 parentesnivåer, alltså måste jag använda :
                  Då man använder : skall man ange ett värde som är större än det största värde som parametern (i detta fall perioder12) kan få.
                  En handelsdag är max 510 minuter (09:00-17.30), så jag tog i lite extra och skrev :520.

                  Då man skriver komplexa script så är det alltid bra att under utvecklingen rita ut alla kritiska värden med funktionen draw.

                  Jag har ju en tendens att skriva väldigt komplexa script och ibland får kompilatorn spader. Då kan man välja att ha en del beräkningar ovanför periodindelaren och en del under. Hjälper inte detta så finns ett annat knep som jag kommit på nämligen att mellanlagra värden i globala variabler tex
                  ...
                  SetGVarIf(perioder12,5555,1)
                  Perioder13=GetGVar(5555)
                  ...

                  På så sätt bryter man upp kompileringen i flera delar. Detta trix vet nog inte ens Rikard om.

                  mvh
                  Bertil
                  I princip bör man lägga alla minnesreferenser, dvs allt utom tilldelade numeriska namn, under intradayprefix. Det gör att parentesnivån hålls nere och exekvering går mycket snabbare.

                  Kör man periodvärden som tilldelade namn är de inte dynamiska, och då behöver man inte reservera minne. Samma anledning om man sparar periodvärde i globala celler eftersom dessa inte lagrar dataserier.

                  Comment


                  • Här är lite om Fibonaccis talföljd http://www.webbmatte.se/display_page...cache=99423554 Han använde den för att beskriva tillväxten hos kaniner.

                    mvh
                    Bertil

                    Comment


                    • Säkra uptime

                      Ojdå, helgen snart slut och jag har inte skrivit något filosofiskt inlägg! Men hav tröst, för här kommer det.
                      Jag tänkte filosofera lite kring att säkra uptime för NAT. Downtime under några timmar kan ju kosta flera tusen kronor i form av förluster eller tappade vinster.

                      Saker som kan sänka uptime är:

                      1) Hårdvaruproblem hos datorn som kör NAT (tex hårddiskkrasch, minnesfel, moderkortshaveri och fel hos spänningsaggregatet.

                      2) Operativsystemsproblem och virus. Det kan tex uppstå minnesläckage så att RAM minnet blir fullt. Har man automatisk windowsuppdatering så kan den göra omstart utan att NAT går igång igen.

                      3) NAT hänger sig.

                      4) Buggar i ordermodellerna.

                      5) Internetförbindelsen försvinner.

                      6) Elavbrott.

                      Lämpliga åtgärder:

                      1) Man bör ha en reservdator med NAT installerat med en nyligen gjord backup av hela NAT (max en vecka gammal).

                      2) Man uppdaterar operativsystemet manuellt på helgen och startar om datorn. Man undviker att surfa och köra andra program än NAT på datorn för att minimera risken för virus.

                      3) Man kör alltid senaste versionen av NAT.

                      4) Man simulerar sina ordermodeller i simulatorn och kollar att allt verkar OK innan man ansluter skarpt.

                      Nu kommer vi till det intressanta nämligen 5 och 6.
                      5) Man behöver en alternativ internetförbindelse tex mobilt bredband. Utöver fast bredband (ADSL och snart fiber) så har jag ett mobilt 4G bredbandsabonnemang. Min tanke var att om det fasta bredbandet går ner så skulle automatisk det mobila ta över. Köpte en wifi router med USB anslutning för mobilt bredband på Netonnet. Jag la ner ett par timmat på att försöka att få det att fungera tillsammans med mitt Huawei USB modem men misslyckades.

                      Routern blev liggande i några månader och jag googlade på på kombon routern och modemet och fick fram att det bara var problem och hittade ingen som fick det att fungera. Jag tröttnade och la undan det i ytterligare några månader innan jag tog det tillbaka till Netonnet för att lämna tillbaka det. Eftersom det gått över ett år sedan köpet och det inte var något fel på det utan bara kompatlibilitetsproblem så har man ju bara ett par veckors öppet köp så de ville inte ta tillbaka det trots att det fortfarande fanns i sortimentet.
                      Så jag bad dem slänga det.
                      Men om man skulle få elavbrott så hade ovanstående lösning ändå inte hjälpt.

                      6) För att klara sig under elavbrott kan man antingen köpa en UPS (Uninterruptable Power Supply) som innehåller ett batteri och en DC till 230 V omvandlare eller köra på en laptop med inbyggt batteri.
                      Eftersom jag kör NAT på en laptop så har jag ju automatisk batteribackup så det enda jag behöver göra är att även ansluta USB modemet och starta det så ligger det i bakgrunden och tar över automatiskt i händelse av avbruten fast internetförbindelse. Då det tagit över så behåller det dock kontrollen även om den fasta förbindelsen skulle återupptas så man får ha lite koll på det.

                      Vid stort elavbrott så tappar ju även basstationerna sin kraft. Nuförtiden så har man ju tagit bort skyldigheten för mobiloperatörerna att ha batteribackupp på basstationerna. Telia kan dock ha några basstationer som fortfarande har batteribackup.

                      Hur är det då om man kör NAT på VPS?
                      a) Har VPS:erna batteribackup?
                      b) Har de automatisk backup på data?
                      c) Har de multipla internetanslutningar?

                      Trevlig trejdingvecka önskar
                      Bertil
                      Last edited by Bertil; 2019-09-08, 20:14.

                      Comment


                      • Bra tips, här är svaren på dina frågor om VPS:

                        A) Ja, kör man en VPS från GleSYS har de en massiv batteribackup som klarar ca 15 minuter, men dieselgeneratorn ( som testkörs rutinmässigt månadsvis) startar och når full effekt inom 60 sekunder. Serverhallen i Falkenberg har full backup för alla tre faser ( säkrade med 1000 ampere/st ), automatiskt brandsläckningssystem med inert gas, samt självklart full redundans för själva uppkopplingen. Även våra webbservers ligger hostade i den här hallen, och vi har noll nertid i våra system sedan 2013 då vi hade ett kort avbrott.

                        B) Det finns teknisk möjlighet till automatisk backup och om man tecknar sin VPS direkt hos GleSYS kan man enkelt konfigurera det själv. Men vår standardkonfig är optimerad för kostnad och har inte automatisk backup. Vi rekommenderar att man tar backup manuellt tex varje helg, exempelvis via Onedrive eller Dropbox.

                        C) Ja, självklart. Serverhallen är även host för tusentals andra websidor och servers.

                        Comment


                        • Tips på bra router som fungerar med 4G-failover är Dovado. Får kanske en downtime på ett par sekunder om inte lägre. APC gör riktigt bra UPSer, men kostar därefter.

                          Comment


                          • Ägnade helgen åt att uppdatera mina strategier, så här kommer ett grubbleri.

                            Redan 2013 hade jag ett inlägg som ställde frågan: Hur lång är Sveriges kustlinje? Antag att vi har en mycket detaljerad karta över Sverige och mäter med en kapad linjal som motsvarar 1 mil på kartan. Antag nu att vi gör om mätningen men använder en linjalbit som motsvarar 1 km. Med den mindre linjalbiten kommer vi alltså att få en mycket större längd på kustlinjen än värdet vi fick med 1 milsmätningen. Här har vi alltså en fråga vars svar helt beror på vilket verktyg som vi använder.

                            Jag vill likna en index- eller aktiekurva vid Sveriges kustlinje. Hur stort är det teoretiska vinsten som vi kan uppnå genom att köpa och blanka med en viss upplösning?
                            Då vi handlar ett instrument så påverkar vi även instrumentets kurs. Handlar vi mot säljkurs så bibehåller eller ökar vi closekursen som regel (gäller ju inte vid extremt kraftiga kursrörelser). Sedan tillkommer ju ofta courtage samt slipp. Detta betyder att det inte är lönsamt att försöka handla med alltför små vinster.

                            Innan man bygger en strategi är ju de viktigaste frågorna som måste besvaras:
                            a) vilken vinstrange skall man eftersträva.
                            b) vilken handelsfrekvens eftersträvar man. Flera gånger om dagen, två gånger om dagen, med några dagars mellan rum, en gång i kvartalet osv.

                            Vinstrange hänger i viss mån samman med handelsfrekvens. Skall man daytrada så kommer dagsvinsten mycket sällan att bli 40 punkter.

                            Säg att man önskar att daytrada, då ställs dagsvinsten i relation till volatiliteten de föregående dagarna.

                            I min offentliga strategi Studsa så ställs ju triggnivån i relation till föregående dagars dagsranger.
                            Per har ju beräknat kvoten Gain/Pain för hävstång 6 för Studsa och den är strax över 10. http://www.autostock.se/vbulletin/sh...2&postcount=61

                            mvh
                            Bertil

                            Comment


                            • Dags för ett litet filosofiskt inlägg igen.

                              Hur skall ett bra triggerscript fungera?

                              a) Det skall inte reagera på brus (vad som nu kan definieras som brus enligt definitionerna i inlägget ovan, alltså frekvens och amplitud man önskar att handla med).

                              b) Det skall trigga på önskade tydliga fenomen (som man själv definierat).

                              c) Vid stora rörelser med tillhörande volatilitet så skall det inte börja vela dvs köpa på toppar och sälja i dalar. Den normala range som man handlar inom fungerar alltså inte vid stora rörelser då den hamnar i det nya brusområdet som bildats och trigg måste därför blockeras.
                              Edit: Inom elektroniken finns något som kallas Automatic Gain Control (AGC) https://www.electroschematics.com/au...n-control-agc/ för ljudinspelnngar betyder det att man vill ha samma utvolym oavsett om man står nära eller långt ifrån mikrofonen och oavsett man talar tyst eller högt. På samma sätt bör triggnivåerna anpassas till den dagliga rangen.

                              För att kunna hantera ovan så bör ordermodellerna vara trendföljande men ickelinjära. Alltså vanliga medelvärden och MACD mm går bort. (Been there done that, lost money.)

                              Hur får man då in den ickelinjära komponenten? Ett sätt är att även använda sig av informationen som finns i volymen som i min Mach1 strategi
                              eller
                              att använda medelvärdesbildningar där antalet perioder man medelvärdesbildar med beror av något annat exempelvis max-min range från ett större tidsintervall än man man normalt medelvärdesbildar inom som i min Trendigstrategi.

                              Nu i slutet av augusti början av september inträffade fenomen c och flera av mina strategier blev grundlurade. Eftersom jag misstänker att fenomen c kommer att återkomma med jämna mellanrum, måste jag kunna hantera detta.

                              För Mach1 strategin har jag tagit komponenter ur min Trendigstrategi och lagt i en separat hjälpordermodell.

                              mvh
                              Bertil
                              Last edited by Bertil; 2019-09-28, 01:32.

                              Comment


                              • { Mitt Mach1 hjälp }
                                { 190916 }

                                antal01:=1500
                                antal02:=100

                                i1(
                                största=MX(MX(MX(MX(cmpref(H,0,a),cmpref(H,1,a)),cmpref(H,2,a)),cmpref(H,3,a)),cmpref(H,4,a))
                                minsta=MN(MN(Mn(MN(cmpref(L,0,a),cmpref(L,1,a)),cmpref(L,2,a)),cmpref(L,3,a)),cmpref(L,4,a))
                                antal03=abs(mult(sub(största,minsta),4))
                                antal04=MN(add(antal02,antal03),80)

                                { Finess. Genom att ta L för HHV() och H för LLV() undviker jag att spikar får betydelse. }
                                Kurvahög=HHV(L,antal01)
                                Kurvalåg=LLV(H,antal01)
                                diff01=sub(kurvahög,kurvalåg)
                                diff02=sqrt(diff01)
                                diff03=sqrt(diff02)

                                diff04=Int(mult(antal02,diff03))
                                kurva03=mov(c,diff04:2000)
                                kurva04=wild(c,diff04:2000)
                                SetGVarIf(sub(kurva03,aref(kurva03,1)),9002,1)

                                kurva04=wild(c,diff04:2000)
                                SetGVarIf(sub(c,kurva04),9003,1)

                                draw(kurva03,3,kqb0)
                                draw(kurva04,4,dgqb0)

                                Mult(0,0)
                                )

                                {@A(0,)}

                                ---------------------------------------------
                                OBS, OBS!
                                Rita inte ut ovanstående script under handelsdagen då det kommer att suga ur kraften ur processorn.

                                mvh
                                Bertil
                                Last edited by Bertil; 2019-09-26, 17:11.

                                Comment

                                Working...
                                X