Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. 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.

0

TOTT + Stokastik Variable Kendi Variable Ortalamasına Göre İşlem Yapmak

Soruldu
Görüntülenme
754 görüntülenme
Durum
Cevaplandı
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 TottStokastikVariable : 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.001d)]
		public decimal TwinOttCoef;

		[Parameter(500)]
		public int Stokastik_Periyod;

		[Parameter(200)]
		public int Stokastik_Smooth;

		[Parameter(true)]
		public bool AcigaSatisYapilsin;

		[Parameter(1)]
		public decimal BuyOrderQuantity;

		[Parameter(1)]
		public decimal SellOrderQuantity;

		int FirstRun = 0;
		int realposition = 0;

		TOTT tott;
		StochasticSlow stochasticSlow;

		public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);
			tott = TOTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, TOTTPeriod, TOTTOpt, TwinOttCoef, MovMethod.Variable);
			stochasticSlow = StochasticSlowIndicator(Symbol, SymbolPeriod, OHLCType.Close, Stokastik_Periyod, Stokastik_Smooth, Stokastik_Smooth, MovMethod.Variable);

			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 ((tott.Mov > tott.OttUp) && stochasticSlow.StochasticSlowK.CurrentValue > stochasticSlow.StochasticSlowD.CurrentValue)
			{
				if (FirstRun == 0)
				{
					SendMarketOrder(Symbol, BuyOrderQuantity, (OrderSide.Buy));
					Debug("Alış emri gonderildi.");
					FirstRun = 1;
				}
				else
				{
					SendMarketOrder(Symbol, BuyOrderQuantity * 2, (OrderSide.Buy));
					Debug("Alış emri gonderildi.");
				}
			}
			if ((tott.Mov < tott.OttUp) && stochasticSlow.StochasticSlowK.CurrentValue < stochasticSlow.StochasticSlowD.CurrentValue)
			{
				if (FirstRun == 0)
				{
					SendMarketOrder(Symbol, SellOrderQuantity, (OrderSide.Sell));
					Debug("Satış emri gonderildi.");
					FirstRun = 1;
				}
				else
				{
					SendMarketOrder(Symbol, SellOrderQuantity * 2, (OrderSide.Sell));
					Debug("Satış emri gonderildi.");
				}
			}
		}

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

			}
		}
	}
}

Merhabalar, 

TOTT stratejisine ek olarak Değişken StokastikSlow indikatörünün kendi değişken ortalaması üzerinde ise AL koşulunu karşılamasını,

Kendi değişken ortalamasının altında ise SAT koşulunu karşılamasını istiyorum. Böyle birşey mümkün olabilir mi ?

 

 

Paylaş

1 Cevap

0

Merhaba,

Aşağıdaki kodu incelebilirsiniz..

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 TottStokastikVariable : 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.001d)]
		public decimal TwinOttCoef;

		[Parameter(500)]
		public int Stokastik_Periyod;

		[Parameter(200)]
		public int Stokastik_Smooth;
		
		[Parameter(5)]
		public int StockHO;

		[Parameter(true)]
		public bool AcigaSatisYapilsin;

		[Parameter(1)]
		public decimal BuyOrderQuantity;

		[Parameter(1)]
		public decimal SellOrderQuantity;

		int FirstRun = 0;
		int realposition = 0;

		TOTT tott;
		StochasticSlow stochasticSlow;

		MOV mov;

		public override void OnInit()
		{

			AddSymbol(Symbol, SymbolPeriod);
			tott = TOTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, TOTTPeriod, TOTTOpt, TwinOttCoef, MovMethod.Variable);
			stochasticSlow = StochasticSlowIndicator(Symbol, SymbolPeriod, OHLCType.Close, Stokastik_Periyod, Stokastik_Smooth, Stokastik_Smooth, MovMethod.Variable);
			mov = MOVIndicator(stochasticSlow, StockHO, MovMethod.Variable);

			SendOrderSequential(true);
		}		

		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			if (!AcigaSatisYapilsin) FirstRun = 0;
			if ((tott.Mov > tott.OttUp) && 
				stochasticSlow.StochasticSlowK.CurrentValue > mov.CurrentValue)
			{
				if (FirstRun == 0)
				{
					SendMarketOrder(Symbol, BuyOrderQuantity, (OrderSide.Buy));
					Debug("Alış emri gonderildi.");
					FirstRun = 1;
				}
				else
				{
					SendMarketOrder(Symbol, BuyOrderQuantity * 2, (OrderSide.Buy));
					Debug("Alış emri gonderildi.");
				}
			}
			if ((tott.Mov < tott.OttUp) && 
				stochasticSlow.StochasticSlowK.CurrentValue < mov.CurrentValue)
			{
				if (FirstRun == 0)
				{
					SendMarketOrder(Symbol, SellOrderQuantity, (OrderSide.Sell));
					Debug("Satış emri gonderildi.");
					FirstRun = 1;
				}
				else
				{
					SendMarketOrder(Symbol, SellOrderQuantity * 2, (OrderSide.Sell));
					Debug("Satış emri gonderildi.");
				}
			}
		}
	}
}

 

Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror.
https://unblocked1games.github.io
BağlantıBayraklaKripexMatriks Destek16.499

Yorumlar (1)

  • ▲0

    Desteğiniz için çok teşekkür ederim. Ben aşağıdaki gibi kendi değişken ortalaması ile kullanmak istemiştim. ama mantığını anladım. Çok teşekkürler tekrar. 

    tott = TOTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, TOTTPeriod, TOTTOpt, TwinOttCoef, MovMethod.Variable);
    stochasticSlow = StochasticSlowIndicator(Symbol, SymbolPeriod, OHLCType.Close, Stokastik_Periyod, Stokastik_Periyod, Stokastik_Periyod, MovMethod.Variable);
    mov = MOVIndicator(stochasticSlow, Stokastik_Periyod, MovMethod.Variable);

     

     

     

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol