0 beğenilme 0 beğenilmeme
478 kez görüntülendi

Merhaba,

Stratejimde kullanmak için TOTT'un support line'ının da OTT gibi yataylarda düz çizgi olarak hareket etmesini istiyorum. Yardımcı olabilir misiniz ? 

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.AI;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.AlgoTrader;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Trader.Core.TraderModels;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;

namespace Matriks.Lean.Algotrader
{
	public class TOTT_Joint : MatriksAlgo
	{

		[SymbolParameter("BTC_USDT_FBIN")]
		public string Symbol;

		[Parameter(SymbolPeriod.Min)]
		public SymbolPeriod SymbolPeriod;

		[Parameter(40)]
		public int TOTTPeriod;

		[Parameter(1)]
		public decimal TOTTOpt;

		[Parameter(0.001)]
		public decimal TwinOttCoef;

		//Burdaki değer ile yüzdeli stoploss kurulur.
		//[Parameter(1)]
		//public decimal Zarar_Durdur_Yuzdesi;

		[Parameter(true)]
		public bool AcigaSatisYapilsin;

		[Parameter(100)]
		public decimal BuyOrderQuantity;

		[Parameter(100)]
		public decimal SellOrderQuantity;

		int FirstRun = 0;
		int realposition = 0;

		TOTT tott;
		OTT ott;


		public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);

			tott = TOTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, TOTTPeriod, TOTTOpt, TwinOttCoef, MovMethod.VAR);
			ott = OTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, TOTTPeriod, TOTTOpt, MovMethod.VAR, true);

			SendOrderSequential(true);
		}

		public override void OnInitComplated()
		{
		}

		public override void OnTimer()
		{
		}

		public override void OnNewsReceived(int newsId, List<string> relatedSymbols)
		{

		}

		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			if (!AcigaSatisYapilsin) FirstRun = 0;
			if (CrossAbove(ott.ottLine, tott.OttUp))
			{
				if (FirstRun == 0)
				{
					SendMarketOrder(Symbol, BuyOrderQuantity, (OrderSide.Buy));
					//StopLoss(Symbol, SyntheticOrderPriceType.Percent, Zarar_Durdur_Yuzdesi);
					Debug("Alış emri gonderildi.");
					FirstRun = 1;
				}

				else
				{
					SendMarketOrder(Symbol, BuyOrderQuantity * 2, (OrderSide.Buy));
					//StopLoss(Symbol, SyntheticOrderPriceType.Percent, Zarar_Durdur_Yuzdesi);
					Debug("Alış emri gonderildi.");
				}
			}
			if (CrossBelow(ott.ottLine, tott.OttDown))
			{
				if (FirstRun == 0)
				{
					SendMarketOrder(Symbol, SellOrderQuantity, (OrderSide.Sell));
					//StopLoss(Symbol, SyntheticOrderPriceType.Percent, Zarar_Durdur_Yuzdesi);
					Debug("Satış emri gonderildi.");
					FirstRun = 1;
				}

				else
				{
					SendMarketOrder(Symbol, SellOrderQuantity * 2, (OrderSide.Sell));
					//StopLoss(Symbol, SyntheticOrderPriceType.Percent, Zarar_Durdur_Yuzdesi);
					Debug("Satış emri gonderildi.");
				}
			}
		}

		public override void OnOrderUpdate(IOrder order)
		{
			if (order.OrdStatus.Obj == OrdStatus.Filled)
			{

			}
		}
	}
}

 

Algoritmik Trading kategorisinde (32 puan) tarafından | 478 kez görüntülendi

Bu soruya cevap vermek için lütfen giriş yapınız veya kayıt olunuz.

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.



9,762 soru
9,723 cevap
5,239 yorum
52,093 kullanıcı