1 beğenilme 0 beğenilmeme
372 kez görüntülendi

Merhaba,

Stratejilerde sunulan periyodlar dışında, periyodlara göre sonuç almak isteyebilirsiniz.

Kod içinde gerekli eklemeleri yaparak, N periyod oluşumuna göre sonuç almak mümkündür. 

Aşağıda örnek bir kod içinde, nasıl yapılabileceği gösterilmektedir. 

Kodun devamında, gerekli açıklamalar vardır. 


using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;
using Matriks.AI;
using Matriks.AI.AiParameters;
using Matriks.AI.Data;
using Matriks.Trader.Core.TraderModels;

namespace Matriks.Lean.Algotrader
{
            public class CustomPeriod : 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 Symbol1;

                        [Parameter(5)]
                                   public int MovPeriod1;

                        [Parameter(MovMethod.S)]
                                   public MovMethod MovMethod1;

                        [Parameter(1)]
                                   public decimal OrderQuantity1;

                        [Parameter(1)]
                                   public decimal OrderQuantity2;

                        MOV mov;

                        int Period = 3;
                        PeriodType PeriodType= PeriodType.Minute;
                        
                        public override void OnInit()
                        {
                                   mov = MOVIndicator(Symbol1, new PeriodInfo(PeriodType, Period), OHLCType.Close, MovPeriod1, MovMethod1);
                                   AddSymbol(Symbol1, new PeriodInfo(PeriodType, Period));

                                   SendOrderSequential(true, Side.Buy);
                                   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(BarDataEventArgs barData)
                        {
                                   var barData1 = GetBarData();
                                   Debug(Ref(barData1,OHLCType.Close,1));
                                   Debug(mov.CurrentValue);
//                                 if (CrossAbove(mov, barData1, OHLCType.Close, 0))
//                                 {
//                                             SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);
//                                 }
//                                 if (CrossAbove(mov, barData1, OHLCType.Close, 0))
//                                 {
//                                             SendMarketOrder(Symbol1, OrderQuantity2, OrderSide.Sell, includeAfterSession:false);
//                                 }

                        }
            }
}



Burada yeni bir periyod şu şekilde tanımlanmaktadır.

Bir periyod değişkeni (intPeriod) tanımlıyoruz. Period olarak dakikalık periyodu almışız. Tabii ki, farklı seçebilirdik.

Burada n*minute periyodu oluşturmuş oluyoruz.

mewperiod olarak, dakikalık periyod yanına period değişkenini yazıyoruz.

period 3 olarak tanımlanmış, bu da 3 dakikalık periyodu kullanılacak anlamına gelir. 

Hem sembol periyodu olarak, hem de indikatör periyodu olarak, newperiod kullandığımıza dikkat edelim. 

Hayırlı trade'ler dileriz. 

 

 

 

 

Algoritmik Trading kategorisinde (12,840 puan) tarafından
tarafından düzenlendi | 372 kez görüntülendi
0 0
Bunu Heikan Ashi için nasıl uyarlayabiliriz?
0 0

Stratejide Heiken Ashi barları ile ilgili linkteki konuyu inceleyebilirsiniz.

https://destek.matriksdata.com/?qa=8489/iq-stratejilerinde-heiken-ashi

Bu soruya cevap vermek için lütfen giriş yapınız veya kayıt olunuz.

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.



7,591 soru
7,598 cevap
4,441 yorum
10,434 kullanıcı