Open XubeiX opened 9 years ago
Ehe, a jak ktoś ma ciut więcej parametrów, to co teraz? ;p
W dniu 7 czerwca 2015 14:44 użytkownik Artur Ratajczak < notifications@github.com> napisał:
Metody te przeważnie wyglądają tak:
[image: przechwytywanie] https://cloud.githubusercontent.com/assets/9266046/8023920/eb703f3c-0d20-11e5-9ada-d030e2d005df.PNG
Jest to inna forma zapisu warunku IF then else. W linku poniżej jest przykład z zamianą. http://www.cafeaulait.org/course/week2/43.html
Zapis ten określa się jako: warunek ? true : false
By przetestować taki lookback trzeba postępować następująco. 1.Sprawdzić jak wygląda nasz lookback (screen powyżej) znajdziecie go w klasie Core na branchu developers. 2.Sprawdzić jak rozkładają się nawiasy. Bo trochę ich jest. W moim przypadku nawiasy te rozkładają się w następujący sposób.
( ( ((a))> ((b)) ) ? ((x)) : ((y)) ) +2;
Czyli niezależnie od warunku do wyniku końcowego zawsze zostanie dodane +2.
3.Stworzyć nowy obiekt Core(). Core c1 = new Core();
4.Zmienić ustawienie CandleSettings na własne, zależne od tego z których korzysta nasz lookback. Musimy znów popatrzeć w nasz screen [image: przechwytywanie] https://cloud.githubusercontent.com/assets/9266046/8023920/eb703f3c-0d20-11e5-9ada-d030e2d005df.PNG
widzimy tam takie zapisy: this.candleSettings[CandleSettingType.BodyShort.ordinal()].avgPeriod this.candleSettings[CandleSettingType.BodyLong.ordinal()].avgPeriod
zwracamy na uwagę jaki CandleSettingType występuje w nawiasach []. a jest to: CandleSettingType.BodyShort CandleSettingType.BodyLong
tym typom przypiszemy nową własną wartość avgPeriod gdyż to ona jest brana pod uwagę w lookbacku. Nasz if lookbackowy wygląda więc tak
(BodyShort.avgPeriod > BodyLong.avgPeriod ? BodyShort.avgPeriod : BodyLong.avgPeriod ) + 2
Teraz przypisujemy nową wartość avgPeriod dla obu CandleSettingType
RetCode r = c1.SetCandleSettings(CandleSettingType.BodyShort, RangeType.HighLow, 6, 10.0); RetCode r1 = c1.SetCandleSettings(CandleSettingType.BodyLong, RangeType.HighLow, 2, 10.0);
Dla BodyShort ustawiam wartość na 6 a dla BodyLong na 2. if ma więc postać (6>2) ? (6 : 2)+2; 6 > 2 to prawda zwrócone więc zostanie 6 oraz +2 poza nawiasem czyli zwróci nam 8;
Czyli sprawdzamy to: assertEquals(6+2, c1.cdl3InsideLookback());
5.By przetestować to w 100% trzeba odwrócić ten warunek. Czyli znów zmienić wartości dla BodyShort i BodyLong
r = c1.SetCandleSettings(CandleSettingType.BodyShort, RangeType.HighLow, 2, 10.0); r1=c1.SetCandleSettings(CandleSettingType.BodyLong, RangeType.HighLow, 8, 10.0);
2>8 nie jest wykona się więc false czyli u nas zwróci 8 oraz +2 poza nawiasem. Czyli zwraca 10;
Sprawdzamy to: assertEquals(8+2, c1.cdl3InsideLookback());
Tak oto wygląda cały test: [image: przechwytywanie2] https://cloud.githubusercontent.com/assets/9266046/8023998/abbeef70-0d23-11e5-8883-3f23e8c3c625.PNG
— Reply to this email directly or view it on GitHub https://github.com/Project-Runway/TA-Lib/issues/10.
Metody te przeważnie wyglądają tak:
Jest to inna forma zapisu warunku IF then else. W linku poniżej jest przykład z zamianą. http://www.cafeaulait.org/course/week2/43.html
Zapis ten określa się jako: warunek ? true : false
By przetestować taki lookback trzeba postępować następująco. 1.Sprawdzić jak wygląda nasz lookback (screen powyżej) znajdziecie go w klasie Core na branchu developers. 2.Sprawdzić jak rozkładają się nawiasy. Bo trochę ich jest. W moim przypadku nawiasy te rozkładają się w następujący sposób.
( ( ((a))> ((b)) ) ? ((x)) : ((y)) ) +2;
Czyli niezależnie od warunku do wyniku końcowego zawsze zostanie dodane +2.
3.Stworzyć nowy obiekt Core(). Core c1 = new Core();
4.Zmienić ustawienie CandleSettings na własne, zależne od tego z których korzysta nasz lookback. Musimy znów popatrzeć w nasz screen![przechwytywanie](https://cloud.githubusercontent.com/assets/9266046/8023920/eb703f3c-0d20-11e5-9ada-d030e2d005df.PNG)
widzimy tam takie zapisy: this.candleSettings[CandleSettingType.BodyShort.ordinal()].avgPeriod this.candleSettings[CandleSettingType.BodyLong.ordinal()].avgPeriod
zwracamy na uwagę jaki CandleSettingType występuje w nawiasach []. a jest to: CandleSettingType.BodyShort CandleSettingType.BodyLong
tym typom przypiszemy nową własną wartość avgPeriod gdyż to ona jest brana pod uwagę w lookbacku. Nasz if lookbackowy wygląda więc tak
(BodyShort.avgPeriod > BodyLong.avgPeriod ? BodyShort.avgPeriod : BodyLong.avgPeriod ) + 2
Teraz przypisujemy nową wartość avgPeriod dla obu CandleSettingType
RetCode r = c1.SetCandleSettings(CandleSettingType.BodyShort, RangeType.HighLow, 6, 10.0); RetCode r1 = c1.SetCandleSettings(CandleSettingType.BodyLong, RangeType.HighLow, 2, 10.0);
Dla BodyShort ustawiam wartość na 6 a dla BodyLong na 2. if ma więc postać (6>2) ? (6 : 2)+2; 6 > 2 to prawda zwrócone więc zostanie 6 oraz +2 poza nawiasem czyli zwróci nam 8;
Czyli sprawdzamy to: assertEquals(6+2, c1.cdl3InsideLookback());
5.By przetestować to w 100% trzeba odwrócić ten warunek. Czyli znów zmienić wartości dla BodyShort i BodyLong
r = c1.SetCandleSettings(CandleSettingType.BodyShort, RangeType.HighLow, 2, 10.0); r1=c1.SetCandleSettings(CandleSettingType.BodyLong, RangeType.HighLow, 8, 10.0);
2>8 nie jest wykona się więc false czyli u nas zwróci 8 oraz +2 poza nawiasem. Czyli zwraca 10;
Sprawdzamy to: assertEquals(8+2, c1.cdl3InsideLookback());
Tak oto wygląda cały test:![przechwytywanie2](https://cloud.githubusercontent.com/assets/9266046/8023998/abbeef70-0d23-11e5-8883-3f23e8c3c625.PNG)
to +2 dlatego, że za nawiasem w lookback jest +2.