MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
5 beğenilme 0 beğenilmeme
1,984 kez görüntülendi

                                                      BİR STRATEJİYE STOP EKLEMEK

 

Merhaba,

Var olan bir stratejiye stop eklemek için, ilk olarak aşağıdaki stop komutlarını bilmemiz gerekir.

 

            // %5 zarar durdur
            // StopLoss(Symbol, SyntheticOrderPriceType.Percent, 5);
                                                           
            // %5 kar al
            // TakeProfit(Symbol, SyntheticOrderPriceType.Percent, 5);
                                                           
            // %5 izsürenstop
            TrailingStopLoss(Symbol, SyntheticOrderPriceType.Percent, 5);

 

Yüzde olarak değil de, miktar olarak tanımlamak istersek,

SyntheticOrderPriceType.Percent

Yerine,

SyntheticOrderPriceType.PricePoint

Gelmelidir.

Mesela,

StopLoss(Symbol, SyntheticOrderPriceType.PricePoint, 0.20);

 

Gibi. Tabii bu durumda, yazacağımız rakam da puan olmalıdır. Yukarıdaki ifadede, stop seviyesi 0.2 puandır.

 

İpucu: Normal şartlar altında, stop seviyelerinin yüzde olarak uygulanması, genelde kullanmak açısından daha doğrudur.

Bilgi: Program içinde, hazır stratejilerden SMA_Bitmex_TPSL stratejisi stop uygulaması içermektedir.

 

**

Stop ifadesinin genel şablonu şu şekildedir:

TakeProfit( string symbol, SyntheticOrderPriceType SyntheticOrderPriceType, decimal stopLevel )

 

Genellikle şöyle ifade edilir:

StopLoss(Symbol, SyntheticOrderPriceType.Percent, Zarar_Durdur_Yuzdesi);

StopLoss(Symbol, SyntheticOrderPriceType.Percent, 1);

 

Yukarıda 2. Satırda olduğu gibi, sabit bir rakam yazabiliriz. Bu durumda, strateji bu rakamı baz alarak çalışacak, çalıştırma esnasında bize bir şey sormayacaktır.

Bu, normalde tercih edeceğimiz bir durum olmayacaktır.

Bu sebeple, öncesinde bir değişken tanımlamayı tercih ederiz.

Public class bölümünde şu şekilde değişken tanımlayabiliriz:

	//Burdaki değer ile yüzdeli stoploss kurulur.
		[Parameter(1)]
		public decimal Zarar_Durdur_Yuzdesi;

      

Yukarıdaki tanımlamayı yapıp, daha sonra aşağıdaki kod satırını:

StopLoss(Symbol, SyntheticOrderPriceType.Percent, Zarar_Durdur_Yuzdesi);

 

AL ya da, Açığa Sat emir gönderim satırının altına eklemeliyiz.

 

**

Örnek:

Kodun içinde değişken tanımlama kısmına geliyorum.

Son değişkeni kopyalayıp, aynısını altına yapıştırıyorum.

 

Sonra, eklediğim değişkende, hedefime uygun olarak düzenlemeyi yapıyorum.

 

Rakamların karışmaması için, 2 rakamını 1.5 yaptım. Değişken olarak tanımladığım için backtest veya çalıştırma aşamasında zaten göreceğim.

İsmini de yukarıda göreceğiniz şekilde değiştirdim.

Sonra, Alış satırının altına stop emir kodunu ekliyorum.

 

Debug fonksiyonun işlevi ayrıdır. Kendimizi bilgilendirmek için kullanırız. Ayrıca anlatılacaktır.

Dilersek, stoploss kodumuzun altına da, debug ekleyerek kendimize çıktılar kısmında, bilgilendirme alabiliriz.

 

Önemli Bir Detay: Yukarıdaki resimde, emir gönderim satırı içinde sembol tanımının Synbol olduğunu görüyoruz. Bazen orada, farklı olarak Symbol1 ya da daha farklı bir tanım olabilir.

