1 beğenilme 0 beğenilmeme
588 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 (13,600 puan) tarafından
tarafından düzenlendi | 588 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.

8,635 soru
8,589 cevap
4,821 yorum
19,782 kullanıcı