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

RSIOTT indikatörü yazım kontrol

Soruldu
Görüntülenme
1.330 görüntülenme
Durum
Çözüldü

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

 

Paylaş

1 Cevap

0

Kabul edilen 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.

https://www.youtube.com/watch?v=O74grrdUCEY
 

İyi çalışmalar

 

BağlantıBayrakladüzenlendi · onurarliOrçunMatriks Destek4.555

Cevabınız

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