0 beğenilme 0 beğenilmeme
752 kez görüntülendi
Merhabalar;

 

Matriks Prime da kullandığımız explorerları Matriks IQ a nasıl taşıyabiliriz?
İndikator kategorisinde (12 puan) tarafından | 752 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme
Merhaba Serdar bey,

IQ tarafında kod yapısı tamamen farklıdır.

Hazır bir çok stratejiyi ekledik.

Bununla beraber, kendi özel hazırladığınız explorer'lar var ise, bunların baştan yazılması gereklidir.

IQ tarafında kod yazmak daha çok zaman almaktadır. Hızlı bir destek veremiyoruz.

Yakında daha pratik bir hale getireceğiz.

İsterseniz bekleyiniz. İsterseniz bir kodunuzu buradan ya da e posta ile yazınız.

Ne yapabileceğimize bakalım.

İyi çalışmalar
(12,790 puan) tarafından
0 0
Cevabınız için çok teşekkür ederim.

Matriks IQ için C Sharp öğrenmeye başlayacağım bu gidişle. Prime da bu durum daha rahattı.

ASlında yapmak istediğim tarama şu şekilde;

 

CCI
CCI(20)

MA
MOV(CCI(20),7,S)

FILTRE
CROSS(CCI(20),MOV(CCI(20),7,S));
0>CCI(20)>100

Ben bunun kodunu öğrenirsem zaten tüm diğer taramalarımı kendim yazabilrim sanırım :)
0 0
Tamamdır.

Dönüş yapacağız size.

İnşallah :)

İyi çalışmalar.
0 0
Merhaba,

// AL - Cross(cci(14),mov(cci(14),5,s))

// SAT - Cross(mov(cci(14),5,s),cci(14))

kodu için IQ formülü aşağıdadır. Koşul eklemek için ayrı bir örnek göndereceğiz.

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 CciMovCross : 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.Min5)]
                        public SymbolPeriod SymbolPeriod;
                        
                        [Parameter(1)]
                        public decimal Quantity;
                        
                        [Parameter(14)]
                        public int CciPeriod;
                        
                        [Parameter(5)]
                        public int MovPeriod;
                        
                        [Parameter(MovMethod.Simple)]
                        public MovMethod movMethod;

                        CCI cci;

                        MOV mov;

                        /// <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);
                                   
                                   cci = CCIIndicator(Symbol, SymbolPeriod, OHLCType.Close, CciPeriod);                            
                                   
                                   mov = MOVIndicator(cci, MovPeriod, movMethod);                                

                                   //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>
                        /// Init islemleri tamamlaninca, bardatalar kullanmaya hazir hale gelince bu fonksiyon tetiklenir. Data uzerinde bir defa yapilacak islemler icin kullanilir
                        /// </summary>
                        public override void OnInitComplated()
                        {

                        }

                        /// <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)
                        {
                                   // AL - Cross(cci(14),mov(cci(14),5,s))
                                   if(CrossAbove(cci,mov)){
                                               SendMarketOrder(Symbol,Quantity,OrderSide.Buy);
                                               Debug("Alış emri gönderildi.");
                                   }
                                   
                                   // SAT - Cross(mov(cci(14),5,s),cci(14))
                                   if(CrossAbove(cci,mov)){
                                               SendMarketOrder(Symbol,Quantity,OrderSide.Sell);
                                               Debug("Satış emri gönderildi.");
                                   }

                        }

                        /// <summary>
                        /// Gönderilen emirlerin son durumu değiştikçe bu fonksiyon tetiklenir.
                        /// </summary>
                        /// <param name="barData">Emrin son durumu</param>
                        public override void OnOrderUpdate(IOrder order)
                        {
                                   if (order.OrdStatus.Obj == OrdStatus.Filled)
                                   {

                                   }
                        }
            }
}
7,509 soru
7,511 cevap
4,405 yorum
8,750 kullanıcı