Wednesday, 27 December 2017

Glidande medelvärde prov kod


MetaTrader 4 - Experts Moving Average - Expert för MetaTrader 4 Den Moving Average expert för att skapa handelssignaler använder ett rörligt medelvärde. Öppning och stängning av positioner utförs när det glidande medelvärdet uppfyller priset vid den nyligen bildade baren (barindex är lika med 1). Partikelstorleken optimeras enligt en speciell algoritm. Expertrådgivaren analyserar samtidigt det rörliga genomsnittet och marknadsprisgrafen. Kontrollen utförs av CheckForOpen () - funktionen. Om det glidande medelvärdet möter stången på ett sådant sätt att den tidigare är högre än Öppet pris men lägre än Stäng pris, öppnas KÖP-positionen. Om det glidande medelvärdet möter stången på ett sådant sätt att den förstnämnda är lägre än Öppet pris men högre än Stäng pris, öppnas SÄLJ-positionen. Pengarhantering som används av experten är mycket enkel men effektiv: kontrollen över varje positionsvolym utförs beroende på tidigare transaktionsresultat. Denna algoritm implementeras av funktionen LotsOptimized (). Grundlotsstorleken beräknas utifrån den maximala tillåtna risken: Parametern MaximumRisk visar den grundläggande riskprocenten för varje transaktion. Den har vanligtvis ett värde mellan 0,01 (1) och 1 (100). Till exempel, om fri marginal (AccountFreeMargin) motsvarar 20 500 och regler för kapitalhantering föreskriver att använda risk för 2, kommer den grundläggande partikelstorleken att göra 20500 0,02 1000 0,41. Det är mycket viktigt att kontrollera överensstämmelsen med storleksstorlek och att normalisera resultatet med tillåtna värden. Normalt är fraktionerade partier med steg om 0,1 tillåtet. En transaktion med en volym på 0,41 kommer inte att utföras. För normalisering används funktionen NormalizeDouble () med noggrannhet upp till 1 tecken efter punkten. Detta resulterar i det grundläggande partiet av 0,4. Grundvärdesberäkning på grundval av fri marginal tillåter att öka i volymer av operation beroende på handelns framgång, dvs att handla med återinvestering. Detta är den grundläggande mekanismen med obligatorisk kapitalförvaltning för att öka effektiviteten i handeln. DecreaseFactor är i vilken utsträckning partiets storlek kommer att minskas efter olönsam handel. Normala värden är 2,3,4,5. Om de föregående transaktionerna var olönsamma minskar de efterföljande volymerna med en minskningsfaktor för att vänta genom den obetydliga perioden. Detta är huvudfaktorn i kapitalhanteringsalgoritmen. Tanken är väldigt enkel: om handeln ökar med framgång, arbetar experten med det grundläggande partiet och ger maximal vinst. Efter den allra första olönsam transaktionen kommer experten att minska hastigheten tills en ny positiv transaktion har gjorts. Algoritmen tillåter att inaktivera hastighetsminskning. För att göra det måste man ange minskningsfaktor 0. Mängden av de senast påföljande olönsamma transaktionerna beräknas i handelshistoriken. Baspartiet kommer att beräknas enligt följande: Algoritmen möjliggör sålunda att effektivt minska risken som uppstår till följd av en serie olönsamma transaktioner. Partikelstorleken är obligatoriskt kontrollerad för den lägsta tillåtna storleken i slutet av funktionen eftersom De tidigare gjorda beräkningarna kan resultera i parti 0: Experten är huvudsakligen avsedd att arbeta med daglig och i testläge - för att göra till nära priser. Det kommer endast att handla vid öppnandet av en ny stapel, det är därför det inte är nödvändigt att använda alla kryssmodeller. Testresultatet är representerat i rapporten. Moving Average - MA BREAKING DOWN Moving Average - MA Som ett SMA-exempel, överväga en säkerhet med följande stängningskurser över 15 dagar: Vecka 1 (5 dagar) 20, 22, 24, 25, 23 Vecka 2 (5 dagar) 26, 28, 26, 29, 27 Vecka 3 (5 dagar) 28, 30, 27, 29, 28 En 10-dagars MA skulle medeltala slutkurserna för de första 10 dagarna som första data punkt. Nästa datapunkt skulle släppa det tidigaste priset, lägga till priset på dag 11 och ta medeltalet, och så vidare som visas nedan. Som tidigare noterat lagrar MAs nuvarande prisåtgärd eftersom de är baserade på tidigare priser, ju längre tidsperioden för MA, desto större är fördröjningen. Således kommer en 200-dagars MA att ha en mycket större grad av fördröjning än en 20-dagars MA eftersom den innehåller priser för de senaste 200 dagarna. Längden på MA som ska användas beror på handelsmålen, med kortare MAs som används för kortfristig handel och långsiktiga MAs mer lämpade för långsiktiga investerare. 200-dagars MA följs i stor utsträckning av investerare och handlare, med raster över och under detta glidande medel anses vara viktiga handelssignaler. MAs ger också viktiga handelssignaler på egen hand eller när två genomsnitt övergår. En stigande MA indikerar att säkerheten är i en uptrend. medan en minskande MA indikerar att den ligger i en nedåtgående trend. På samma sätt bekräftas uppåtgående momentum med en haussead crossover. som uppstår när en kortsiktig MA passerar över en längre tid MA. Nedåtgående momentum bekräftas med en bearish crossover, som uppstår när en kortsiktig MA korsar under en längre sikt MA. Jag vet att detta kan uppnås med boost enligt: ​​Men jag vill verkligen undvika att använda boost. Jag har googled och inte hittat några lämpliga eller läsbara exempel. I grund och botten vill jag spåra det rörliga genomsnittet av en pågående ström av en ström med flytande punktnummer med de senaste 1000 siffrorna som ett dataprov. Vad är det enklaste sättet att uppnå detta jag experimenterade med att använda ett cirkulärt array, exponentiellt glidande medelvärde och ett enklare glidande medelvärde och fann att resultaten från den cirkulära gruppen passade mina behov bäst. frågade 12 juni 12 kl 4:38 Om dina behov är enkla kan du bara försöka använda ett exponentiellt glidande medelvärde. Enkelt du skapar en ackumulatorvariabel, och när din kod tittar på varje prov uppdateras koden med ackumulatorn med det nya värdet. Du väljer en konstant alfa som är mellan 0 och 1 och beräknar detta: Du behöver bara hitta ett värde av alfa där effekten av ett visst prov endast varar för cirka 1000 prover. Hmm, jag är inte säker på att det här passar dig, nu när jag har lagt den här. Problemet är att 1000 är ett ganska långt fönster för ett exponentiellt rörligt medelvärde. Jag är inte säker på att det finns en alfa som skulle sprida medelvärdet över de senaste 1000 siffrorna, utan underflöde i flytpunktsberäkningen. Men om du ville ha ett mindre medelvärde, som 30 nummer eller så, är det här ett mycket enkelt och snabbt sätt att göra det. svarade 12 jun 12 kl 4:44 1 på ditt inlägg. Det exponentiella glidande medlet kan låta alfabetet vara variabelt. Så här tillåter det att det används för att beräkna tidsbaserade medelvärden (t ex byte per sekund). Om tiden sedan den senaste ackumulatorns uppdatering är mer än 1 sekund, låter du alpha vara 1,0. Annars kan du låta alpha vara (usecs sedan senaste uppdateringen1000000). ndash jxh Jun 12 12 at 6:21 I grund och botten vill jag spåra det rörliga genomsnittet av en pågående ström av en ström av flytande punkttal med de senaste 1000 siffrorna som ett dataprov. Observera att nedanstående uppdaterar summan som element som läggs ut och undviker kostsam O (N) - korsning för att beräkna summan som behövs för genomsnittet - efterfrågan. Totalt görs en annan parameter från T för att stödja t. ex. använder en lång lång när totalt 1000 lång s, ett int för char s, eller en dubbel till totalt float s. Det här är lite bristfälligt i att numsamples kan gå förbi INTMAX - om du bryr dig att du kan använda en unsigned long long. eller använd en extra bool-data medlem för att spela in när behållaren fylls i första gången medan cykeltalsprover runt arrayen (bäst omnämndes något oskyldigt som pos). svarade den 12 juni 12 på 5:19 en förutsätter att kvoträttsoperatören (T-provet) kvot är faktiskt kvittooperatör (T-prov) citat. ndash oPless 8 juni 14 kl 11:52 oPless ahhh. välspotted. egentligen menade jag att det skulle vara tomt operatör () (T-prov) men självklart kunde du använda vilken anteckning du gillade. Kommer att fixa, tack. ndash Tony D Jun 8 14 kl 14:27

No comments:

Post a Comment