0 beğenilme 0 beğenilmeme
398 kez görüntülendi
ANIL ÖZEKŞİ'ye ait OTT VE STOCHASTİC indikarlöriyle oluturulan SOTT'un prime de yer alan aşağıdaki formülünün IQ da çift yönlü ve kaldıraçlı  hâli var mıdır?

 

AL İÇİN

CROSS(STOSK(opt1,opt2,33,VAR)+1000,OTT(STOSK(opt1,opt2,33,VAR)+1000,2,opt3))

SAT İÇİN

CROSS(OTT(STOSK(opt1,opt2,33,VAR)+1000,2,opt3),STOSK(opt1,opt2,33,VAR)+1000)
Algoritmik Trading kategorisinde (55 puan) tarafından | 398 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme
using System;
using System.Collections.Generic;
using System.Linq;
using Matriks;
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;
using Matriks.AI;
using Matriks.AI.AiParameters;
using Matriks.AI.Data;
using Matriks.Trader.Core.TraderModels;

namespace Matriks.Lean.Algotrader
{
	public class SOTT_ciftyon : MatriksAlgo
	{
		// Strateji çalıştırılırken kullanacağımız parametreler. Eğer sembolle ilgili bir parametre ise,
		// "SymbolParameter" ile, değilse "Parameter" ile tanımlama yaparız. Parantez içindeki değerler default değerleridir.


		[SymbolParameter("FSISE")]
			public string Symbol;

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

		[Parameter(500)]
		public int SOTTPeriod;

		[Parameter(200)]
		public int SOTTOpt;

		[Parameter(20)]
		public int OTTPeriod;

		[Parameter(0.00d)]
		public decimal OTTOpt;

		[Parameter(MovMethod.VAR)]
		public MovMethod SottMovMethod;

		[Parameter(5000)]
		public decimal BuyOrderQuantity;

		[Parameter(5000)]
		public decimal SellOrderQuantity;

		[Parameter(5000)]
			public decimal StopLevel1;

		[Parameter(5000)]
			public decimal StopLevel2;





		SOTT sott;



		public override void OnInit()
		{
			sott = SOTTIndicator(Symbol, SymbolPeriod1, OHLCType.Close, SOTTPeriod, SOTTOpt, OTTPeriod, OTTOpt, SottMovMethod, SottMovMethod);



			AddSymbol(Symbol, SymbolPeriod1);





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


		}


		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			if (CrossAbove(sott, sott, 0, 1))
			{
				
				FX_Alis(Symbol, BuyOrderQuantity);
			

			}
			if (CrossBelow(sott, sott, 0, 1))
			{
				
				FX_Satis(Symbol, SellOrderQuantity);
				

			}

		}

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


		[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);

				TakeProfit(Symbol, SyntheticOrderPriceType.PricePoint, StopLevel1, includeAfterSession:false);
				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);

				TakeProfit(Symbol, SyntheticOrderPriceType.PricePoint, StopLevel1, includeAfterSession:false);
				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");
			}
		}



	}
}

kaldıraç dan kastınızı bilemiyorum.

(110 puan) tarafından
0 0
Teşekkür ederim. Kaldıraçtan kastım Binance için ayarlanabilir kaldıraç oranı belirlemekti, fakat hallettim.
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,831 kullanıcı