Bu durumda, bizim de, stop komutumuzun içinde yer alan Symbol ifadesini aynı şekilde değiştirmemiz gerekir.

Değiştirmez isek, kodun içeriğine göre, ya hata mesajı alırız, bunu fark edip düzeltmek kolay olacaktır.

Ya da yanlış bir sembole emir gönderilmesine sebep olabiliriz. Dikkat edelim lütfen.

 

İşlem tamamlandı. Kodu derle yapabiliriz.

*

Backtest yapmayı denersek, karşımıza çıkacak pencerede ilgili stop seçeneğini de görebiliriz.

 

Benzer biçimde, diğer stopları da ekleyebiliriz.

 

DİKKAT: Stop ifadesinin AL koşulu altına eklenmesi, sadece AL pozisyonuna uygulanmasını garanti etmez. Oraya eklememiz, görsel / işlevsel bir kolaylık içindir.
Esasen, stop ifadesi, pozisyon açtığını var saydığı her emre uygulanır. 
Bu sebeple, stopların doğru çalışması için: Stratejinin AL ile başlaması ve emirlerin sıralı gönderilmesi gerekir. 
AL ile başlatmadığımız strateji SAT emrini açığa sat olarak algılar. Ve stop buna göre devreye girer. 
Sıralı gönder seçmediğimiz takdirde de, stop gerçekleşmesine rağmen SAT emrinin tekrar gönderilmesi gibi sorunlarla kaşılaşabiliriz. 
Eğer daha serbest olarak kullanmak istiyorsanız, kodun içine ayrıca pozisyon kontrolü vb. koymalıyız. 
Bu konuda ayrıca bir çalışma yapacağız. 

 

**

Dilersek, peş peşe Kar Al – Zarar Durdur ve İz süren stop emirleri de girebiliriz. Hangisi önce gerçekleşirse, o çalışacaktır.

 

Hayırlı kazançlar dileriz.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Algoritmik Trading kategorisinde (5,005 puan) tarafından
tarafından düzenlendi | 1,984 kez görüntülendi
0 0
Merhaba aşağıda algoritma sihirbazında oluşturduğum yapıya yazınıza göre kar al ekledim. Ancak hem bactestte hem canlıda kar al çalışmıyor. Zahmet olmazsa kontrol edebilir misiniz

 

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;

using Matriks.AI;

using Matriks.AI.AiParameters;

using Matriks.AI.Data;

using Matriks.Trader.Core.TraderModels;

 

namespace Matriks.Lean.Algotrader

{

public class deneme2 : 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("MATIC_USDT_FBIN")]

public string Symbol1;

 

 

[Parameter(SymbolPeriod.Min)]

public SymbolPeriod SymbolPeriod1;

 

 

[Parameter(40)]

public int TottPeriod1;

 

[Parameter(1)]

public decimal TottOpt1;

 

[Parameter(0.001)]

public decimal TottTwinOttCoef1;

 

[Parameter(MovMethod.VAR)]

public MovMethod TottMovMethod1;

 

[Parameter(5)]

public decimal OrderQuantity1;

 

[Parameter(false)]

public bool IsReduceOnly1;

 

[Parameter(false)]

public bool IsReduceOnly2;

 

[Parameter(CryptoLeverageType.Isolated)]

public CryptoLeverageType LeverageType2;

 

[Parameter(false)]

public bool IsReduceOnly3;

 

[Parameter(1)]

public decimal Leverage3;

 

[Parameter(5)]

public decimal OrderQuantity4;

 

[Parameter(false)]

public bool IsReduceOnly4;

 

[Parameter(false)]

public bool IsReduceOnly5;

 

[Parameter(CryptoLeverageType.Isolated)]

public CryptoLeverageType LeverageType5;

 

[Parameter(false)]

