0 beğenilme 0 beğenilmeme
351 kez görüntülendi
Merhaba,

Kullanmış olduğum stratejide işlemlerimde başarılı sonuçlar alsamda Bist'te yaptığım işlemlerde TAVAN fiyat uygulaması sebebiyle hisse tavan olduğunda stratejim SAT sinyali veriyor. Ben bunu engellemek için bazı indikatörlerle birlikte çalıştırmaya çalıştım koşullu olarak ama bu sefer de doğal olarak tüm işlemleri etkiliyor. "Eğer hisse tavan fiyatta değilse ve xxxxx koşulum gerçekleştiyse SAT yada fiyat %9.90 'dan küçükse ve satış koşulum gerçekleştiyse SAT " şeklinde bir kodu nasıl ekleyebilirim acaba stratejimin sat koşuluna?
Algoritmik Trading kategorisinde (143 puan) tarafından | 351 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Hissenin tavan fiyatını yüzeysel veriden alabilirsiniz. Aşağıdaki kod parçasında ilk yazdığını koşulu oluşturdum. 

Fiyatın %9.90 dan küçükse ile tam olarak ne anlatmak istediğinizi anlamadım.                   

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using System.Windows.Media;
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 Test3 : 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("GARAN")]
		public string Symbol;

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

		/// <summary>
		/// Strateji ilk çalıştırıldığında bu fonksiyon tetiklenir. Tüm sembole kayit işlemleri,
		/// indikator ekleme, haberlere kayıt olma işlemleri burada yapılır. 
		/// </summary>
		public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);
			AddSymbolMarketData(Symbol);
		}

		/// <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(BarDataCurrentValues barDataCurrentValues)
		{

			var Tavan = GetMarketData(Symbol, SymbolUpdateField.LimitUp);
			var close = barDataCurrentValues.LastUpdate.Close;
			if (Tavan != close && ****Satış Koşulu****)
			{
				SendMarketOrder(Symbol, Quantity, OrderSide.Sell);
			}
		}
	}
}

 

(4,555 puan) tarafından
7,625 soru
7,627 cevap
4,445 yorum
10,796 kullanıcı