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

240dk stratejilerde gün sonu verilen emirler gerçekleşmez ise ertesi gün sabah açılışında devam etmesini nasıl sağlarım?

Soruldu
Görüntülenme
973 görüntülenme
Durum
Cevaplandı
Stratejimin periyodu 240dk. Bu yüzden gün kapanışında emir gönderdiği çok oluyor. Gün sonun olduğu için alım veya satış gerçekleşmediği zaman ertesi gün sabah tekrar alım veya satış vermesini nasıl sağlaya bilirim.
Paylaş

1 Cevap

0

Merhabalar,

Dilerseniz aşağıdaki stratejiyi inceleyip kullanabilirsiniz. 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
namespace Matriks.Lean.Algotrader
{
	public class ErtesiGunGonder : MatriksAlgo
	{
		[SymbolParameter("GARAN")]
public string Symbol;
		[Parameter(SymbolPeriod.Min)]
public SymbolPeriod SymbolPeriod;
		[Parameter(1)]
public decimal BuyOrderQuantity;
		[Parameter(1)]
public decimal SellOrderQuantity;
		[Parameter(10)]
public int ATRPeriod;
		[Parameter(10)]
public int MovPeriod;
		[Parameter(3)]
public decimal Coefficient;
		[Parameter(MovMethod.E)]
public MovMethod MovMethod;
		PMaxIndicator pmax;
		public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);
			pmax = PMaxIndicators(Symbol, SymbolPeriod, ATRPeriod, MovPeriod, (decimal) Coefficient, MovMethod);
			WorkWithPermanentSignal(true);
			SendOrderSequential(true, Side.Buy);
			SendOrderSequentialForShort(true, Side.All);
		}
		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			var _dTime = barData.BarData.Dtime;
			if (_dTime.Hour < 18)
			{
				if (LastOrderSideForShort.Obj == Side.Buy)
				{
					SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);
					Debug("Alış emri gonderildi.");
				}else if (LastOrderSideForShort.Obj == Side.Sell)
				{
					SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell);
					Debug("Satış emri gonderildi.");
				}
				LastOrderSideForShort.Obj = Side.All;
			}
			if (CrossAbove(pmax.KLine, pmax.StLine))
			{
				if (_dTime.Hour >= 18)
				{
					LastOrderSideForShort.Obj = Side.Buy;
				}else
				{
					SendMarketOrder(Symbol, BuyOrderQuantity, (OrderSide.Buy));
					Debug("Alış emri gonderildi.");
				}
			}
			if (CrossBelow(pmax.KLine, pmax))
			{
				if (_dTime.Hour >= 18)
				{
					LastOrderSideForShort.Obj = Side.Sell;
				}else
				{
					SendMarketOrder(Symbol, SellOrderQuantity, (OrderSide.Sell));
					Debug("Satış emri gonderildi.");
				}
			}
		}
		public override void OnOrderUpdate(IOrder order)
		{
			if (order.OrdStatus.Obj == OrdStatus.Filled)
			{
				SendOrderSequentialForShort(true, Side.All);
			}
		}
	}
}

İyi çalışmalar.

BağlantıBayraklaasiyangMatriks Destek11.113

Yorumlar (2)

  • ▲0
    Cevap için çok teşekkürler. Biraz karışık geldi ama çalışıp sizden yine destek isteyebilirim. Bir de aklıma şöyle bir şey geldi. Algoritma sihirbazında Periyod 240dk seçildiğin de emir ekleme alanına, emir tipi gibi bir pencere eklenebilir mi?
  • ▲0
    Merhabalar,

    Arkadaşlara talebinizi ileteceğiz.

    İyi çalışmalar.

Cevabınız

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