Helst vill du att en filtrerad signal ska vara både smidig och lagfri. Lag orsakar förseningar i dina affärer, och ökad fördröjning i dina indikatorer resulterar vanligtvis i lägre vinster. Med andra ord, sena komnar får vad som är kvar på bordet efter att festet redan har börjat. Det är därför som investerare, banker och institutioner världen över frågar efter Jurik Research Moving Average (JMA). Du kan ansöka det precis som du skulle ha något annat populärt glidande medelvärde. Men JMAs förbättrade timing och jämnhet kommer att förbluffa dig. Den ihåliga grå linjen i diagrammet simulerar prisåtgärder som börjar i ett lågt handelsintervall och sedan luckor till ett högre handelsintervall. Eftersom ingen gillar att vänta på sidled, kommer ett perfekt ljudreducerande filter (grön linje) att röra sig smidigt längs mitten av det första handelsområdet och sedan hoppa till mitten av det nya handelsområdet nästan omedelbart. EasyLanguage amp PowerLanguage-handledning 8211 Lektion 02 : Kodning A Flyttande medelvärde Skapa den första riktiga indikatorn och expandera grunderna När du har bekantat dig med PowerLanguage Editor i den tidigare PowerLanguage-handledningen 8211-lektion 01 kommer vi nu att bygga upp på den här grunden. Om du inte har läst den sista lektionen, skulle jag föreslå att du gör det först eftersom det också kan hjälpa dig att förstå den här lektionen. Let8217s börjar med today8217s lektion nu. Öppna PowerLanguage Editor och skapa en ny indikatorstudie. Jag kommer att namnge min ABCPowerLanguage Lesson 02 8211 Moving Average så jag kan hitta den lätt i min redigerare senare. Namnet är helt upp till dig självklart och du kan även ändra det senare. Som den sista delen av indikatornamnet antyder kommer vi att skapa och rita ett glidande medelvärde idag. Du har förmodligen sett ett glidande medelvärde på ett diagram före eller kommer ihåg begreppet medelvärde från matematik. Huvudanvändningen för medelvärden är som ett filter för att jämföra de data du anger. Bilden visar ett 200-tal enkelt glidande medelvärde som ger ett mycket smidigt resultat. Nackdelen med denna jämnhet är att du introducerar mer fördröjning. Det betyder att medeltalet blir mindre mottagligt för prisändringar. Om du tittar på nästa bild ser du hur olika beteendet för ett 200-taligt enkelt glidande medelvärde är när du jämför det med det gröna 10-medeltalet. Den senare är mycket snabbare när man svarar på prisändringar, men i sin tur finns det mycket mer 8220noise8221 i medelvärdet. Det finns många olika typer av medelvärden som huvudsakligen varierar i vilken inverkan varje datapunkt har på resultatet av genomsnittet. Ett 200-taligt enkelt glidande medelvärde beräknar enkelt en summering av de sista 200 datapunkterna och delar upp den med 200. Resultatet är ett medelvärde som ger varje datapunkt samma inflytande (samma värde) på resultatet. Den första fältet och den sista fältet som ingår i medelvärdet är båda viktade samma för resultatet. Två andra framstående och allmänt använda medelvärden är exponentiella rörliga medelvärdet och det vägda rörliga genomsnittet. Båda har högre viktningsfaktorer för de senaste datapunkterna. I ett vägt rörligt medel minskar vikten i aritmetisk progression. För exponentiellt genomsnitt kommer det att minska exponentiellt, därav namnet. Detta kommer att vara så teoretiskt som det kommer att få för idag. Om du vill läsa några mer detaljer om medelvärden kan du börja med denna Wikipedia-artikeln. För ytterligare förståelse av den här lektionen behövde du8217t denna ytterligare information. Let8217s börjar med att koda vårt genomsnitt. Vår indikator bör inte bara beräkna ett medelvärde, men det ska utföra resultatet till ett diagram. EasyLanguage har 8220Plot8221 reserverat ord för det och vi kommer att använda det för att göra det. Innan du börjar programmera är det alltid en bra idé att ta ett steg tillbaka och tänka på vad du försöker åstadkomma och hur du ska göra det. Eftersom denna studie inte är väldigt komplex, finns det bara några saker att tänka igenom. När studier blir mer komplexa kan du spara mycket tid med bra planering på förhand. Målet är en studie som beräknar och plottar ett enkelt glidande medelvärde. Vi vill kunna ändra längden för genomsnittsvärdet med en inmatning så it8217s enkelt att anpassa. För medelvärdet måste vi summera mängden värden som är korrelerade med längdinmatningen. Vi don8217t vill skriva kod för varje möjlig längd ingång för summeringen. Det betyder att koden måste kunna beräkna alla möjliga längdingångar på egen hand. Har du redan en aning om hur vi kan åstadkomma detta Svaret är att vi behöver ett iterationsförklaring som kan utföras upprepade gånger varje stapel för ett visst antal gånger (längdinsatsen). Jag vet att det här låter komplicerat, men det blir ganska enkelt. Vi kommer att använda 8220for loop8221 för denna uppgift. Denna slinga upprepar en eller flera uttalanden för ett användardefinierat, specifikt antal iterationer. EasyLanguage-koden exekveras från topp till botten och vanligtvis från vänster till höger. När en kodlinje exekveras utförs nästa rad och så vidare. Om kodlinjen är början på en slinga, kommer kodlinjerna i slingan att exekveras för den angivna mängden. Bara när slingan är klar körs nästa kodlinje efter slingan. A for loop ser och fungerar på följande sätt: En numerisk variabel ökas (eller minskas) med varje cykel genom slingan från startvärdet till dess slutvärde. Denna bild visar en grundläggande loop med en numerisk räknare variabel (ii i det här fallet) och initialvärdet på 0. Iterationerna görs tio gånger tills räknaren har uppnått värdet på 9. Därefter körs loopblocket den sista tid och slut. Du behöver inte öka värdet för dig själv, loopkoden tar hand om det. Det aktuella motvärdet kommer att lagras i motvariabeln. Så du kan komma åt den för varje kretslopp och använda den för dina beräkningar. Detta kommer att vara till nytta för att beräkna vårt genomsnitt. För loop kan också minska disken med varje iteration. Det ursprungliga värdet i det här exemplet är 9, men slingan körs tio gånger tills den är avslutad också. Räknaren minskar enkelt med varje iteration med en tills den når 0. I Easylanguage kan du hänvisa datarelaterade reserverade ord, variabler och funktioner från en tidigare stapel mycket enkelt. Med hjälp av ett tal inom ruta parentes efter det reserverade ordet, kommer beräkning eller variabel att returnera värdet för den här fältet. Antalet växer från den aktuella stapeln (som du refererar till med 0) i steg om en. När du vill lagra värdet för föregående bar8217s nära en variabel som heter PrevCloseValue kan du göra så här: Vi vill bygga vårt genomsnitt med hjälp av Stäng för de sista X-staplarna. Där X är en ingång som möjliggör större flexibilitet. Du vet redan att vi vill använda en slinga för det och vi har bara hittat hur vi kan referera Stäng värden för de tidigare staplarna. Detta borde räcka för att skriva koden för huvuddelen av vår indikator. Let8217s fortsätter genom att skapa inmatnings - och variabla sektioner. Du kanske kommer ihåg från den sista lektionen att använda meningsfulla variabla namn är en bra kodningspraxis och kan spara dig mycket problem senare. Vi måste deklarera en inmatning så att vi kan ändra längden för vårt genomsnitt på diagrammet. Dessutom vill vi ha en variabel som innehåller summeringen, en för att hålla motvärdet och en sista för att lagra medelvärdet. För att mata ut värdet på diagrammet använder vi det reserverade ordet Plot. Detta följs av ett nummer så att du kan skilja mellan olika tomter. Vilket behövs som du kan använda upp till 999 tomter i Multicharts. Plot reserverat ord kan ha flera parametrar som färg, plottstorlek och lite mer. Vi kommer att hålla det enkelt här och använda Plot1 med bara två parametrar 8211 den första för det numeriska uttrycket som ska plottas och en andra för det namn vi vill tilldela plottet. Den slutliga koden kommer att se ut så här: Efter att ha sammanställt den här koden är vi nästan redo att ladda vår indikator till ett diagram i Multicharts. Let8217 tar bara en titt på indikatorns egenskaper först. Du kan hitta dem under - gt File - gt Egenskaper eller genom att klicka på Egenskaper-symbolen i menyn (den ska vara den som återstår att kompilera). Under fliken Style kan du ändra färg, linjestil och tjocklek för den graf du skapade. Om du går till fliken Egenskaper finns det flera alternativ att ställa in eller kontrollera, men för närvarande kanske du bara vill se till att alternativet 8220Sam som symbol8221 är markerat. Detta kommer att se till att indikatorn används direkt på diagrammet istället för ett underschema. Nu är du redo att använda indikatorn på ett diagram som du väljer. När du har ett diagram öppet i huvudfönstret Multicharts kan du helt enkelt sätta in indikatorn i det här diagrammet. När indikatorn används ska resultatet likna ovanstående skärmdump. Men det verkar inte som det här gör, det ser inte ut som ett glidande medelvärde alls. Prisserien är nästan en platt linje och tomten som kommer från vår indikator stiger bara. Med E-Mini SampP 500 i området 18217800 är det uppenbarligen inte ett 10 bar glidande medelvärde för denna marknad på 182179528217647. Detta pekar på ett problem i våra beräkningar. Har du en uppfattning om vad koden saknas Det är faktiskt bara en liten men mycket viktig detalj som vi glömde att lägga till. Vi måste lägga till något framför loopbandet. Slingan fortsätter helt enkelt att lägga till värdena för de tidigare tio staplarna med varje ny stapel. Det här är bra och vi vill att det ska göra exakt detta, men vi vill inte att den ska lägga till de nya värdena till de gamla värdena. Med andra ord måste du se till att CloseValueSum doesn8217t fortfarande håller de gamla värdena när förbandet startar. Genom att lägga till en rad i koden är resultatet precis vad vi ville uppnå. Vi kan också ändra indikatorn8217s utseende på diagrammet. Genom att använda stilfliken under 8220Format Study8221 kan vi ändra det visuella resultatet som linjestil, färg och tjocklek. Under fliken 8220Inputs8221 hittar du den inmatning du skapade och standardinställningen för längden. Genom att ladda en andra instans av studien och använda en annan färg och längd kan du bekräfta att studien ger ett annat resultat med en annan längdinsats. Om du har problem med att hitta rätt lösning, kontakta oss gärna med din lösning och vi kommer att försöka hjälpa dig på rätt sätt. Jag är rädd att bara fråga om lösningen vann, men du måste åtminstone kunna visa att du lägger lite ansträngning på att hitta lösningen också. Som ett sista tips kan du titta på andra genomsnittliga indikatorer eller funktioner och hitta lite inspiration för den saknade länken där. Jag hoppas att du haft denna Powerlanguage-lektion och jag ser fram emot att arbeta med dig i nästa. Kopiera och klistra in koden ovan i din utvecklingsmiljö i Tradestation eller MultiCharts as Indicator. Klicka sedan på kompilera, eller verifiera. Denna kod upptäcker om stängningskursen idag är större än eller lägre än slutkursen för igår. (Detta kan läggas på dagliga diagram eller minutdiagram och close1 hänvisar till föregående stapel eller föregående dag) Om du skrev i close2 skulle det referera till de närmaste 2 dagarna eller streckerna i stället istället. Sedan har vi summan av de sista (längd 20) staplarna. För att se hur det fungerar kan du ändra denna rad kodplot1 (summove, quotup-downcountquot) till denna plot1 (flytta, quotup-downcountquot) Klicka sedan på kompilera. Du kan då se dina indikatorplottar en linje som är antingen 1, -1 eller 0. De ingångar som skrivs högst upp representerar värden som kan ändras av användaren när man plottar indikatorn på diagrammet. När du först visar indikatorn i sin ursprungliga form kan du ändra längden till 50 eller 20 eller 100 för att se hur det påverkar diagrammet. Variabler visas här som quotvarsquot och dessa är värden som jag skapade för att lagra värdena som matas ut av de 3 raderna av kod som börjar om det är nära. och summovevariabeln. Summove summation (drag, längd) Det betyder att variabel summove skapas genom att lägga till summan av de sista 20 barerna (eller längdperioden) med alla värdena 1 och -1 och 0. Du kan experimentera genom att leka med olika värden. Nybörjare exempel nr2 (Justerbar viktprocent blandat glidande medelvärde) långsamt genomsnittligt (nära, längd1) snabbt genomsnittligt (nära, längd2) om värde1lt0 då värdet10 om värde1gt1 då värde11 Du kan läsa ovanstående kod först innan du skapar den här indikatorn och ser om du kan se vad det gör Det finns två glidande medelvärden som används med långsam längd på 50 och en snabb längd på 20, den ingående kallade faktorn är inställbar för att tilldela en viktning till var och en. Om faktorn är inställd på 0,5 kommer den att lägga 50 av det långsamma medlet till 50 av det snabba genomsnittet och skapa ett blandat medelvärde av de två perioden. För att se maxvärdena för den långsamma medelfunktionsfaktorn till 1, för att se plottet som är konstruerat helt av det snabbare genomsnittet kan du ställa in faktor till 0. Du kan experimentera med värden som 0,1 och 0,9 för att se påverkan av anpassningar till viktningen. Om du använder namnet value1 eller value2 eller value 99 som variabler, behöver du inte deklarera namnen på dessa på överdelen. Value2 1-faktor är ett mycket snyggt sätt att få 2 variabler att automatiskt tilldela 1 av en del och 99 av den andra delen, så när de läggs till kommer de alltid 100 Begränsa användarfel genom att begränsa ingångar genom att variablerna läser dem. (Koden för värde1 gör detta efter att ha läst inmatningsfaktorn) Kodtrick att försöka Om du tittar på de långsamma och snabba variablerna ser du att de båda använder medelvärden (medelvärdet är den här koden betyder ett enkelt medelvärde). Du kan försöka göra det långsamma i ett viktat medelvärde eller ett exponentiellt medelvärde och blanda upp dem för att skapa din egen blandade genomsnittliga kombination. Nybörjare exempel nr3 (Enkel binär trendindikator) om medelvärde (nära, snabblängd) gt medelvärde (nära, slowlength) och börja binarytrend1 slut annars binarytrend -1 Denna indictor bestämmer den kvadratiska trendquot som betyder att den omvandlar den till ett tal. Således uptrend 1 downtrend -1 och initialvärdet är tilldelat som 0. Om du plottar det 80-glidande genomsnittet och det 12-åriga glidande medlet på diagrammet kan du kontrollera att trendindikatorn fungerar. Använd slutanvändningar för att minska kodlängden. EG ovan förutsätter att om trenden inte är 1 då måste den vara -1. Kodstickor att försöka Om du försöker använda en annan metod för att tilldela trenden är upp eller ner och ersätt koden med din idé. T. EX. Du använder den stokastiska oscillatorn med över 50 är uptrend och under 50 är ned trend. Den lika med 50 kan fångas genom att säga detta. Om stokastisk är gt50, räknas den som uptrend (psuedo code) Nybörjare exempel nr4 (Enkel längdjusteringsalgoritm) om nära högsta (nära, grundläggande längd) eller nära lägsta (nära, grundläggande längd) och börja övervaka monitor1-1 sluta annars monitormonitor10.5 om bildskärm lt minlängd sedan övervaka minlängd om monitor gt maxlength sedan övervaka maxlängd Detta är det första steget att göra en algoritm för att kontrollera längd applicerad på en indikator. Du kan se att om du plottar denna indikator i subgraph 2 ligger det mellan 50 och 10, vilka tillåts max och min längder. (Men dessa är justerbara ingångar) Om priset gör en ny hög eller låg för grundlängdstiden kommer den att sakta ner med 1 längd ökning för varje stapel som villkoret är sant. Om priset inte gör ett nytt högt eller lågt under samma period kommer det att minska längden med 0,5 längd ökning för varje streck villkoret är sant. Kodtrick att försöka Om du försöker ändra värdena på -1 och 0,5 till större eller mindre belopp kan du ställa in det så att det passar dina krav. Nedan kommer jag att visa dig hur du bygger denna kod till en längdbyteindikator. Nybörjare exempel nr5 (Enkel längd justera viktat glidande medelvärde) om nära högsta (nära, grundläggande längd) eller nära lägsta (nära, grundläggande längd) och börja övervaka monitor1-1 sluta annat monitormonitor10.5 om monitor lt minlength sedan övervaka minlängd om monitor gt maxlength då övervaka maxlängd Du kan se att en annan variabel har lagts till, vilket är ett viktat glidande medelvärde och tricket här är att ersätta det vanliga fältet med algoritmmonitorn som justerar längden som appliceras. Kodstickor att prova Om du plottar ett 20-årigt vägt medelvärde bredvid det på delgrafen. Du kan se hur koden ovanför längden ändrar genomsnittet är långsammare under en viss period och snabbare i andra perioder. Ovanstående indikator finns i subgraph no1 överlagrad med priset. Exempelkod no4 placeras i del 2. Du kan observera längdändringsalgoritmen i åtgärd och se hur det påverkar hastigheten på det vägda genomsnittet. Nybörjare exempel nr6 (Hur man förhindrar uppdelning med nollfel) Uppdelning efter noll är ett vanligt problem med programmering. Svaret är alltid oändligt, så vi måste förhindra att någonting delas upp med noll i första hand. Det finns två sätt att göra detta. Om värdet1 0 då värder1value10.0000000001 Så vi lägger helt enkelt till ett litet nummer till det, vilket är så litet det kommer inte att göra för mycket skillnad till utgångarna. Om value1 ltgt 0 då value2 value3 value1 Detta tvingar datorn att fråga om värdet1 är 0 eller inte innan det gör sina beräkningar. Om det är 0 returnerar det standardvärdet som tilldelades värde1 i variablerna när du skapade det. Nybörjare exempel nr7 (Hur man använder Fisher Transform)
Vad du behöver veta om binära alternativ utanför U. S.Binary-alternativen är ett enkelt sätt att handla prisfluktuationer på flera globala marknader, men en näringsidkare behöver förstå riskerna och fördelarna med dessa ofta missförstådda instrument. Binära alternativ skiljer sig från traditionella Alternativ Om handlas kommer man att finna att dessa alternativ har olika utbetalningar, avgifter och risker, för att inte tala om en helt annan likviditetsstruktur och investeringsprocess. För relaterad läsning, se En guide till handel binära alternativ i U S. Binary alternativ som handlas utanför USA Är också typiskt strukturerad annorlunda än binärer som är tillgängliga på amerikanska börser. När man överväger speculering eller säkring är binära alternativ ett alternativ, men endast om näringsidkaren förstår de två potentiella resultaten av dessa exotiska alternativ. I juni 2013 varnade amerikanska värdepappers - och utbyteskommittéerna investerare om De potentiella riskerna med att inves...
Comments
Post a Comment