Skip to main content

C Sharp Exponentiella Glidande Medelvärde


Ett möjligt tillvägagångssätt här är att ha en metod som returnerar kärnan. Från vad jag kan se skulle ingångar till denna metod vara kärntyp. jag. och otherInputs. Ett enkelt tillvägagångssätt skulle vara: Det här är förstås fruktansvärt, fruktansvärt grovt, och mycket förbättring kan göras, men det är endast meningen att det bara går att komma överens. Jag skulle använda ett gränssnitt för att representera en kärna och ha klasser härledda per kärna. Enligt min erfarenhet, som producerar tillräckligt läsbar och underhållbar kod, men det finns alltid utrymme för förbättringar. besvarad 1 aug 14 kl 20:39 Exponential Moving Average - EMA BREAKING DOWN Exponentiell rörlig genomsnitts - EMA De 12 och 26-dagars EMA-erna är de mest populära kortsiktiga medelvärdena, och de används för att skapa indikatorer som den rörliga genomsnittliga konvergensdivergensen ( MACD) och den procentuella prisoscillatorn (PPO). I allmänhet används 50- och 200-dagars EMA som signaler för långsiktiga trender. Näringsidkare som anställer teknisk analys tycker att glidande medelvärden är mycket användbara och insiktsfulla när de tillämpas korrekt men skapar kaos när de används felaktigt eller misstolkas. Alla glidande medelvärden som vanligen används i teknisk analys är av sin natur släpande indikatorer. Följaktligen bör slutsatserna från att tillämpa ett glidande medelvärde till ett visst marknadsdiagram vara att bekräfta en marknadsrörelse eller att indikera dess styrka. Mycket ofta har den glidande genomsnittliga indikatorlinjen ändå förändrats för att återspegla ett betydande drag på marknaden, och den optimala marknaden för marknadsinträde har redan gått. En EMA tjänar till att lindra detta dilemma till viss del. Eftersom EMA-beräkningen lägger större vikt på de senaste uppgifterna, kramar prisåtgärden lite snävare och reagerar därför snabbare. Detta är önskvärt när en EMA används för att härleda en handelsinmatningssignal. Tolkning av EMA Liksom alla glidande medelindikatorer är de mycket bättre lämpade för trending marknader. När marknaden är i en stark och hållbar uptrend. EMA-indikatorlinjen visar också en uptrend och vice versa för en nedåtriktad trend. En vaksam näringsidkare kommer inte bara att uppmärksamma EMA-linjens riktning utan också förhållandet mellan förändringshastigheten från en stapel till en annan. Eftersom prisåtgärden för en stark uppåtgående börjar att platta och vända, kommer EMA: s förändringshastighet från en stapel till nästa att minska till dess att indikatorlinjen plattas och förändringshastigheten är noll. På grund av den försvagande effekten, vid denna punkt, eller till och med några få barer innan, bör prisåtgärden redan ha reverserat. Det följer därför att observera en konsekvent minskande i förändringshastigheten hos EMA kan själv användas som en indikator som ytterligare kan motverka det dilemma som orsakas av den släpande effekten av rörliga medelvärden. Vanliga användningar av EMA-EMA används ofta i kombination med andra indikatorer för att bekräfta betydande marknadsrörelser och att mäta deras giltighet. För näringsidkare som handlar intradag och snabba marknader är EMA mer tillämplig. Ofta använder handlare EMA för att bestämma en handelsförskjutning. Till exempel, om en EMA på ett dagligt diagram visar en stark uppåtgående trend, kan en intraday traders strategi vara att bara handla från långsidan på en intraday chart. It ser mig som användningen av gårdagens EMA när den första dagen ( Och därmed finns det ingen igår) kan baseras på olika data, beroende på vilka artiklar du läser. Jag är inte en stockexpert, så jag fortsätter bara med vad jag har läst. Jag läste i Dummies artikeln som jag länkade till, att det kan bli så som jag visade dig och det är att börja med det första dagens stängningsvärde som quotyesterdays EMAquot. Du kan också använda ett genomsnitt av stängningsdagarna under perioden (SMA, jag antar). men det ser ut som att det bara används för det första värdet beräknat (och används som quotyesterdays EMAquot i formeln), inte hur du gjort det. Så, i din skärmdump från ditt tidigare inlägg, skulle det SMA3-värdet på 1020, 27.733, INTE placeras i kolumnen för EMA3 1020, men det skulle användas i beräkningen för EMA3 på 1018 som quotyesterdays EMAquot. Så medan SMA3 har noll för 1018 och 1019, skulle EMA3 inte ha nollor där. EMA3 för dessa 2 datum bör vara 28.017 och 27.909. Så, i min kod där jag har standardiserat de tidigare EMA: erna till SMVClose, kan vi ändra det på följande sätt: Återigen är det baserat på vad jag läser och i Dummies artikeln visar den det också. Jag tycker verkligen att det här är vad du vill ha. Bonnie DeWitt C MVP Markerad som svar av newandold Söndag 21 december 2014 5:33 Torsdag den 18 december 2014 16:52 Det här blir så mycket enklare om du ändrar din kod för att använda ListltEmaDatagt, som jag redan nämnde i en tidigare svar. Här har jag tidigare föreslagit: gtgtadd SMA-egenskaperna till den dataklassen. Jag ringde klassen EmaData, men det var för att jag trodde du bara beräkna EMA-värden, men du kan gå vidare och lägga till SMA-egenskaperna till den också. Ändra sedan dina metoder för att använda samma ListltEmaDatagt för att beräkna första SMA och sedan EMA (du behöver nog flera loopar genom listan).ltlt Så snart du har slungat igenom listan och beräknat dina SMA-värden, använder du rätt SMA-värde för Din startande EMA blir mycket enklare. Använd bara samma looping code som jag visade i ett tidigare svar för att beräkna EMA (men använd en annan start EMA baserat på SMA, istället för hur jag gjorde det). Bonnie DeWitt C MVP Markerad som svar av newandold Söndag 21 december 2014 5:33 Fredag ​​den 19 december 2014 11:28 När du befinner dig som behöver förenkla koden, tänka alltid på att skapa en ny metod för att sätta några av de koden in. Vad jag gjorde satt den repeterande koden i en ny metod: Så istället för att göra allt det i din ursprungliga slinga, ringde du helt enkelt den nya metoden istället: Det är inte så mycket renare Bonnie DeWitt C MVP Markerad som svar från newandold Söndag 21 december 2014 5:33 AM Lördag 20 december 2014 17:44 Alla svar Enligt din titel har du nämnt Exponentential Moving Average, menar du EMA i PowerPivot. Om så är fallet finns det ett speciellt forum för din fråga, här är länken, SQL Server gt Power Pivot. Gtgt Jag försöker men jag hade inte den i c som jag gjorde i vb (det är också väldigt väldigt långsamt i vb) och resultatet i c är annorlunda än vb Så vad vill du uppnå Du vill ändra koden du skrev till Cor något annat Ha en trevlig dag Vi försöker bättre förstå kundernas syn på social support erfarenhet, så ditt deltagande i detta intervjuprojekt skulle uppskattas om du har tid. Tack för att du har hjälpt till att göra gemenskapsforum ett bra ställe. Klicka HÄR för att delta i undersökningen. Onsdag den 3 december 2014 07:03 Om dina frågor i sammanfattning 1. C - och VB-kod för samma EMA-algoritmimplementering ger ett annat resultat. 2. Din VB-kod är väldigt långsam. För den första frågan. Returnerar C ett felresultat Om så kan du dela C-koden hur du implementerar EMA-algoritmen för att jag ska göra lite lokalt test. Det skulle vara mycket uppskattat om du ger mer detaljerad information. För den andra frågan Vi försöker bättre förstå kundernas syn på social support erfarenhet, så ditt deltagande i detta intervjuprojekt skulle uppskattas om du har tid. Tack för att du hjälper till att göra forum för community ett bra ställe. Klicka HÄR för att delta i undersökningen. Torsdag den 04 december 2014 10:17 Jag är fortfarande inte säker på vad din fråga är, men jag misstänker att den har något att göra med cellfärg baserat på jämförelsen av vissa beräkningar. Jag tror att du säger att jämförelsen är annorlunda i C än i VB. Det enda jag kan tänka mig att fråga dig är: är dina värden lagrade som dubbel eller decimal. Dubblar är inte bra när man gör jämförelser, medan du inte har det problemet med decimaler. Du bör definitivt lagra dina data som decimala variabler. Heres ett blogginlägg jag skrev om ämnet: Bonnie DeWitt C MVP Fredag ​​den 5 december 2014 16:40 Tidspunkter 3 Multiplikator: (2 (Tidsperioder 43 1)) EMA x multiplikator 43 EMA (tidigare dag) Jag skulle vilja Att tillämpa EMA-formel med kommatextfil och visa den i datagridview 1- av ett enskilt objekt som flöde 2- av alla objekt (får den senaste händelsen i posten) som flöde efter beräkning, kommer jag att använda flödesförhållandet för att få färgen på Datagridview data som använder som txt-fil Du fortsätter att visa samma saker om och om igen. Det hjälper inte någon av oss att räkna ut exakt var du har problem. Kan du bara förklara var du är fast och inte upprepa bilderna eller data igen. Vi har redan sett det som en gazillion gånger. Om jämförelserna inte har rätt, kan det ha något att göra med dubbel mot decimal, som jag sa tidigare. Om du är fast vid att få in data från en textfil, vilken del har du fast på Om du har fastnat visas data i ett rutnät, var var exakt är problemet Om det inte är något av dessa saker, vad är frågan du behöver svara på Jag är säker på att jag inte är den enda som förvirras av detta. Bonnie DeWitt C MVP Fredag ​​den 5 december 2014 22:19 Du fortsätter att visa samma saker om och om igen. Det hjälper inte någon av oss att räkna ut exakt var du har problem. Kan du bara förklara var du är fast och inte upprepa bilderna eller data igen. Vi har redan sett det som en gazillion gånger. Om jämförelserna inte har rätt, kan det ha något att göra med dubbel mot decimal, som jag sa tidigare. Om du är fast vid att få in data från en textfil, vilken del har du fast på Om du har fastnat visas data i ett rutnät, var var exakt är problemet Om det inte är något av dessa saker, vad är frågan du behöver svara på Jag är säker på att jag inte är den enda som förvirras av detta. Bonnie DeWitt C MVP hur man beräknar EMA (exponentiell glidande medelvärde) källdatan är kommatextfil Lördag den 6 december 2014 5:24 Jag förstår formeln nu från länken du publicerade, själva formuläret är ganska enkelt. Men vilken del av detta har du ett problem med att läsa från textfilen Eller vad ska man göra med siffrorna när man läser dem från textfilen Eller hur man visar dem i ett rutnät Vad sägs om detta. Varför visar du oss inte delar av din kod, speciellt den del som du har problem med. Det kan vara lättare för alla, så att vi inte behöver fortsätta gissa om vad du behöver veta. Och just för att det var så, citerade jag Googled ema cquot och hittade några länkar som kan hjälpa till. Jag vet inte säkert, för jag kan inte räkna ut vilken del du är fast på, men kolla in dem: Den sista artikeln använder sig av ett gratis Open Source-bibliotek som heter TA-Lib, Technical Analysis Library (det finns en länk för att klicka på i artikel). Bonnie DeWitt C MVP Redigerad av BonnieB MVP, Moderator Lördag 6 december 2014 6:06 Förtydligande Lördag 6 december 2014 6:05 AM Har du försökt att gå igenom din kod i felsökaren Lätt efter att ha läst i textfilen foreach genom linjerna, din om: om (ComName SplitString0) alltid kommer att vara falsk, har du initialiserat ComName till en tom sträng. ComSize kommer därför alltid att vara noll och din nästa för loop gör ingenting heller. Så, det är ditt problem där. Jag försökte köra din kod och det första jag gjorde var att ställa in en debugger-brytpunkt när den läste i textfilen. Det är hur jag hittade det här problemet. Prova att använda debugger för att gå igenom din kod. Det hjälper dig att hitta problemen enklare själv. Bonnie DeWitt C MVP lördag 06 december 2014 15:39 Jag ändrar koden bara ComName-visa i DataGridView3 och resten visas inte men när jag klickar i cellen visas den och om jag klickar på den andra kommer den att visa Och det föregående kommer att döljas igen det resultat jag får är SMA (enkelt glidande medelvärde) inte för EMA (exponentiell glidande medelvärde) Lördag den 6 december 2014 17:26 Endast ComName-showen i DataGridView3 och resten visas inte men när jag klickar i cellen kommer det att visas och om jag klickar på en annan kommer det att visas och det föregående kommer att döljas igen. Jag ser inte det beteendet. Det visar allt bra i mitt rutnät. I formgivaren har jag helt enkelt släppt en DataGridView på min form, gick in i egenskaperna för rutnätet, sedan till kolumnerna och lagt till de 6 kolumnerna. Jag gjorde inget annat, och allt ser bra ut. Du måste göra något annat i ditt rutnät som orsakar beteendet du ser, men jag är inte säker, från toppen av mitt huvud, vad som kan orsaka det. Kanske är dina kolumner tillräckligt breda eller har du gjort någon formatering i dem Eller hanterar du någon form av rader eller cellhändelser som kan göra några konstiga saker Bonnie DeWitt C MVP Lördag 6 december 2014 17:58 Jag ska kolla på det tack lördag 06 december 2014 18:19 Du är välkommen. Hålla oss uppdaterade på dina framsteg Bonnie DeWitt C MVP Lördag 6 december 2014 10:14 PM för DataGridView3 jobbar nu för formeln fungerar inte och jag försöker också detta, men båda fungerar inte det jag inte kan uppnå Den första EMA ( Föregående dag) (summan av de senaste tre (nära pris) 3) Jag skulle använda det låga priset som början av EMA så att det kommer att vara (27,1) stående på 27.733 den gröna) med hänsyn till slutet av periodtiden (som om EMA på 3 dagar kommer att ha den sista två raden som (0) eftersom det är mindre 3 jag tycker att du säger att den gröna för EMA3 ska vara 27,1 istället för 27.33, men de två sista är korrekt vid 0. Är det korrekt Om Så jag har en enkel åtgärd för dig. Jag är inte säker på vilken av de två kodsedlarna du bara visade i ditt senaste inlägg är de du använder nu, men jag använder koden från ditt tidigare inlägg (före den sista). du måste göra är att göra följande ändringar: Det borde göra det. Det fungerade för mig med versionen av koden jag använder. Bonnie D EWitt C MVP söndag 07 december 2014 16:46 Det fungerar inte men nedan är data från textfilen och tricket i EMA (föregående dag) hur kommer början på det 1- genom att använda nära pris som du gjorde i ditt senaste inlägg 2- genom att använda ett enkelt glidande medelvärde ska du omvärdera det. Jag ger upp tidsperioder 3 Multiplikator: (2 (tidsperioder 43 1)) EMA x multiplikator 43 EMA (föregående dag) Jag skulle vilja tillämpa EMA-formel med kommatextfil och visa den i datagridview 1- av ett enskilt objekt som flöde 2 - av alla objekt (kommer att få den senaste händelsen av posten) som flödet data som använder som txt-fil för mer information om EMA inte när jag använder all den kod som jag gjorde i stor txt-fil kommer det att bli mycket långsamt Tack så mycket För all din hjälp uppskattar jag verkligen det ja men inte arbetar för textfil och det här första inlägget som löser EMA-läsning från kommatextfilen. Jag söker på internet men jag hittade inte. även om jag gjorde det med koden ovan som fortfarande inte gjorde det rätt gjorde jag det enkla glidande medlet i c som jag kodade ovan men det är inte effektivt. Det är väldigt långsamt för stor post det finns jQuery men jag behöver det som c så jag letar efter annan kod som kan hantera mycket stor post med villkoret för datagridview cellfärg som under int DLaetRow DataGridView3. Rader. Count - 2 if (ema3 gt Math. Abs ((((2) (smvClose)) 100) 43 (smvClose))) DataGridView3. Rader DLaetRow. Celler 3 Stil. BackColor Färg. LightGreen annars om (ema3 lt Math. Abs ((((2) (smvClose)) 100) - (smvClose))) DataGridView3. Rader DLaetRow. Celler 3 Stil. BackColor Färg. Red edited by newandold Tisdag, 09 december 2014 21:33 Tisdag, 09 december 2014 21:32 OK, jag fick äntligen tid att göra det, och jag borde ha tänkt på att göra det så här från början. Skapa en EmaData-klass för att hålla de beräknade värdena för varje rad av data och använd en ListltEmaDatagt för att hålla dem alla. Då kan du göra alla beräkningar i en slinga genom data. Heres vad jag slutade med: Bonnie DeWitt C MVP Lördag 13 december 2014 17:59 Tack för din tid och hjälp det är snabb kod det gjordes med hjälp av nära pris men det var inte det sista nära priset som startade det behöver några ändringar, tack så mycket, tack för det här fantastiska arbetet och tack så får jag det här med 2 till alla objekt (kommer att få den senaste händelsen i posten) som flöde tack så mycket jag uppskattar verkligen det. Redigerad av newandold lördag den 13 december , 2014 21:59 Jag fick information om hur man beräknar EMA från den här länken: Jag anser att quotDummiesquot-böckerna är auktoritativa källor. Om du tittar på rutnätet som de visar för beräkningen, finns det ingen nollor för någon av EMA-beräkningarna. Så det är därför du inte ser det med min kod. Om du vill göra dem noll är allt du behöver göra genom att ändra koden för att ställa in den till noll för lämplig post (jag vet verkligen inte varför du vill ha det men det verkar inte vara ett standardresultat för EMA): Din Den andra frågan är helt enkelt en fråga om att få de sista dagarna från SMVListen, vilket skulle vara SMVListSMVList. Count - 1. Jag är säker på att du kan räkna ut hur man får det och lägger det i det andra nätet (EMA Analysis). Bonnie DeWitt C MVP lördag 13 december 2014 10:17 PM Beklagar, jag postade något felaktigt i mitt tidigare inlägg. Eftersom SMVList är i omvänd kronologisk ordning, skulle den sista datumuppgiften faktiskt vara första i listan, så youd vill se som SMVList0. Jag ville också lägga till min kommentar om de nollor som inte tillhör EMA-beräkningarna. Det verkar vara meningsfullt med de SMA-beräkningar du gjorde tidigare, men jag ser det fortfarande inte upp med EMA-beräkningar (igen, det här är enligt Dummies-boklänken, eftersom jag personligen vet absolut ingenting om EMA). Bonnie DeWitt C MVP söndag 14 december 2014 02:42 vad sägs om den här 2- av alla objekt (kommer att få den senaste händelsen av posten) som flöde får sista händelsen för alla saker som ovan jag testar det men som du ser Nedan Redigerad av newandold Söndag, 14 december 2014 04:02 Söndag 14 december 2014 3:51 Ja, jag förstod självklart dem båda bakåt, gjorde jag inte ledsen Men du borde förmodligen ha kunnat räkna ut den här själv. Men jag vill bara påpeka att detta skruvar upp alla andra beräkningar, eftersom formeln är beroende av tidigare EMA-beräkning (som inte borde vara noll. Men det är när du lägger in den här ändringen). Jag tycker verkligen inte att det är vettigt. Kollar du på länken jag postade till Dummies-artikeln Plug in värdena från tabellen från den här länken till din textfil och du kommer att se att min ursprungliga kod matchar vad han visar i tabellen. Men om du insisterar på att göra dem noll, antar vi att vi kunde komma runt det genom att alltid göra de tidigare dagarna EMA. Gör det här i stället: Jag håller fortfarande inte med det, men vad vet jag. Bonnie DeWitt C MVP Söndag 14 december 2014 05:47 Tack för din insats, resultatet var inte som jag behöver eller rätt. Men för koden var det mycket bra för laddningshastigheten i datagradview. 1- få det enkla glidande medelvärdet 2- skapa lista över (enkla glidande medelvärdet) låt oss ta EMA3 a - kommer att använda värdet av den sista sma som det första värdet av ema i beräkningen men båda har samma period som 3 jag lägger till pic för att förklara det mer också jag försöker göra det med din kod Redigerad av newandold Måndag den 15 december 2014 07:56 Förlåt, jag kan inte spendera mer tid på detta just nu. Du fortsätter att ändra vad du vill, eller åtminstone verkar det som för mig. Det bästa jag kan säga just nu är att lägga till SMA-egenskaperna i den dataklassen. Jag ringde klassen EmaData, men det var för att jag trodde du bara beräkna EMA-värden, men du kan gå vidare och lägga till SMA-egenskaperna till den också. Ändra sedan dina metoder för att använda samma ListltEmaDatagt för att beräkna första SMA och sedan EMA (du behöver nog flera loopar genom listan). Jag tror inte att det kommer att vara för svårt att göra, jag kan inte röra med det just nu. Men jag tror att du kommer att kunna räkna ut det. Bonnie DeWitt C MVP Tisdag 16 december 2014 12:25 Du håller på att ändra vad du vill, eller åtminstone det verkar så långt för mig från mitt gamla inlägg. Den första EMA (föregående dag) sista nära pris eller (summan av de senaste tre (Nära pris) 3) också från gammalt inlägg för mer information om EMA om du gillar att markera ditt inlägg som svar kommer jag att göra det men för andra som söker EMA kommer att få fel resultat Redigerad av newandold Tisdag 16 december 2014 5 : 24 PM Det verkar som om jag använder EMAs gårdag när den första dagen (och därmed inte går igår) kan baseras på olika data, beroende på vilka artiklar du läser. Jag är inte en stockexpert, så jag fortsätter bara med vad jag har läst. Jag läste i Dummies artikeln som jag länkade till, att det kan bli så som jag visade dig och det är att börja med det första dagens stängningsvärde som quotyesterdays EMAquot. Du kan också använda ett genomsnitt av stängningsdagarna under perioden (SMA, jag antar). Men det ser ut som att det bara används för det första värdet beräknat (och används som quotyesterdays EMAquot i formeln), inte hur du gjort det. Så, i din skärmdump från ditt tidigare inlägg, skulle det SMA3-värdet på 1020, 27.733, INTE placeras i kolumnen för EMA3 1020, men det skulle användas i beräkningen för EMA3 1018 som quotyesterdays EMAquot. Så medan SMA3 har noll för 1018 och 1019, skulle EMA3 inte ha nollor där. EMA3 för dessa 2 datum bör vara 28.017 och 27.909. Så, i min kod där jag har defaulterat tidigare EMA till SMVClose, kan vi ändra det på följande sätt: Återigen är det baserat på vad jag läser och i Dummies-artikeln visar det det också. Jag tycker verkligen att det här är vad du vill ha. Bonnie DeWitt C MVP Markerad som svar av newandold Söndag 21 december 2014 5:33 Torsdag den 18 december 2014 16:52 Tack så mycket för det här excelet för att förklara det Redigerad av newandold Fredag ​​den 19 december 2014 2:00 PM fredag ​​den 19 december 2014 13:51 Jag delar c-koden Redigerad av newandold Fredag ​​den 19 december 2014 kl 22:09 Fredag ​​den 19 december 2014 10:08 PM Jag får det sista värdet av SMA (enkelt glidande medelvärde ) För att vara början på EMA-beräkningen, eftersom bilden nedan inte är bra eftersom ditt sätt att koda kommer det inte att vara snabbt som din kod, men hon klargör var du ska börja beräkna EMA (den första (ema3prev) nu hur man applicerar rad. Ema3 Math. Round ((rad. SMVClose k3) 43 (ema3prev (1 - k3)), 3. MidpointRounding. AwayFromZero) Fredag ​​19 december 2014 10:23 Det här blir så mycket enklare om du ändrar din kod för att använda ListltEmaDatagt, som jag redan nämnde i ett tidigare svar. Här har jag tidigare föreslagit: gtgtadd SMA-egenskaperna till den dataklassen. Jag ringde klassen EmaDa Ta, men det beror på att jag trodde du bara beräkna EMA-värden, men du kan gå vidare och lägga till SMA-egenskaperna till det också. Ändra sedan dina metoder för att använda samma ListltEmaDatagt för att beräkna första SMA och sedan EMA (du behöver noggrant flera slingor genom listan).ltlt Så snart du har slungat igenom listan och beräknat dina SMA-värden, använder du rätt SMA-värde för Din startande EMA blir mycket enklare. Använd bara samma looping code som jag visade i ett tidigare svar för att beräkna EMA (men använd en annan start EMA baserat på SMA, istället för hur jag gjorde det). Bonnie DeWitt C MVP Markerad som svar av newandold Söndag den 21 december 2014 5:33 Fredag ​​den 19 december 2014 11:28 Det här vad jag gjorde och nu arbetar Jag försöker lägga till EMA5 EMA9 EMA10 och så vidare koden var väldigt lång är det kort och professionellt sätt jag behöver din röra det här koden som i verklig är din kod Jag är tacksam för din hjälp Lördag den 20 december 2014 15:43 När du befinner dig behöver du förenkla koden, tänka alltid på skapa en ny metod för att lägga in en del av koden. Vad jag gjorde var att sätta den repeterande koden i en ny metod: Så istället för att göra allt det i din ursprungliga slinga, ringde du helt enkelt den nya metoden istället: Är inte så mycket renare Bonnie DeWitt C MVP Markerad som svar av newandold Söndag 21 december 2014 5:33 Lördag den 20 december 2014 17:44 Hur får jag det är allt index som att få sista händelsen för alla saker som ovan när jag försöker Jag får alla poster av både (DATATWO OCH ONEDATA) tack för ditt stöd och jag testa din kodändring i l arge data för singelobjekt och var snabb nog Lördag den 20 december 2014 10:23 När du vill hämta data för båda objekten kan du använda en ordlista för att lagra flera listor. Du skulle behöva ändra din MAByItem () - metod för att returnera en ListltEmaDatagt, så det skulle se ut så här: Och då skulle du kalla den här metoden lite annorlunda än vad du ringde det förut: Du kan behöva ändra några andra saker i ditt MAbyitem () - metoden, eftersom jag inte vet hur du vill visa det andra nätverket som vi har arbetat med. Kalla kanske Metoden AddDataToGrid () här istället för i MAbyitem () - metoden. Och kanske passera det nät som du vill ha som en parameter i metoden AddDataToGrid (). Men i alla fall borde du kunna räkna ut resten av det, hoppas jag. Bonnie DeWitt C MVP Söndag 21 december 2014 12:28 Jag försöker använda koden men jag har mer än 300 saker men inte fungerar Redigerad av newandold Söndag 21 december 2014 kl 12:10 söndag 21 december 2014 11 : 43 AM Jag sa att du måste ändra din kod lite mer, huvuddelen av mitt senaste svar handlade om att använda en ordlista för att lagra listorna för båda objekten. Jag visste inte om din AllItems () - metod, men det måste självklart vara lite annorlunda än din MAbyitem () - metod. Gå tillbaka till att använda ordlistan, som jag visade i mitt tidigare svar, men använd det i din AllItems () - metod enligt följande: Bonnie DeWitt C MVP Söndag 21 december 2014 16:34 Jag lägger till koden som här nedan felet Jag har söndag den 21 december 2014 kl 19:32 Vilken metod är det undantaget som uppstår i Jag förstår inte varför du inte använder min kod, den del där alla dessa beräkningar inkapslas i en metod, metoden CalcEmaX () som kallas från CalcEma () - metoden. Jag trodde du kom överens om att det fungerade OK, varför använder du annan kod Vad är svmTmpInt200 Det är något nytt. Baserat på dina namngivningskonventioner, tycks det tyda på att det har ett värde av 200. Jag tror att problemet är att SMVList. Count - svmTmpInt200 är negativt (eftersom din räkning är mindre än 200), så eftersom du loopar bakåt är jag Alltid kommer att vara större än det värdet, och följaktligen har slingan ingen stopppunkt och jag fortsätter att minska tills den är negativ, då får du undantaget. Skriv in någon relevant kod, tack. Bonnie DeWitt C MVP Söndag 21 december 2014 21:02 Jag lägger bara till mer Period och all kode är här så det fungerar för signalobjekt för (i gt SMVList. Count - svmTmpInt200) jag försöker byta ut det med olika så det kommer inte att vara begränsat till specifika Period Ja, jag testar ett annat sätt att ta din kod som min referens Redigerad av newandold Söndag 21 december 2014 21:44 Söndag 21 december 2014 21:28 i gammal kod som var långsam , Jag använde rubriken för datagridview söndag den 21 december 2014 10:16 Du har redan provat min kod. Du sa att det fungerade bra och var snabbt. Och ändå använder du det inte som jag skrev det. Du är mycket bättre med CalcEmaX () och AddDataToGrid () metoder som innehåller all den överflödiga koden (huvudsakligen alla ifs). Din kod är för rörig annars (och du ville undvika det). Men det är inte där ditt nuvarande problem är, eftersom problemet ligger där du försöker beräkna smaX att använda som din emaX startpunkt. Jag tror att du kan skapa en CalcSmaX () - metod för att göra SMA-beräkningskoden lite renare också, men det är inte problemet igen. Problemet är att du inte har 200 rader i din lista, och ändå har du en loop som förutsätter att du gör Du måste kontrollera dina gränser: ändra det här: för (int i SMVList. Count - 1 i SMVList. Count - svmTmpInt200 Jag -) till detta: int max SMVList. Count - svmTmpInt200 om (max lt 0) max 0 för (int i SMVList. Count - 1 i max max )-- Bonnie DeWitt C MVP måndag 22 december 2014 12: 11 AM tack för din hjälp ja koden är inte så bra men jag kommer att starta om igen måndag 22 december 2014 20:35 Du är välkommen Jag hoppas att du kan få det här att fungera snart 0) Bonnie DeWitt C MVP tisdag 23 december, 2014 4:42 PM Microsoft genomför en online-undersökning för att förstå din åsikt på Msdn-webbplatsen. Om du väljer att delta, kommer onlineundersökningen att presenteras för dig när du lämnar Msdn-webbplatsen. Vill du delta? Hjälp oss att förbättra MSDN. Besök vår UserVoice-sida för att skicka in och rösta på idéer Dev-centra Lärande resurser Om koden är avgörande, kan det vara meningsfullt att undvika heaptilldelning för Candle s. Jag tror att det mest rimliga sättet att göra det skulle vara att göra ljus till en struktur. Även om mutable värde typer är onda. Så jag skulle också refactor Candle vara oföränderlig. Detta innebär också att implementeringen av newestCandle skulle behöva bytas, förmodligen till ett par dubbla fält (eller alternativt en separat variabel och återställbar klass). Jag ser ingen annan potentiell prestationsproblem i din kod. Men när det gäller prestanda, bör du alltid lita på profilering, inte din (eller någons) intuition. Jag gillar inte några namn på dina metoder. Specifikt: ValueUpdated. Metodnamn ska vanligtvis vara i formen göra något, inte något hände. Så jag tror att ett bättre namn skulle vara UpdateValue. Lägg till. Ändra. Det här är de två grundläggande operationerna i din MovingAverage och jag tror att de namnen inte uttrycker meningen väl. Jag skulle kalla dem något som MoveAndSetCurrent och SetCurrent. respektive. Även om en sådan namngivning indikerar att de grundläggande operationerna snarare skulle vara Flytta och Ställa in.

Comments

Popular posts from this blog

Binary Alternativ Pro Signaler Review

Binära alternativ Pro Signals. Binära alternativ Pro Signals Review. The Binära Options Pro Signals-tjänsten ger handlare möjligheten att automatiskt handla forex valutapar och lager. Båda kategorier av tillgångar kan innehålla objekt som tillåter en näringsidkare att komma fram med egna metoder och strategier utifrån de tillgångar som de förstår och vet bäst. Den binära alternativen Pro Signals-tjänsten erbjuder endast de traditionella höga eller låga alternativen som är vanligtvis de säkraste binära handelsalternativen som finns tillgängliga på marknaden idag. Företaget erbjuder inte snabbval som är notoriskt svårt för handlare att förutse och därför inte skulle kunna garantera 27 5 vinnande förhållandet. För att börja, måste du först registrera dig med tjänsten Binary Options Pro Signals för att kunna utföra en handel. När du är färdig kommer du att tillhandahålla Namn på de godkända mäklare i binär optionshandel Du måste registreras hos en eller flera mäklare och sedan starta recei

Forex Factory Aud Usd

AUDUSD prognos och teknisk analys granskning av de stora händelserna som kommer att flytta australiensiska dollar (Aussie) under den kommande veckan. Här är några allmänna uppgifter. Bläddra ner för den senaste AUDUSD-utsikten. Den australiensiska dollarn är en 8220risk8221-valuta. Det tenderar att fungera bra när lagren och råvarorna stiger och när atmosfären förbättras, faller när sakerna blir värre: de geopolitiska riskerna ökar. A8217s tekniska beteende är vanligtvis en av de bästa där ute, med respekt för stödlinjer och motstånd, trendlinjer etc. AUDUSD har blivit mer populär för techies de senaste åren, även efter finanskrisen som såg slutet på den berömda 8220carry-handeln .8221 Australien exporterar råvaror, främst av metaller som järn och koppar. Varupremmen behöll Australien ur lågkonjunktur i cirka 25 år och åtnjöt minebomben i samband med den kinesiska tillväxten. Även om gruvbommen troligen har nått toppen när det gäller tillväxt, slår sektorn fortfarande ganska mycket ut,

Forex Robot Free Mt4

MetaTrader4 (MT4) handelsplattform MetaTrader4 är en av de mest populära handelsplattformarna bland handlare. Detta beror på att plattformen har ett användarvänligt gränssnitt, innehåller många olika verktyg för handel och marknadsanalys och ger möjligheter att skapa nya handelsrobotar eller använda befintliga. 3 TYP AV BESTÄLLNINGSFÖRVALTNING 9 TIDSFRAMOR FÖR HANDEL 50 INTEGRERADE INDIKATORER FÖR TEKNISK ANALYS VARIETY OF ORDER TYPER GRATIS BASIS AV EXPERTER FÖR AUTOMATION AV ANALYTISKA FÖRFARANDEN MOTTAGNA SIGNALER OM SYSTEM OCH HANDELSHÄNDELSER Mobil handel Med hjälp av MetaTrader4 mobilapplikation kan du handla med Vilken iOS och Android-baserad mobilenhet som helst i världen. Ansökan stöder nät - och säkringssystem och innehåller alla verktyg och funktioner som behövs för handel: Marknadsdjup, alla typer av handel, 30 tekniska indikatorer, 24 analysobjekt etc. Yoursquoll är alltid medveten om marknadssituationen, som kan utföra handel Operationer och följ deras historia. MQL4 Mark