Merhabalar,
Sorunuzda belirttiğiniz "SHORT EMRİ AÇMA=? SHORT EMRİ KAPATMA=? " soru işaretine karşılık gelen yerler henüz algoritma sihirbazında mümkün değil. Bunun yerine sizler için bir kod kalıbı hazırladık.
OnInit() methodunun içerisine aşağıdaki kod kalıbını ekleyerek işlemlerinizi takip edebilirsiniz.
public override void OnInit()
{
AddSymbol(Symbol, SymbolPeriod);
most = MOSTIndicator(Symbol, SymbolPeriod, OHLCType.Close, Period, Percentage, MovMethod.Exponential);
SendOrderSequential(true, Side.All);
WorkWithPermanentSignal(true);
if (Kaldirac>30)
{
// kaldıraç oranı
SetLeverage(Symbol, 3);
// kaldıraç tipi - true isolated, false cross
SetLeverageType(Symbol, true);
}else
{
SetLeverage(Symbol, Kaldirac);
SetLeverageType(Symbol, true);
}
}
Örnek Kod :
using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;
namespace Matriks.Lean.Algotrader
{
public class MostKaldıraclıStrategy : MatriksAlgo
{
// Strateji çalıştırılırken kullanacağımız parametreler. Eğer sembolle ilgili bir parametre ise,
// "SymbolParameter" ile, değilse "Parameter" ile tanımlama yaparız. Parantez içindeki değerler default değerleridir.
[SymbolParameter("BTC_USDT_FBIN")]
public string Symbol;
[Parameter(SymbolPeriod.Min5)]
public SymbolPeriod SymbolPeriod;
[Parameter(5)]
public decimal BuyOrderQuantity;
[Parameter(5)]
public decimal SellOrderQuantity;
[Parameter(3)]
public int Period;
[Parameter(2)]
public decimal Percentage;
[Parameter(3)]
public int Kaldirac;
// indikator tanımları.
MOST most;
public override void OnInit()
{
AddSymbol(Symbol, SymbolPeriod);
most = MOSTIndicator(Symbol, SymbolPeriod, OHLCType.Close, Period, Percentage, MovMethod.Exponential);
SendOrderSequential(true, Side.All);
WorkWithPermanentSignal(true);
if (Kaldirac>30)
{
// kaldıraç oranı
SetLeverage(Symbol, 3);
// kaldıraç tipi - true isolated, false cross
SetLeverageType(Symbol, true);
}else
{
SetLeverage(Symbol, Kaldirac);
SetLeverageType(Symbol, true);
}
}
/// <summary>
/// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir.
/// </summary>
/// <param name="barData">Bardata ve hesaplanan gerçekleşen işleme ait detaylar</param>
public override void OnDataUpdate(BarDataEventArgs barData)
{
if (CrossAbove(most.ExMOV, most) && LastOrderSide.Obj != Side.Buy)
{
if (LastOrderSide.Obj == Side.All)
{
SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);
}else
{
SendMarketOrder(Symbol, BuyOrderQuantity * 2, OrderSide.Buy);
}
Debug("Alış Emri Gönderildi");
}
if (CrossBelow(most.ExMOV, most) && LastOrderSide.Obj != Side.Sell)
{
if (LastOrderSide.Obj == Side.All)
{
SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell);
}else
{
SendMarketOrder(Symbol, SellOrderQuantity * 2, OrderSide.Sell);
}
Debug("Satış Emri Gönderildi");
}
}
}
}
Diğer sorunuza istinaden ise,
Binance kar al market alış, Binance kar al market satış ;
Bir Kar Al-Limit Emrine benzer şekilde, bir Kar Al-Piyasa Emri alım satımı tetiklemek için kar almak istediğiniz fiyatı kullanır. Ancak, kar alacağınız fiyata ulaşıldığında, bunun yerine bir piyasa emrini tetikler.
Binance Kar Al Limit Alış, Binance Kar Al Limit Satış ;
Kar Al fiyatı basitçe limit emrini tetikleyen fiyattır, limit fiyatı ise tetiklenen limit emrinin fiyatıdır. Bu, kar al fiyatına ulaşıldığında limit emrinizin hemen emir defterine verileceği anlamına gelir. ,
Dilerseniz aşağıdaki linki inceleyiniz.
https://www.binance.com/tr/support/faq/360033779452
İyi çalışmalar.