Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. 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.

0

CS1503:3 bağımsız değişkeni: 'int' öğesinden 'Matriks.Data.Symbol.OHLCTP' öğesine dönüştürülemiyor hatası alıyorum.

Soruldu
Görüntülenme
155 görüntülenme
Durum
Cevaplandı
Merhaba;

deneme amaçlı kod yazıyorum ancak aşağıdaki haatyı aldım ve düzeltemedim yardımcı olur musunuz?

CS1503:3 bağımsız değişkeni: 'int' öğesinden 'Matriks.Data.Symbol.OHLCTP' öğesine dönüştürülemiyor hatası alıyorum.

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;

using Matriks.Data.Tick;

using Matriks.Enumeration;

using Matriks.IntermediaryInstitutionAnalysis.Enums;

using Newtonsoft.Json;

 

namespace Matriks.Lean.Algotrader

{

public class ALGOBILDENEME_1 : 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("THYAO")]

        public string Symbol1;

 

        [Parameter(SymbolPeriod.Min)]

        public SymbolPeriod SymbolPeriod1;

 

        [Parameter(1)]

        public decimal OrderQuantity;

 

        // İndikatörler

        MOV movE;

        MOST most;

        ATR atr;

 

        // VALUEWHEN(1, X1, C)

        decimal lastX2 = 0m;

 

        public override void OnInit()

        {

            // Dokümana uygun parametre sırası

            movE = MOVIndicator(Symbol1, SymbolPeriod1, OHLCType.Close, 3, MovMethod.E);

            most = MOSTIndicator(Symbol1, SymbolPeriod1, OHLCType.Close, 3, 1, MovMethod.Exponential);

            atr  = ATRIndicator(Symbol1, SymbolPeriod1, 14);

 

            SendOrderSequential(true, Side.All);

        }

 

        public override void OnDataUpdate(BarDataEventArgs barData)

        {

            var C       = barData.BarData.Close;

            var movVal  = movE.CurrentValue;

            var mostVal = most.CurrentValue;

            var atrVal  = atr.CurrentValue;

 

            // X1 = CROS(MOV, MOST)

            bool X1 = Cross(movE, most);

            if (X1)

                lastX2 = C; // VALUEWHEN -> son kesişimdeki kapanış

 

            if (lastX2 == 0m || atrVal == 0m) return;

 

            // ALIŞ: MOV > MOST ve C > X2 + 2*ATR

            if (movVal > mostVal && C > lastX2 + (2m * atrVal))

            {

                if (LastOrderSide.Obj != Side.Buy)

                    SendMarketOrder(Symbol1, OrderQuantity, OrderSide.Buy, includeAfterSession: false);

            }

 

            // SATIŞ: MOV > MOST ve C < X2 - 2*ATR

            if (movVal > mostVal && C < lastX2 - (2m * atrVal))

            {

                if (LastOrderSide.Obj != Side.Sell)

                    SendMarketOrder(Symbol1, OrderQuantity, OrderSide.Sell, includeAfterSession: false);

            }

        }

 

        // MOV ile MOST kesişimi (yukarı veya aşağı)

        private bool Cross(MOV m, MOST ms)

        {

            if (m.CurrentIndex < 1 || ms.CurrentIndex < 1) return false;

 

            var prevDiff = m.Value[0][m.CurrentIndex - 1] - ms.Value[0][ms.CurrentIndex - 1];

            var currDiff = m.Value[0][m.CurrentIndex]     - ms.Value[0][ms.CurrentIndex];

 

            return (prevDiff <= 0 && currDiff > 0) || (prevDiff >= 0 && currDiff < 0);

        }

    }

}
Paylaş

1 Cevap

0
Merhabalar,
Eksik parametre girildiğinden dolayı sorun yaşamaktasınız.

Şu şekilde deneyiniz.
atr = ATRIndicator(Symbol1, SymbolPeriod1, 14);  //eski
atr = ATRIndicator(Symbol1, SymbolPeriod1,OHLCType.Close, 14);  //yeni

İyi çalışmalar dileriz.
BağlantıBayraklaemresMatriks Destek6.795

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol