MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
326 kez görüntülendi

selamlar,

RSİ 'ın üzerine OTT atarak sistem oluşturmaya çalıştım. kodları kontrol edebilirmisiniz , biyerde hatam varsa düzeltirseniz sevinirim

 

using System;
using System.Collections.Generic;
using System.Linq;
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 Risotto : MatriksAlgo
	{
		// Strateji çalıştırılırken kullanacağımız parametreler. Eğer sembolle ilgili bir parametre ise,
		// "SymbolParameter" ile, değilse "Parameter" ile tanımlama yaparız. Parantez içindeki değerler default değerleridir.
		[SymbolParameter("BTC_USDT_BIN")]
		public string Symbol;

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

		[Parameter(1)]
		public decimal BuyOrderQuantity;

		[Parameter(1)]
		public decimal SellOrderQuantity;

		[Parameter(3)]
		public int Period;

		[Parameter(2)]
		public decimal Percentage;
		
		[Parameter(3)]
		public int RsiPeriod;
		
		OTT ott;
		RSI rsi;
		MOV mov;

		public override void OnInit()
		{
			rsi = RSIIndicator(Symbol, SymbolPeriod, OHLCType.Close, 14);

			ott = OTTIndicator(rsi, 2, 1.4m, MovMethod.VAR, true);

			AddSymbol(Symbol, SymbolPeriod);

			ott = OTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, Period, Percentage, MovMethod.VAR);
			//ottSupportLine = new OTTSupportLine(null, Period, MovMethod.VAR);
		
			mov = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, Period, MovMethod.VAR);

			// Algoritmanın kalıcı veya geçici sinyal ile çalışıp çalışmayacağını belirleyen fonksiyondur.
			// true geçerseniz algoritma sadece yeni bar açılışlarında çalışır, bu fonksiyonu çağırmazsanız veya false geçerseniz her işlem olduğunda algoritma tetiklenir.
			WorkWithPermanentSignal(true);
			
			//Eger backtestte emri bir al bir sat seklinde gonderilmesi isteniyor bu true set edilir.
			//Alttaki satırı silerek veya false geçerek emirlerin sirayla gönderilmesini engelleyebilirsiniz.
			SendOrderSequential(true);
		}

		/// <summary>
		/// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir.
		/// </summary>
		/// <param name="barData">Bardata ve hesaplanan gerçekleşen işleme ait detaylar</param>
		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			if (CrossAbove(mov, ott))
			{
				SendMarketOrder(Symbol, BuyOrderQuantity, (OrderSide.Buy));
				Debug("Alış emri verildi.");
				Debug("OTT_SupportLine:" + mov.CurrentValue);
				Debug("OTTLine:" + ott.ottLine.CurrentValue);
			}
			if (CrossBelow(mov, ott))
			{
				SendMarketOrder(Symbol, SellOrderQuantity, (OrderSide.Sell));
				Debug("Satış emri verildi.");
				Debug("OTT_SupportLine:" + mov.CurrentValue);
				Debug("OTTLine:" + ott.ottLine.CurrentValue);
			}
		}
	}
}

 

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

1 cevap

0 beğenilme 0 beğenilmeme
En İyi Cevap

Merhaba, 

OnInit içerisinde 2 kez Ott indikatörü tanımlamışsınız. 2. tanımladığınız Ott'yi silmeniz gerekli. Ek olarak Ott indikatörünün sinyal koşulları genellikle ott çizgisi ile Ottsupportline arasındaki kırılımlara göre verilmekte. Tabi bu işlem sizin kurduğunuz veya kurmak istediğiniz stratejiye göre değişebilir.

İç içe indikatörler kullanarak kolay bir şekilde strateji oluşturmak için aşağıdaki eğitim videomuzu izleyebilirsiniz.

 

İyi çalışmalar

 

(3,288 puan) tarafından
tarafından seçilmiş
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.



2,766 soru
2,649 cevap
2,144 yorum
1,944 kullanıcı