0 beğenilme 0 beğenilmeme
298 kez görüntülendi
belirlediğim hisse üzerinden x fiyattan al y fiyattan sat şeklinde tekrarlı emir girmek istiyorum ben durdurana kadar bunu döngü şeklinde yapmasını istiyorum satmadan yenisini almayacak bunu yapabilmek için matriksin hangi çeşidini kullanmalıyım ve nasıl yapabilirim
Genel Kullanım kategorisinde (12 puan) tarafından | 298 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Matriks IQ ve Matriks Veri Terminalinde istediğiniz yapı kurulabilir.

Algoritma sihirbazında tek periyotluk SMA indikatör ekleyip SMA indikatörü x seviyesini aşağıya kırarsa al, y seviyesini yukarı kırarsa sat şeklinde yapı kurabilirsiniz.

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks;
using Matriks.Data.Symbol;
using Matriks.Data.Tick;
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;
using Matriks.Enumeration;
using Matriks.IntermediaryInstitutionAnalysis.Enums;

namespace Matriks.Lean.Algotrader
{
	public class BelirliFiyattan : MatriksAlgo
	{
		[SymbolParameter("GARAN")]
			public string Symbol1;

		[Parameter(1)]
			public int SmaPeriod1;

		[Parameter(1)]
			public decimal OrderQuantity;
		
		[Parameter(60)]
			public decimal AlisSeviyesi;
		
		[Parameter(65)]
			public decimal SatisSeviyesi;

		SMA sma;

		public override void OnInit()
		{
			sma = SMAIndicator(Symbol1, SymbolPeriod.Min, OHLCType.Close, SmaPeriod1);
			SendOrderSequential(true, Side.Buy);
			WorkWithPermanentSignal(false);
		}

		[RestoreLastValueOnResume]
		bool bayrak=true;
		
		public override void OnInitCompleted()
		{
			if (bayrak)
			{
				SendLimitOrder(Symbol1, OrderQuantity, OrderSide.Buy, AlisSeviyesi, includeAfterSession:false);
				bayrak=false;
			}
		}

		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			if (CrossBelow(sma, 60m, 0) && LastOrderSide.Obj!=Side.Buy)
			{
				SendLimitOrder(Symbol1, OrderQuantity, OrderSide.Buy, AlisSeviyesi, includeAfterSession:false);
			}
			if (CrossAbove(sma, 65m, 0) && LastOrderSide.Obj!=Side.Sell)
			{
				SendLimitOrder(Symbol1, OrderQuantity, OrderSide.Sell, SatisSeviyesi, includeAfterSession:false);
			}
		}
	}
}

Algoritma sihirbazı:

https://destek.matriksdata.com/?qa=4438/iq-algoritma-sihirbaz%C4%B1n%C4%B1-nas%C4%B1l-kullan%C4%B1r%C4%B1z

https://destek.matriksdata.com/?qa=4448/algoritma-sihirbaz%C4%B1-kullan%C4%B1m%C4%B1-%C3%B6rnekler-%C3%A7oklu-ko%C5%9Ful-olu%C5%9Fturma

EXPLORER SİHİRBAZI İLK ÖRNEK

(15,422 puan) tarafından
0 0
Aynı sorunun cevabını arıyorum bulamadım. Bar data mantığıyla cevap veremezsiniz. Doğrudan limit fiyat üzerinden al sat yapılması lazım. döngü nasıl yapılıyor çözemedim.
0 0
cevaba sihirbazda oluşturduğum stratejiyi ekledim inceleyebilirsiniz. sihirbazda oluşturduğum örneğe ek bir kaç ekleme yaptım.

bu senaryoyu piyasa alarmı ile 2 alarm ( son fiyat<=x ve son fiyat >=y) oluşturup bu iki alarmı da sıralı ilerlemesi için zincir alarm ile bağlayabilirsiniz.
7,511 soru
7,515 cevap
4,405 yorum
8,751 kullanıcı