Sadece su ve PSar..
PSar Parametreleri..
Kod:
public double PSar_AccelerationFactor { get; set; } //Minimum="0.01" Maximum="0.50" SmallChange="0.01"
public double PSar_Increment { get; set; } //Minimum = "0.001" Maximum = "0.2" SmallChange = "0.001"
public int PSar_SearchCount { get; set; } //Minimum="2" Maximum="50" SmallChange="1"
Bu sınırlar dahilinde 50 x 200 x 49 = 490000 - dört yüz doksan bin adet hesaplama yapılabilir.
PSar değerinin üzerinde kapanışta AL, altında kapanışta SAT.
Ama hangi değerler?
Kod:
// ISCTR AL-SAT ŞARTLARI
// SATIŞ ŞARTLARI
#StyleName;PSAR Trading Exit
StyleDescription;PSAR SATIŞ sinyali şartları
StyleType;TradingSELL
//
#Condition
InformationWhenConditionOccured;PSAR değeri altında kapattı
//
Equation;Value:CLOSEREAL[0];<=;Indicator:PSAR[0]
#EndCondition
#EndStyle
//
// ALIŞ ŞARTLARI
#StyleName;PSAR Trading Entry
StyleDescription;PSAR ALIM sinyali şartları
StyleType;TradingBUY
#Condition
InformationWhenConditionOccured;Kapanış PSAR değeri üzerinde
//
Equation;Value:CLOSEREAL[0];>=;Indicator:PSAR[0]
#EndCondition
#EndStyle
520 gün için
Hesaplama ve liste:
Kod:
private void DoCalculation_PSar()
{
PSarSonuclari tabloSatirlari = new PSarSonuclari();
int id = 1;
int daysCountForPerformanceTest = 520;
for (int search_count = 2; search_count <= 30; search_count++)
{ //Minimum="2" Maximum="50" SmallChange="1"
int PSar_SearchCount = Convert.ToInt16(search_count);
for (int acceleration_factor = 1; acceleration_factor <= 50; acceleration_factor++)
{ //Minimum="0.01" Maximum="0.50" SmallChange="0.01"
double PSar_AccelerationFactor = Math.Round((double)acceleration_factor / 100, 2);
for (int increment = 1; increment <= 200; increment++)
{ //Minimum = "0.001" Maximum = "0.2" SmallChange = "0.001"
double PSar_Increment = Math.Round((double)increment / 1000, 3);
App.BIST.TradingGraph.Menkul.ResetPSAR_Period(PSar_AccelerationFactor, PSar_Increment, PSar_SearchCount);
clsCalculate_PSar pSar = new clsCalculate_PSar();
pSar.CalculatePSAR(App.BIST.TradingGraph.Menkul, App.BIST.TradingGraph.GunlukBarlar, true);
int islemSayisi = 0;
double gainLoss = AlSat_Performans_Hesapla_PSAR(hesaplanacakGunSayisi: daysCountForPerformanceTest, ref islemSayisi);
PSarSonucu psonuc = new PSarSonucu
{
ID = id,
PSar_SearchCount = PSar_SearchCount,
PSar_Increment = PSar_Increment,
PSar_AccelerationFactor = PSar_AccelerationFactor,
GainLoss = Math.Round(gainLoss, 1),
islemSayisi = islemSayisi
};
id++;
tabloSatirlari.Add(psonuc);
}
}
clsExportToExcel<PSarSonucu, PSarSonuclari> Tablo = new clsExportToExcel<PSarSonucu, PSarSonuclari>
{
dataToPrint = tabloSatirlari
};
Tablo.GenerateReport();
}
}
Sonuçlar :
ISCTR için USD bazlı günlük barlarda
son 520 gün için yapılan 490 bin adet hesaplama sonucunun
en tepesindekiler..
Search Count;Increment;Acceleration Factor;Kazanç;Al-Sat Sayısı
18;0,117;0,45;668,7;41
18;0,114;0,47;660,5;41
22;0,115;0,47;658,9;42
22;0,115;0,46;658,9;42
22;0,127;0,5;651;41
22;0,126;0,5;651;41
22;0,112;0,49;648,9;41
22;0,114;0,48;648,9;41
22;0,113;0,48;648,9;41
22;0,112;0,48;648,9;41
22;0,114;0,47;648,9;41
22;0,113;0,47;648,9;41
22;0,112;0,47;648,9;41
22;0,114;0,46;648,9;41
22;0,12;0,46;647,8;41
19;0,114;0,48;647,3;41
18;0,113;0,47;647,3;41
23;0,125;0,46;644,8;41
18;0,114;0,49;644,4;41
18;0,114;0,48;644,4;41
18;0,114;0,46;642,9;41
22;0,125;0,46;642,8;41
22;0,115;0,49;642,7;42
22;0,115;0,48;642,7;42
23;0,124;0,47;638,7;41
23;0,124;0,46;638,7;41
34;0,189;0,47;637,6;44
34;0,188;0,47;637,6;44
34;0,187;0,47;637,6;44
34;0,186;0,47;637,6;44
22;0,124;0,46;636,7;41
22;0,123;0,46;636,7;41
22;0,122;0,46;636,7;41
22;0,121;0,46;636,7;41
19;0,109;0,49;634,4;41
19;0,108;0,49;634,4;41
18;0,108;0,49;634,4;41
18;0,109;0,48;634,4;41
18;0,108;0,48;634,4;41
34;0,187;0,49;633,2;44
34;0,186;0,49;633,2;44
22;0,112;0,5;633;41
22;0,114;0,49;633;41
22;0,113;0,49;633;41
22;0,127;0,49;632,2;42
24;0,103;0,5;632,1;39
24;0,103;0,49;632,1;39
22;0,12;0,48;632;41
22;0,12;0,47;632;41
19;0,112;0,5;631,5;41
...
Sonuç: 100 USD 520 işlem gününde 669 USD olmuş.
Search Count: 18
Increment: 0,117
Acceleration Factor: 0,45
Alım işlemi + Satım işlemi : 41 + 41
Hesaplamaların dağılım gösterimi: (Sadece 18 periyotta (Search Count = 18) yapılan hesaplamalar için birikimin 500 USD ve üzerinde olduğu değerler)

Grafik üzerinde gösterim: (Maksimum birikim 837 USD mertebesine çıkmış)

Hiç bir ara düzeltme, stoploss değersiz, over bought bölgelerde take profit yapmadan.. trendin olmadığı bölgeler devre dışı bırakılmadan, diğer ara şartlar olmaksızın sadece PSar ile Al Sat işlemi hesaplamasında
ISCTR için USD bazlı son 520 günlük barda 100 USD ile maksimum 837 USD ve son işlemde elde kalan 669 USD
Sorun şu; PSar karmaşık bir hesaplama gerektiriyor ve bir sonraki bar için kapanış değeri - pivot değer - hesaplama algoritması baya zor.. onun için iteratif hesaplama yapılacak.
Soru şu: akşamdan şartı emirlerle bu işi halledebilir miyim?
Yer İmleri