MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
79 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 (18 puan) tarafından | 79 kez görüntülendi

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

4,248 soru
4,218 cevap
2,915 yorum
3,152 kullanıcı