0 beğenilme 0 beğenilmeme
285 kez görüntülendi
Merhaba;

İz süren stop ile satış yapıyorum ancak izsüren stop alış fiyatının altında ise satış yapmasını istemiyorum bunu nasıl yapabilirim.

 

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

Debug("alim gerçekleşti : " + anlik);

TrailingStopLoss(Symbol1, SyntheticOrderPriceType.Percent, StopLevel1, includeAfterSession:false);

Debug("StopLoss Satış : " + anlik);
Algoritmik Trading kategorisinde (24 puan) tarafından | 285 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba, aşağıda sizler için bir örnek hazırladım.

Bu örneği deneme hesabında uzun bir müddet test edin.

Gerçek hesapta da test ediniz, doğru çalıştığına emin olana kadar.

Doğru çalıştığına emin olamadan lütfen gerçek hesapta kullanmayınız.

Bir sorunuz olursa iqdestek@matriksdata.com mail adresine sorularınızı iletebilirsiniz.

 

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 sdf : MatriksAlgo
	{
		[SymbolParameter("THYAO")]
			public string Symbol1;

		[Parameter(SymbolPeriod.Min15)]
			public SymbolPeriod SymbolPeriod1;

		[Parameter(Side.Buy)]
			public Side orderSide;

		[Parameter(22)]
			public int EmaPeriod1;

		[Parameter(72)]
			public int EmaPeriod2;

		[Parameter(1)]
			public decimal OrderQuantity1;

		[Parameter(1)]
			public decimal izsurenstopSeviyesi;

		[Parameter(1)]
			public decimal OrderQuantity3;

		EMA ema;
		EMA ema2;

		public override void OnInit()
		{
			ema = EMAIndicator(Symbol1, SymbolPeriod1, OHLCType.Close, EmaPeriod1);
			ema2 = EMAIndicator(Symbol1, SymbolPeriod1, OHLCType.Close, EmaPeriod2);

			SendOrderSequential(true, orderSide);
			WorkWithPermanentSignal(true);
		}


		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			var barData1 = GetBarData(Symbol1, SymbolPeriod1);
			var ohlcData1 = GetSelectedValueFromBarData(barData1, OHLCType.Close);
			if (CrossAbove(ema, ema2, 0, 0))
			{
				SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);
				 TakeProfit(Symbol1,SyntheticOrderPriceType.Percent,izsurenstopSeviyesi,false);
			}
			
			if (CrossBelow(ema, ema2, 0, 0))
			{
				SendMarketOrder(Symbol1, OrderQuantity3, OrderSide.Sell, includeAfterSession:false);
			}
		}
		 public override void OnSyntheticOrderTriggered(SyntheticAlgoOrder sOrder){
			if(!sOrder.EnableOrderSending){
				if(sOrder.SyntheticAlgoOrderType==SyntheticAlgoOrderType.TakeProfit){
					TrailingStopLoss(Symbol1,SyntheticOrderPriceType.Percent,izsurenstopSeviyesi,true);
				}
			}
		}
	}
}

 

(520 puan) tarafından
tarafından düzenlendi
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. 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.



8,639 soru
8,593 cevap
4,826 yorum
19,832 kullanıcı