1 beğenilme 0 beğenilmeme
2,282 kez görüntülendi
Merhaba, tillson t3 için renk değiştirme stratejisi ya da explorer formülünü paylaşabilir misiniz?

Ya da bir önceki barın değerinden büyük olma durumunun formülü nasıl olur?
Algoritmik Trading kategorisinde (82 puan) tarafından | 2,282 kez görüntülendi

1 cevap

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

Merhaba,

Aşağıdaki strateji tilson indikatörünün renk değişimine göre al sat sinyalleri veriyor. Strateji incelendiğinde önceki barların değerlerine nasıl ulaşıldığını görünmektedir.

Stratejini adının TilsonRenkDegisimi olmasına dikkat ediniz.

***STRATEJİLERİ TEST/DENEME ORTAMINDA SINAMADAN VE SİZİN İSTEDİĞİNİZ ŞEKİLDE ÇALIŞTIĞINA EMİN OLMADAN GERÇEK ORTAMDA HİÇBİR ZAMAN ÇALIŞTIRMAYINIZ***

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 TilsonRenkDegisimi : 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.Min60)]
		public SymbolPeriod SymbolPeriod;

		[Parameter(1)]
		public decimal Quantity;

		[Parameter(3)]
		public int TillsonPeriod;

		[Parameter(0.7)]
		public decimal TillsonA;
		
		TMOV tmov;

		public override void OnInit()
		{
			tmov = TMOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, TillsonPeriod, TillsonA);
			AddSymbol(Symbol, SymbolPeriod);

			//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);
			WorkWithPermanentSignal(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(BarDataCurrentValues barDataCurrentValues)
		{
			var barData = GetBarData();
			var RefTilson1 = Ref(tmov, -1);
			var RefTilson2 = Ref(tmov, -2);

			// Al - T3>REF(T3,-1) AND REF(T3,-1)<REF(T3,-2)
			if (tmov.CurrentValue>RefTilson1 && RefTilson1<RefTilson2)
			{
				SendMarketOrder(Symbol, Quantity, OrderSide.Buy);
				Debug("Alis emri gonderildi");
			}

			// Sat - T3<REF(T3,-1) AND REF(T3,-1)>REF(T3,-2)
			if (tmov.CurrentValue<RefTilson1 && RefTilson1>RefTilson2)
			{
				SendMarketOrder(Symbol, Quantity, OrderSide.Sell);
				Debug("Satis emri gonderildi");
			}

		}		
	}
}

 

(15,892 puan) tarafından
tarafından seçilmiş
1 0
"ref" kısmını çözememiştim. İyi oldu bu. Teşekkür ederim.
1 0
Çok teşekkür ederim

kolay gelsin
trailing stop eklemek
0 0
alım satım miktarını en az 1 ile sınırlandırıyor. BTC için 1 çok fazla bir miktar 0.05 denedim yapamadım

[Parameter(1)]

public int Quantity;

(1) i değiştirip 0.05 yapmaya çalıştım olmadı. Bu sorunu nasıl çözebilirim
1 0
Merhaba,

Kodun içinde yer alan,

public int Quantity;

ifadesini

public decimal Quantity;

olarak değiştiriniz lütfen.

İyi çalışmalar.
0 0
[Parameter(0.1)]

public decimal Quantity;

şeklinde değiştirdim fakat optimize et dediğimde gelen pencerede "ileri" tuşu aktif değil
1 0

var olan bir değişkenin tipini değiştirdiğinizde stratejinin yapısı değiştiği için eski backtest ve backtest optimizasyon sonuçlarını silinmesi gerekir. backtest sonuçlarını silip deneyiniz. Yeni bir değişken eklendiğinde silinmesine gerek yok.

 

 

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.



8,639 soru
8,593 cevap
4,826 yorum
19,845 kullanıcı