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

Stratejide poz kapama ve yeni poz acma( x2 yapmak)

Soruldu
Görüntülenme
696 görüntülenme
Durum
Cevaplandı
Merhaba,

Strateji Al veya Sat ile başladığında bir sonraki AL/SAT x2 olarak işleme girsin, bir önceki pozisyon kapansın ve yeni pozisyon açılsın istiyorum. Eski sorulara baktığımda benzer sorular gördüm ama mevcut strateji içerisine kod olarak nasıl ekleneceğini bulamadım. Yardımcı olabilir iseniz sevinirim.

Teşekkürler,
Paylaş

1 Cevap

0

Merhaba,

şablon olarak aşağıdaki stratejiyi inceleyebilirsiniz.

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
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;
/*

Bu şablon AcigaSatisYapilsin seçeneği aktif olduğunda Viop ve Binance Future piyasaları için uygun olur.
AcigaSatisYapilsin seçeneği pasif olduğunda istenilen piyasada işlem yapacaktır.

Stratejinin çift yönlü ilerlemesi istendiğinde AcigaSatisYapilsin seçeneğinin aktif edilmesi gerekir ( varsayılan aktif )

Akşam seansında da oluşan sinyallere emir gönderilmesi için AksamSeansiniDahilEt seçeneğinin aktif edilmesi gerekir ( varsayılan pasif )
Kripto piyasası 7/24 açık olduğu için bu seçeneğin aktif ya da pasif seçilmesi birşey değiştirmez. 

HangiIslemleBaslasin değişkeni ile stratejinin ilk Long ya da Short pozisyon ile başlaması sağlanabilir.

*** Stratejiye eklenen sentetik emirler tetiklendiğinde pozisyon sıfırlanıp ilk gelecek sinyale göre işleme girecektir.

*/

namespace Matriks.Lean.Algotrader
{
	public class SablonAcigaSatisV1 : MatriksAlgo
	{
		[SymbolParameter("FGARAN")]
		public string Symbol;

		[Parameter(SymbolPeriod.Min5)]
		public SymbolPeriod SymbolPeriod;

		[Parameter(5)]
		public decimal BuyOrderQuantity;

		[Parameter(5)]
		public decimal SellOrderQuantity;

		[Parameter(5)]
		public int MovPeriod;

		[Parameter(22)]
		public int MovPeriod2;

		MOV mov;
		MOV mov2;

		public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);
			mov = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod, MovMethod.Exponential);
			mov2 = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod2, MovMethod.Exponential);

			// Gerekli başla - Açığa satış
			WorkWithPermanentSignal(true);
			SendOrderSequential(true, HangiIslemleBaslasin);
			SendOrderSequentialForShort(true, Side.All);
			// #Gerekli bitti - Açığa satış
		}

		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			if (CrossAbove(mov, mov2, 0, 0))
			{
				// Gerekli başla - Açığa satış
				FX_Alis(Symbol, BuyOrderQuantity);
				// #Gerekli bitti - Açığa satış
			}

			if (CrossBelow(mov, mov2, 0, 0))
			{
				// Gerekli başla - Açığa satış
				FX_Satis(Symbol, SellOrderQuantity);
				// #Gerekli bitti - Açığa satış
			}
		}

		// Gerekli başla - Açığa satış
		[Parameter(true)]
		public bool AcigaSatisYapilsin;

		[Parameter(false)]
		public bool AksamSeansiniDahilEt;

		[Parameter(Side.All)]
		public Side HangiIslemleBaslasin;

		public bool FX_Alis(string sembol, decimal quantity)
		{
			bool sonuc = false;
			if (LastOrderSide.Obj != Side.Buy)
			{
				var _quantity = (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin) ? quantity:(LastOrderSideForShort.Obj == Side.All) ? quantity:quantity * 2;

				SendMarketOrder(sembol, _quantity, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
				Debug("Alış emri gönderildi.[ " + _quantity + " adet ]");
				LastOrderSideForShort = LastOrderSide;
				sentetikEmirdenMI = false;
				sonuc = true;
			}
			return sonuc;
		}

		public bool FX_Satis(string sembol, decimal quantity)
		{
			bool sonuc = false;
			if (LastOrderSide.Obj != Side.Sell)
			{
				var _quantity = (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin) ? quantity:(LastOrderSideForShort.Obj == Side.All) ? quantity:quantity * 2;

				SendMarketOrder(sembol, _quantity, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
				Debug("Satış emri gönderildi.[ " + _quantity + " adet ]");
				LastOrderSideForShort = LastOrderSide;
				sentetikEmirdenMI = false;
				sonuc = true;
			}
			return sonuc;
		}

		bool sentetikEmirdenMI = false;

		public override void OnSyntheticOrderTriggered(SyntheticAlgoOrder sOrder)
		{
			if (sOrder.EnableOrderSending)
			{
				if (AcigaSatisYapilsin)
				{
					LastOrderSide.Obj = Side.All;
					sentetikEmirdenMI = true;
				}

				Debug("Sentetik emir tetiklendi");
			}
		}
		// #Gerekli bitti - Açığa satış
	}
}

 

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