public bool IsReduceOnly6;

 

[Parameter(1)]

public decimal Leverage6;

 

[Parameter(1.5)]

public decimal KarAlYüzdesi;

 

TOTT tott;

 

 

 

public override void OnInit()

{

 

tott = TOTTIndicator(Symbol1, SymbolPeriod1, OHLCType.Close, TottPeriod1, TottOpt1, TottTwinOttCoef1, TottMovMethod1);

 

 

 

 

SendOrderSequential(true, Side.All);

WorkWithPermanentSignal(true);

 

//Alttaki fonksiyon açıldıktan sonra parametre olarak verilen saniyede bir OnTimer fonksiyonu tetiklenir.

// SetTimerInterval(3600);

 

//Alttaki fonksiyon ile tanımlanan sembol ile ilgili haber geldiğinde OnNewsReceived fonksiyonu tetiklenir.

//AddNewsSymbol(Symbol);

 

//Alttaki fonksiyon ile tanımlanan anahtar kelime ile ilgili haber geldiğinde OnNewsReceived fonksiyonu tetiklenir.

//AddNewsKeyword("KAP");

}

 

/// <summary>

/// Init islemleri tamamlaninca, bardatalar kullanmaya hazir hale gelince bu fonksiyon tetiklenir. Data uzerinde bir defa yapilacak islemler icin kullanilir

/// </summary>

public override void OnInitCompleted()

{

 

}

 

/// <summary>

/// SetTimerInterval fonksiyonu ile belirtilen sürede bir bu fonksiyon tetiklenir.

/// </summary>

public override void OnTimer()

{

 

}

 

/// <summary>

/// AddNewsSymbol ve AddNewsKeyword ile haberlere kayit olunmuşsa bu fonksiyon tetiklenir.

/// </summary>

/// <param name="newsId">Gelen haberin id'si</param>

/// <param name="relatedSymbols">Gelen haberin ilişkili sembolleri</param>

public override void OnNewsReceived(int newsId, List<string> relatedSymbols)

{

 

}

 

/// <summary>

/// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir.

/// </summary>

/// <param name="barData">Bardata ve hesaplanan gerçekleşen işleme ait detaylar</param>

public override void OnDataUpdate(BarDataEventArgs barData)

{

if (CrossAbove(tott, tott, 0, 1))

{

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

SetLeverageType(Symbol1, LeverageType2);

SetLeverage(Symbol1, Leverage3);

TakeProfit(Symbol1, SyntheticOrderPriceType.Percent, 5);

}

if (CrossBelow(tott, tott, 0, 2))

{

SendMarketOrder(Symbol1, OrderQuantity4, OrderSide.Sell, includeAfterSession:false, isReduceOnly : IsReduceOnly4);

SetLeverageType(Symbol1, LeverageType5);

SetLeverage(Symbol1, Leverage6);

TakeProfit(Symbol1, SyntheticOrderPriceType.Percent, 5);

}

 

}

 

/// <summary>

/// Gönderilen emirlerin son durumu değiştikçe bu fonksiyon tetiklenir.

/// </summary>

/// <param name="barData">Emrin son durumu</param>

public override void OnOrderUpdate(IOrder order)

{

}

 

/// <summary>

/// Strateji durdurulduğunda bu fonksiyon tetiklenir.

/// </summary>

public override void OnStopped()

{

}

}

}
0 0
IQ'da sentetik bir emiri iptal etmek istiyorsak nasıl bir kod eklememiz gerekir...

Teşekkürler..

1 cevap

1 beğenilme 0 beğenilmeme

Merhabalar,

Dilerseniz formülünüzü aşağıdaki şekilde test edebilirsiniz.

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using System.Windows.Media;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.AlgoTrader;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Trader.Core.TraderModels;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;

