Merhaba, IQ'da boyle bir ayar yok. Aciga satis yapilmak isteniyorsa ve yapilabilecek bir borsada islem yapiliyorsa, kodun icerisinde bunun satis olarak yazilmasi gerekiyor.
Bu su sekilde saglaniyor, ilk emriniz alis ise bir sonraki emriniz 2*(alinan miktar) sat, ilk emriniz satis ise bir sonraki isleminiz 2*(satilan miktar) al seklinde.
UZUN/AÇIK seklinde calisan ornek stratejilerimiz mevcuttur (cogu bitmex uzerinde calisir, arama kutucuguna bitmex yazarak bulabilirsiniz).
Orn. Kod (MostBitmexStratejisi):
public override void OnDataUpdate(BarDataEventArgs barData)
{
if (CrossAbove(most.ExMOV, most))
{
if (FirstRun == 0)
{
SendMarketOrder(Symbol, BuyOrderQuantity, (OrderSide.Buy));
Debug("Alış emri verildi.");
Debug("Most.ExMov:" + most.ExMOV.CurrentValue);
Debug("Most:" + most.CurrentValue);
FirstRun = 1;
}
else
{
SendMarketOrder(Symbol, BuyOrderQuantity * 2, (OrderSide.Buy));
Debug("Alış emri verildi.");
Debug("Most.ExMov:" + most.ExMOV.CurrentValue);
Debug("Most:" + most.CurrentValue);
}
}
if (CrossBelow(most.ExMOV, most))
{
if (FirstRun == 0)
{
SendMarketOrder(Symbol, SellOrderQuantity, (OrderSide.Sell));
Debug("Satış emri verildi.");
Debug("Most.ExMov:" + most.ExMOV.CurrentValue);
Debug("Most:" + most.CurrentValue);
FirstRun = 1;
}
else
{
SendMarketOrder(Symbol, SellOrderQuantity * 2, (OrderSide.Sell));
Debug("Satış emri verildi.");
Debug("Most.ExMov:" + most.ExMOV.CurrentValue);
Debug("Most:" + most.CurrentValue);
}
}
IlkCalisma = FirstRun;
ExMov = Math.Round(most.ExMOV.CurrentValue);
Most = Math.Round(most.CurrentValue);
Pozisyon = realposition;
}
Bu kod, miktar sifir iken satis geldiginde SHORT pozisyona yani AÇIK(eksi) pozisyona gecen borsalar icin gecerlidir.
Aciga satis emrinin bilhassa belirtilmesi gereken borsalarda ise SendMarketShortSellOrder fonksiyonu kullanilmalidir.