0 beğenilme 0 beğenilmeme
331 kez görüntülendi
binance futures BTC_USDT_FBIN ile ard arda 3 adet limit emri göndermek istiyorum. Fakat emirler bir önceki emrin yüzde 10 Altı olarak gönderilecek. Örnek kod paylaşırsanız sevinirim.
Diğer kategorisinde (12 puan) tarafından | 331 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

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);
		}
	}
}

 

(15,892 puan) tarafından
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



8,635 soru
8,589 cevap
4,821 yorum
19,782 kullanıcı