namespace Matriks.Lean.Algotrader
{
	public class deneme2_2 : 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("ETH_USDT_BIN")]
			public string Symbol;

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

		[Parameter(40)]
			public int TottPeriod1;

		[Parameter(1)]
			public decimal TottOpt1;

		[Parameter(0.001)]
			public decimal TottTwinOttCoef1;

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

		[Parameter(5)]
			public decimal BuyOrderQuantity;

		[Parameter(5)]
			public decimal SellOrderQuantity;

		[Parameter(3)]
			public int Kaldirac;

		[Parameter(1.5)]
			public decimal KarAlYüzdesi;


		TOTT tott;



		/// <summary>
		/// Strateji ilk çalıştırıldığında bu fonksiyon tetiklenir. Tüm sembole kayit işlemleri,
		/// indikator ekleme, haberlere kayıt olma işlemleri burada yapılır. 
		/// </summary>
		public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);
			tott = TOTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, TottPeriod1, TottOpt1, TottTwinOttCoef1, TottMovMethod1);


			SendOrderSequential(true, Side.All);
			WorkWithPermanentSignal(true);

			if (Kaldirac>30)
			{
				// kaldıraç oranı
				SetLeverage(Symbol, 3);
				// kaldıraç tipi - true isolated, false cross
				SetLeverageType(Symbol, true);
			}else
			{
				SetLeverage(Symbol, Kaldirac);
				SetLeverageType(Symbol, true);
			}
		}


		public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
		{
			if (CrossAbove(tott, tott, 0, 1) && LastOrderSide.Obj != Side.Buy)
			{
				if (LastOrderSide.Obj == Side.All)
				{
					SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);
					TakeProfit(Symbol, SyntheticOrderPriceType.Percent, KarAlYüzdesi);
				}else
				{
					SendMarketOrder(Symbol, BuyOrderQuantity * 2, OrderSide.Buy);
					TakeProfit(Symbol, SyntheticOrderPriceType.Percent, KarAlYüzdesi);
				}
				Debug("Alış Emri Gönderildi");
			}

			if (CrossBelow(tott, tott, 0, 2) && LastOrderSide.Obj != Side.Sell)
			{
				if (LastOrderSide.Obj == Side.All)
				{
					SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell);
					TakeProfit(Symbol, SyntheticOrderPriceType.Percent, KarAlYüzdesi);
				}else
				{
					SendMarketOrder(Symbol, SellOrderQuantity * 2, OrderSide.Sell);
					TakeProfit(Symbol, SyntheticOrderPriceType.Percent, KarAlYüzdesi);
				}
				Debug("Satış Emri Gönderildi");
			}

		}

		/// <summary>
		/// Gönderilen emirlerin son durumu değiştikçe bu fonksiyon tetiklenir.
		/// </summary>
		/// <param name="barData">Emrin son durumu</param>
		public override void OnOrderUpdate(IOrder order)
		{
			if (order.OrdStatus.Obj == OrdStatus.Filled)
			{

			}
		}

		/// <summary>
		/// Strateji durdurulduğunda bu fonksiyon tetiklenir.
		/// </summary>
		public override void OnStopped()
		{
		}
	}
}

İyi çalışmalar.

 

(3,504 puan) tarafından
0 0
Merhabalar

yardımcı olduğunuz için teşekkür ederim

sistem  hem bactestte hem canlıda çalışıyor. yalnız şöyle bir durum oluşuyor. takeprofit emri gelene kadar sorun yok. teke profit emrinden sonraki ilk emirde x  kadar adet  başlayıp 2x  adet çalışmaya devam etmiyor. takeprofitten  sonraki bütün emirler 2x olarak sürüyor. birkaç gündür araştıryorum yapamadım yardımcı olabilir misiniz
1 0

Merhabalar,

Aşağıdaki paylaşılan stratejiyi inceleyip, test edebilirsiniz.

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using System.Windows.Media;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.AlgoTrader;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Trader.Core.TraderModels;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;

