0 beğenilme 0 beğenilmeme
709 kez görüntülendi
3 Konuda yardıma ihtiyacım oldu yardımcı olursanız sevinirim;

1 - İQ Algoritma sihirbazı ile oluşturduğum stratejiye sizin verdiğiniz satırları ekledim; sembol ve sembol period geçerli olmayan tür ögesi hatası verdi.

error CS0119: 'SymbolPeriod' verilen bağlamda geçerli olmayan bir tür öğesidir8345
error CS0119: 'Symbol' verilen bağlamda geçerli olmayan bir tür öğesidir8414

2 - İQ Algo da  (Algoritma sihirbazı ile oluşturduklarımda ) Renko Bar kullanabilmek için ne yapmalıyım

örneğin mum yeşil kapatırsa al, kırmızı kapatırsa sat a dön gibi

3- İQ Algo da 3 Dakikalık period kullanabilirmiyim
Algoritmik Trading kategorisinde (49 puan) tarafından | 709 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhabalar,

1 - İQ Algoritma sihirbazı ile oluşturduğum stratejiye sizin verdiğiniz satırları ekledim; sembol ve sembol period geçerli olmayan tür ögesi hatası verdi.

Kullandığınız algoritmada kayıtlı olan sembol muhtemelen SYMBOL1,SYMBOLPERİOD1 isimli kullanılıyordur. 1 rakamını silerseniz hata kalkacaktır.

2 - İQ Algo da  (Algoritma sihirbazı ile oluşturduklarımda ) Renko Bar kullanabilmek için ne yapmalıyım
örneğin mum yeşil kapatırsa al, kırmızı kapatırsa sat a dön gibi

IQ'da maalesef renko barlar kullanılmamaktadır.

3- İQ Algo da 3 Dakikalık period kullanabilirmiyim

Evet kullanabilirsiniz.

Lütfen aşağıdaki örneği inceleyiniz.

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 SablonNDakika : 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;

		[Parameter(1)]
		public decimal BuyOrderQuantity;

		[Parameter(1)]
		public decimal SellOrderQuantity;

		[Parameter(3)]
		public int Period;

		[Parameter(2)]
		public decimal Percentage;

		[Parameter(2)]
		public int NBar;


		MOST most;

		public override void OnInit()
		{

			PeriodInfo NBarPeriod = new PeriodInfo(PeriodType.Minute, NBar);

			most = MOSTIndicator(Symbol, NBarPeriod, OHLCType.Close, Period, Percentage, MovMethod.Exponential);

			AddSymbol(Symbol, NBarPeriod);

			// 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(most.ExMOV, most))
			{
				SendMarketOrder(Symbol, BuyOrderQuantity, (OrderSide.Buy));
				Debug("Alış emri verildi.");
				Debug("Most.ExMov:" + most.ExMOV.CurrentValue);
				Debug("Most:" + most.CurrentValue);
			}
			if (CrossBelow(most.ExMOV, most))
			{
				SendMarketOrder(Symbol, SellOrderQuantity, (OrderSide.Sell));
				Debug("Satış emri verildi.");
				Debug("Most.ExMov:" + most.ExMOV.CurrentValue);
				Debug("Most:" + most.CurrentValue);
			}
		}

		/// <summary>
		/// Strateji durdurulduğunda bu fonksiyon tetiklenir.
		/// </summary>
		public override void OnStopped()
		{
		}
	}
}

İyi çalışmalar.

(11,059 puan) tarafından
0 0

Cevaplarınız için çok sağolun. Söylediklerinizi  uyguladım fakat sonuç alamadım.

Şöyleki ;

Sayfada ki tüm SYMBOL ve SYMBOLPERİOD ların sonunda ki 1 leri dediğiniz gibi sildim kodu derledim hata vermedi fakat Bactest ve Backtest optimizasyonu yapmadı ekteki hatayı verdi.

Farklı olarak ben de GetHeikinAshiPeriodInfo() fonksiyonunda ki seymbol ve symbolperiod ların sonuna 1 ekledim, yine hata verdi.

Aynı zamanda Barları grafikte göster seçeneğinden kontrol ettim Barlar Hekin e dönmemiş normal bar olarak işlem yapıyor ve backtest yada optimizasyonu yapmıyor

Aslına istediğim oldukça basit bir kod ben beceremedim , derleme imkanınız olursa çok sevinirim şimdiden sağolun.

--

3 dakikalık periodda 

Hekin Ashi barlarda

wma 8 in kapanış değeri

wma 8 in açılış değerini 

yukarı kestiğin de alsın, aşağı kestiğinde satsın

kaldıraç 3 

kaldıraçlı işlem seçeneği isolated

ve her seferinde bakiyenin % 10 'u kadarı ile işlem açsın  

 

0 0
Merhabalar,

Yazdığınız kodu paylaşabilirseniz üzerinde derleme yapıp yardımcı olmaya çalışalım.

İyi çalışmalar.
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,636 soru
8,590 cevap
4,821 yorum
19,786 kullanıcı