Merhaba,
Her sembol için fiyat adımı ve miktar adımı vardır. örnekteki FX_FiyatAyarla() ve FX_LotAyarla() fonksiyonlarını bütün stratejilerde kullanılabilir.
Aşağıdaki örneği inceleyebilirsiniz.
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;
using Matriks.AI;
using Matriks.AI.AiParameters;
using Matriks.AI.Data;
using Matriks.Trader.Core.TraderModels;
namespace Matriks.Lean.Algotrader
{
public class v1 : MatriksAlgo
{
[SymbolParameter("BTC_USDT_BIN")]
public string Symbol1;
[Parameter(SymbolPeriod.Min60)]
public SymbolPeriod SymbolPeriod1;
[Parameter(1)]
public int SupertrendPeriod1;
[Parameter(1)]
public decimal SupertrendCoeff1;
SuperTrend superTrend;
double tradeFraction;
double decimalCount;
public override void OnInit()
{
AddSymbol(Symbol1, SymbolPeriod1);
superTrend = SuperTrendIndicator(Symbol1, SymbolPeriod1, SupertrendPeriod1, SupertrendCoeff1);
WorkWithPermanentSignal(true);
SendOrderSequential(false);
var symbolDetail = GetSymbolDetail(Symbol1);
tradeFraction = symbolDetail.TradeFraction;
decimalCount = symbolDetail.DecimalCount;
}
public override void OnInitCompleted(){
var fiyat1=GetSelectedValueFromBarData(GetBarData(),OHLCType.Close);
var fiyat2=FX_FiyatAyarla(fiyat1*1.1m);
var fiyat3=FX_FiyatAyarla(fiyat2*1.1m);
Debug("Fiyat1: "+fiyat1+" Fiyat2: "+fiyat2+" Fiyat3: "+fiyat3);
SendLimitOrder(Symbol1,0.003m,OrderSide.Sell,fiyat1);
SendLimitOrder(Symbol1,0.003m,OrderSide.Sell,fiyat2);
SendLimitOrder(Symbol1,0.003m,OrderSide.Sell,fiyat3);
}
public decimal FX_LotAyarla(decimal quantity)
{
double _kuvvet = Math.Pow(10, tradeFraction);
return (decimal)(Math.Truncate((double) quantity * _kuvvet) / _kuvvet);
}
public decimal FX_FiyatAyarla(decimal price)
{
double _kuvvet = Math.Pow(10, decimalCount);
return (decimal)(Math.Truncate((double) price * _kuvvet) / _kuvvet);
}
}
}