namespace Matriks.Lean.Algotrader
{
	public class deneme2_21 : 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("ETH_USDT_BIN")]
			public string Symbol;

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

		[Parameter(40)]
			public int TottPeriod1;

		[Parameter(1)]
			public decimal TottOpt1;

		[Parameter(0.001)]
			public decimal TottTwinOttCoef1;

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

		[Parameter(5)]
			public decimal BuyOrderQuantity;

		[Parameter(5)]
			public decimal SellOrderQuantity;

		[Parameter(3)]
			public int Kaldirac;

		[Parameter(1.5)]
			public decimal KarAlYüzdesi;


				[Parameter(true)]
		public bool AcigaSatisYapilsin;

		[Parameter(false)]
		public bool AksamSeansiniDahilEt;

		List<string> orderIDList = new List<string>();

		string orderID;
		
		TOTT tott;



		/// <summary>
		/// Strateji ilk çalıştırıldığında bu fonksiyon tetiklenir. Tüm sembole kayit işlemleri,
		/// indikator ekleme, haberlere kayıt olma işlemleri burada yapılır. 
		/// </summary>
		public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);
			tott = TOTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, TottPeriod1, TottOpt1, TottTwinOttCoef1, TottMovMethod1);


			SendOrderSequential(true, Side.Buy);
			
			WorkWithPermanentSignal(true);
			if (AcigaSatisYapilsin)
			{
				SendOrderSequential(true, Side.All);
				SendOrderSequentialForShort(true, Side.All);
			}else
			{
				SendOrderSequential(true, Side.Buy);
			}
			SetLeverage(Symbol, Kaldirac);
			SetLeverageType(Symbol, true);
		}


		public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
		{
			if (CrossAbove(tott, tott, 0, 1))
			{
				FX_Alis();
				TakeProfit(Symbol, SyntheticOrderPriceType.Percent, KarAlYüzdesi);
			}

			if (CrossBelow(tott, tott, 0, 2))
			{
				FX_Satis();
				TakeProfit(Symbol, SyntheticOrderPriceType.Percent, KarAlYüzdesi);

			}

		}

	public override void OnInitComplated()
		{
			FX_PiyasaTipi();
		}

		public void FX_Alis()
		{
			if (LastOrderSide.Obj != Side.Buy)
			{
				if (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin)
				{
					orderID = SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
					orderIDList.Add(orderID);
					Debug("Alış emri gönderildi.[ " + BuyOrderQuantity + " adet ]");
				}else
				{
					if (piyasaTipleri == PiyasaTipleri.BISTPP)
					{
						// Açık pozisyonu kapat
						orderID = SendMarketCloseShortOrder(Symbol, BuyOrderQuantity);
						orderIDList.Add(orderID);
						Debug("Açık pozisyonlar kapatıldı.[ " + BuyOrderQuantity + " adet ]");

						// Al
						orderID = SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
						orderIDList.Add(orderID);
						Debug("Alış emri gönderildi.[ " + BuyOrderQuantity + " adet ]");
					}else
					{
						// pozsiyon kapat ve al
						orderID = SendMarketOrder(Symbol, BuyOrderQuantity * 2, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
						orderIDList.Add(orderID);
						Debug("Alış emri gönderildi.[ " + (BuyOrderQuantity * 2) + " adet ]");
					}
				}
				LastOrderSide.Obj = Side.Buy;
			}
		}

		public void FX_Satis()
		{
			if (LastOrderSide.Obj != Side.Sell)
			{
				if (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin)
				{
					if (piyasaTipleri == PiyasaTipleri.BISTPP)
					{
						if (AcigaSatisYapilsin)
						{
							orderID = SendShortSaleMarketOrder(Symbol, SellOrderQuantity);
							orderIDList.Add(orderID);
							Debug("Açığa satış yapıldı.[ " + (SellOrderQuantity) + " adet ]");
						}else
						{
							orderID = SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
							orderIDList.Add(orderID);
							Debug("Satış emri gönderildi.[ " + (SellOrderQuantity) + " adet ]");
						}
					}else
					{
						orderID = SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
						orderIDList.Add(orderID);
						Debug("Satış emri gönderildi.[ " + (SellOrderQuantity) + " adet ]");
					}

				}else
				{
					if (piyasaTipleri == PiyasaTipleri.BISTPP)
					{
						orderID = SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
						orderIDList.Add(orderID);
						Debug("Satış emri gönderildi.[ " + (SellOrderQuantity) + " adet ]");

						orderID = SendShortSaleMarketOrder(Symbol, SellOrderQuantity);
						orderIDList.Add(orderID);
						Debug("Açığa satış yapıldı.[ " + (SellOrderQuantity) + " adet ]");
					}else
					{
						orderID = SendMarketOrder(Symbol, SellOrderQuantity * 2, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
						orderIDList.Add(orderID);
						Debug("Satış emri gönderildi.[ " + (SellOrderQuantity * 2) + " adet ]");
					}
				}
				LastOrderSide.Obj = Side.Sell;
			}
		}

		[Output]
		public string Sembol1 = "";

		[Output]
		public string Sembol2 = "";

		enum PiyasaTipleri
		{
			BISTPP,
			BISTVIOP,
			KRIPTOBINANCE,
			KRIPTOBINANCEFUTURE,
			KRIPTOBITMEX,
			KRIPTOBTCTURK
		}

		PiyasaTipleri piyasaTipleri = PiyasaTipleri.BISTPP;

		public void FX_PiyasaTipi()
		{
			Sembol1 = Symbol;
			Sembol2 = Symbol;

			var SymbolDetail = GetSymbolDetail(Symbol);

			if (SymbolDetail.ExchangeDetail.ExchangeCode == PiyasaTipleri.BISTPP.ToString())
			{
				piyasaTipleri = PiyasaTipleri.BISTPP;
			}else if (SymbolDetail.ExchangeDetail.ExchangeCode == PiyasaTipleri.BISTVIOP.ToString())
			{
				piyasaTipleri = PiyasaTipleri.BISTVIOP;
			}else if (SymbolDetail.ExchangeDetail.ExchangeCode == "")
			{
				Sembol1 = Symbol.Split('_')[0];
				Sembol2 = Symbol.Split('_')[1];

				var _split = Symbol.Split('_');

				if (_split.Count() == 3)
				{
					if (Symbol.Split('_')[2].Contains("BIN"))
					{
						piyasaTipleri = PiyasaTipleri.KRIPTOBINANCE;
					} else if (Symbol.Split('_')[2].Contains("FBIN"))
					{
						piyasaTipleri = PiyasaTipleri.KRIPTOBINANCEFUTURE;
						Sembol1 = Symbol;
						Sembol2 = Symbol;

					}else if (Symbol.Split('_')[2].Contains("BMEX"))
					{
						piyasaTipleri = PiyasaTipleri.KRIPTOBITMEX;
					}
				}else
				{
					piyasaTipleri = PiyasaTipleri.KRIPTOBTCTURK;
				}

			}
		}


		public override void OnOrderUpdate(IOrder order)
		{
			if (order.OrdStatus.Obj == OrdStatus.Filled)
			{
				

			}

			if (order.OrdStatus.Obj == OrdStatus.Filled && !orderIDList.Contains(order.CliOrdID) && AcigaSatisYapilsin)
			{
				LastOrderSide.Obj = Side.All;
			}
		}



	}
}

İyi çalışmalar.

0 0

sayın asiyang tekrar merhaba

buradaki stratejide de yine take profitten sonra işlemler belli bir müddet 2x adet devam ediyor

<img alt="" src="denied:data:image/png;base64,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

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.



4,011 soru
3,963 cevap
2,797 yorum
2,962 kullanıcı