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

for döngü sorunu

Soruldu
Görüntülenme
893 görüntülenme
Durum
Cevaplandı
public override void OnInit()

{

       for(int j =0;j<hisseler.Count;j++)

        {

                AddSymbol(hisseler[j], SymbolPeriod);

        }

    mov = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, 5, MovMethod.Exponential);

}

public override void OnTimer()

{

        for(int i =0;i<hisseler.Count;i++)

        {

            mov = MOVIndicator( hisseler[i], SymbolPeriod, OHLCType.Close, 5, MovMethod.Exponential);

            Debug(hisseler[i] + " " + mov.CurrentValue);

        }

}

 

hisseler string listesindeki her hisse için mov değerini yazmasını istiyorum ama değerler 0 olarak geliyor. bu kodda hata nerede? yardımcı olabilirseniz sevinirim
Paylaş

1 Cevap

0

Merhaba,

Her sembol için indikatöre kayıt olamamışsınız.(sadece Symbol değişkenine kayıt olunmuş)

mov = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, 5, MovMethod.Exponential);

Aşağıdaki örneği inceleyebilirsiniz.

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using System.Windows.Media;
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 CokluSembolMost : MatriksAlgo
	{
		[Parameter(SymbolPeriod.Min15)]
		public SymbolPeriod SymbolPeriod;

		[Parameter(3)]
		public int Period;

		[Parameter(2)]
		public decimal Percentage;

		public class SembolDetay
		{
			public string Sembol
			{
				get; set;
			}
			public decimal Adet
			{
				get; set;
			}

			public OrderSide LastOrderSideNesne
			{
				get; set;
			}
		}

		List<SembolDetay> SembolDetaylari = new List<SembolDetay>();

		Dictionary<string, MOST> dic = new Dictionary<string, MOST>();

		MOST most;

		public override void OnInit()
		{
			SembolDetaylari.Add(new SembolDetay()
				{
					Sembol = "GARAN", Adet = 15, LastOrderSideNesne = OrderSide.Buy
				});
			SembolDetaylari.Add(new SembolDetay()
				{
					Sembol = "AKBNK", Adet = 25, LastOrderSideNesne = OrderSide.Buy
				});
			SembolDetaylari.Add(new SembolDetay()
				{
					Sembol = "TTKOM", Adet = 5, LastOrderSideNesne = OrderSide.Buy
				});
			SembolDetaylari.Add(new SembolDetay()
				{
					Sembol = "THYAO", Adet = 12, LastOrderSideNesne = OrderSide.Buy
				});

			foreach (var symbol in SembolDetaylari)
			{
				AddSymbol(symbol.Sembol, SymbolPeriod);
				most = MOSTIndicator(symbol.Sembol, SymbolPeriod, OHLCType.Close, Period, Percentage, MovMethod.Exponential);
				dic.Add(symbol.Sembol, most);
			}

			WorkWithPermanentSignal(true);

			SendOrderSequential(false);
		}

		public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
		{
			var barSembol = barDataCurrentValues.LastUpdate.SymbolName;

			if (dic.ContainsKey(barSembol))
			{
				var sembolDetay = SembolDetaylari.FirstOrDefault(x => x.Sembol == barSembol);

				if (sembolDetay != null)
				{
					var mostvalue = dic[barSembol];

					if (CrossAbove(mostvalue.ExMOV, mostvalue) &&
						sembolDetay.LastOrderSideNesne != OrderSide.Buy &&
						sembolDetay.Adet != 0)
					{
						SendMarketOrder(barSembol, sembolDetay.Adet, (OrderSide.Buy));
						sembolDetay.LastOrderSideNesne = OrderSide.Buy;


						Debug("===================== ALIŞ =====================");
						Debug("Sembol : " + barSembol);
						Debug("Most.ExMov:" + Math.Round(mostvalue.ExMOV.CurrentValue, 4));
						Debug("Most:" + Math.Round(mostvalue.CurrentValue, 4));
					}

					if (CrossBelow(mostvalue.ExMOV, mostvalue) &&
						sembolDetay.LastOrderSideNesne != OrderSide.Sell &&
						sembolDetay.Adet != 0)
					{
						SendMarketOrder(barSembol, sembolDetay.Adet, (OrderSide.Sell));
						sembolDetay.LastOrderSideNesne = OrderSide.Sell;

						Debug("===================== SATIŞ =====================");
						Debug("Sembol : " + barSembol);
						Debug("Most.ExMov:" + Math.Round(mostvalue.ExMOV.CurrentValue, 4));
						Debug("Most:" + Math.Round(mostvalue.CurrentValue, 4));
					}
				}
			}
		}
	}
}

 

Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror.
https://unblocked1games.github.io
BağlantıBayraklaKripexMatriks Destek16.499

Cevabınız

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