stoploss fonksiyonu IQ içerisinde sıkıntıl zaten mesela çoklu periyot kullandığınızda sapıtıyor ben bu durumun üstesinden kendi hareketli stoploss kodumu yazarak geldim. örnek olması açısından aşağıda paylaşıyorum. yeniden başladığında tekrar kaldığı yerden başlaması için syop rakamını diske yazabilir ve açılışta değeri okutabilirsiniz.
public bool ZararKes(decimal close, decimal percent)
{
if (close>enYuksekDeger)
{
enYuksekDeger = close;
}
var temp = enYuksekDeger * ((100 - percent) / 100);
if (temp>close && enYuksekDeger != 0)
{
return true;
}
else
{
return false;
}
}
yüksek değer public ve namespacesin en üstü olmalı. en yüksek değer ontimer içinde devamlı güncellenmesi gerekiyor.
public void DegiskenleriDosyayaYaz(string folder, string file)
{
if (!System.IO.Directory.Exists(folder))
Directory.CreateDirectory(folder);
string fileName = Path.Combine(folder, file + ".txt");
/*if (!File.Exists(fileName))
{
File.AppendAllText(fileName, YON);
}*/
//File.WriteAllText(fileName, stopDegeri.ToString());
File.WriteAllText(fileName, "");
File.WriteAllText(fileName, YON);
Debug(YON + " olarak dosya yazıldı");
//Debug(fileName + " dosyasina yazildi");**
}
// Veri Oku
public void DegiskenleriDosyadanOku()
{
if (!System.IO.Directory.Exists(folder))
Directory.CreateDirectory(folder);
string fileName = Path.Combine(folder, dosyaadi + ".txt");
if (!File.Exists(fileName))
{
File.AppendAllText(fileName, YON);
Debug("dosya kontrol edildi");
}
// Open the file to read from.
string readText = File.ReadAllText(fileName);
YON = readText;
Debug("dosya okundu " + YON);
if (YON == "BUY")
{
hizliKontrol = false;
}else
{
hizliKontrol = true;
}
//stopDegeri = Convert.ToDecimal(readText);
}