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

Anıl hocanın sistemini IQ ya geçirebilir misiniz?

Soruldu
Kategori
İndikator
Görüntülenme
2.179 görüntülenme
Durum
Cevaplandı

Şimdiden teşekkür ederim yardımlarınız için. 
LONG
if(MOV(C,40,VAR)>OTT(C,40,7), MOV(C,40,VAR)>OTT(C,40,0.8)(1+0,0008) AND STOSK(600,300,33,VAR)+1000>OTT(STOSK(600,300,33,VAR)+1000,2,0.9), MOV(C,40,VAR)>OTT(C,40,0.8)(1+0,0008) AND STOSK(600,300,33,VAR)+1000>OTT(STOSK(600,300,33,VAR)+1000,2,0.9))
 

SHORT
if(MOV(C,40,VAR)>OTT(C,40,7), MOV(C,40,VAR)<OTT(C,40,0.8)(1+0,0008) AND STOSK(600,300,33,VAR)+1000<OTT(STOSK(600,300,33,VAR)+1000,2,0.9), MOV(C,40,VAR)<OTT(C,40,0.8)(1+0,0008) AND STOSK(600,300,33,VAR)+1000<OTT(STOSK(600,300,33,VAR)+1000,2,0.9))  

Paylaş

1 Cevap

0

Merhabalar,

Lütfen aşağıdaki stratejiyi test ediniz.

***STRATEJİLERİ TEST/DENEME ORTAMINDA SINAMADAN VE SİZİN İSTEDİĞİNİZ ŞEKİLDE ÇALIŞTIĞINA EMİN OLMADAN GERÇEK ORTAMDA HİÇBİR ZAMAN ÇALIŞTIRMAYINIZ ***

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;

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

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

		[Parameter(5)]
		public decimal BuyOrderQuantity;

		[Parameter(5)]
		public decimal SellOrderQuantity;

		[Parameter(40)]
			public int OttPeriod1;

		[Parameter(7)]
			public decimal OttOpt1;

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

		[Parameter(true)]
			public bool OttSupportLine1;

		[Parameter(40)]
			public int TottPeriod1;

		[Parameter(0.8)]
			public decimal TottOpt1;

		[Parameter(0.0008)]
			public decimal TottTwinOttCoef1;

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

		[Parameter(600)]
			public int SottPeriodK1;

		[Parameter(300)]
			public int SottPeriodSlowK1;

		[Parameter(2)]
			public int SottOttPeriod1;

		[Parameter(0.9)]
			public decimal SottOttOpt1;

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

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

		[Parameter(3)]
		public int KaldiracOrani;


		OTT ott;
		TOTT tott;
		SOTT sott;

		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			if (ott.Value[1][ott.CurrentIndex] > ott.Value[0][ott.CurrentIndex])
			{
				if (tott.Value[0][tott.CurrentIndex] > tott.Value[1][tott.CurrentIndex] && sott.Value[0][sott.CurrentIndex] > sott.Value[1][sott.CurrentIndex])
				{
					FX_Alis();
					// sentetik emirler OnOrderUpdate() methodundan eklenmesi gerekir - örnekteki gibi 
				}

			}else if (tott.Value[0][tott.CurrentIndex] > tott.Value[1][tott.CurrentIndex] && sott.Value[0][sott.CurrentIndex] > sott.Value[1][sott.CurrentIndex])
			{
				FX_Alis();
				// sentetik emirler OnOrderUpdate() methodundan eklenmesi gerekir - örnekteki gibi 
			}


			if (ott.Value[1][ott.CurrentIndex] > ott.Value[0][ott.CurrentIndex])
			{
				if (tott.Value[0][tott.CurrentIndex] < tott.Value[1][tott.CurrentIndex] && sott.Value[0][sott.CurrentIndex] < sott.Value[1][sott.CurrentIndex])
				{
					FX_Satis();
					// sentetik emirler OnOrderUpdate() methodundan eklenmesi gerekir - örnekteki gibi 
				}

			}else if (tott.Value[0][tott.CurrentIndex] < tott.Value[1][tott.CurrentIndex] && sott.Value[0][sott.CurrentIndex] < sott.Value[1][sott.CurrentIndex])
			{
				FX_Satis();
				// sentetik emirler OnOrderUpdate() methodundan eklenmesi gerekir - örnekteki gibi 
			}
		}

		public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);
			ott = OTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, OttPeriod1, OttOpt1, OttMovMethod1, OttSupportLine1);
			tott = TOTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, TottPeriod1, TottOpt1, TottTwinOttCoef1, TottMovMethod1);
			sott = SOTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, SottPeriodK1, SottPeriodSlowK1, SottOttPeriod1, SottOttOpt1, SottOttMethod1, SottStosKMethod1);

			// Gerekli			
			WorkWithPermanentSignal(true);

			if (AcigaSatisYapilsin)
			{
				SendOrderSequential(true, Side.Buy);
				SendOrderSequentialForShort(true, Side.All);
			}else
			{
				SendOrderSequential(true, Side.Buy);
			}
			// #Gerekli

			// kaldıraç oranı
			SetLeverage(Symbol, KaldiracOrani);
			// kaldıraç tipi – true isolated, false cross
			SetLeverageType(Symbol, false);
			// Gerekli

		}

		[Parameter(false)]
		public bool AcigaSatisYapilsin;

		[Parameter(false)]
		public bool AksamSeansiniDahilEt;

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

		public void FX_Alis()
		{
			string _orderID = string.Empty; ;
			decimal _quantity = 0;

			if (LastOrderSide.Obj != Side.Buy)
			{
				if (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin)
				{
					_orderID = SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
					_quantity = BuyOrderQuantity;
				}else
				{
					if (LastOrderSideForShort.Obj == Side.All)
					{
						_orderID = SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
						_quantity = BuyOrderQuantity;
					}else
					{
						_orderID = SendMarketOrder(Symbol, BuyOrderQuantity * 2, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
						_quantity = BuyOrderQuantity * 2;
					}
				}

				if (_orderID != string.Empty && _quantity != 0)
				{
					orderIDList.Add(_orderID);
					Debug("Alış emri gönderildi.[ " + _quantity + " adet ]");
					LastOrderSide.Obj = Side.Buy;
					LastOrderSideForShort.Obj = Side.Buy;
				}
			}
		}

		public void FX_Satis()
		{
			string _orderID = string.Empty; ;
			decimal _quantity = 0;

			if (LastOrderSide.Obj != Side.Sell)
			{
				if (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin)
				{
					_orderID = SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
					_quantity = SellOrderQuantity;
				}else
				{
					if (LastOrderSideForShort.Obj == Side.All)
					{
						_orderID = SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
						_quantity = SellOrderQuantity;

					}else
					{
						_orderID = SendMarketOrder(Symbol, SellOrderQuantity * 2, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
						_quantity = SellOrderQuantity * 2;
					}
				}


				if (_orderID != string.Empty && _quantity != 0)
				{
					orderIDList.Add(_orderID);
					Debug("Satış emri gönderildi.[ " + _quantity + " adet ]");
					LastOrderSide.Obj = Side.Sell;
					LastOrderSideForShort.Obj = Side.Sell;
				}
			}
		}

		public override void OnOrderUpdate(IOrder order)
		{
			if (order.OrdStatus.Obj == OrdStatus.Filled)
			{
				// Senntetik emirler tanımlanıyor
				//				StopLoss(Symbol, SyntheticOrderPriceType.Percent, 1);
				//				TakeProfit(Symbol, SyntheticOrderPriceType.Percent, 1);
				if (!orderIDList.Contains(order.CliOrdID) && AcigaSatisYapilsin)
				{
					LastOrderSideForShort.Obj = Side.All;
					Debug("Sentetik emir tetiklendi");
				}
			}
		}
		// #Gerekli
	}
}


İyi çalışmalar.

BağlantıBayrakladüzenlendi · asiyangasiyangMatriks Destek11.113

Yorumlar (7)

  • ▲0
    Kod yazma ve okuma işinde oldukça yeniyim ama Formülün al-sat koşulunda bir "else" eksikliği olabilir mi?

    if (ott.Value[1][ott.CurrentIndex] > ott.Value[0][ott.CurrentIndex]) ise bıdı bıdı,

    else, bıdı bıdı gibi?

    Şu durumda Long'a da Short'a da uptrend'teyken giriyormuş gibi geldi bana ama kaçırdığım bir şey varsa koddaki hangi bölüme bakmam gerekiyor, söylerseniz çok sevinirim.
  • ▲0
    Kaldıraç oranını nasıl ayarlayabiliriz buna ek olarak.
  • ▲0
    Merhabalar,

    Ekteki stratejiyi düzenleyip içerisine kaldıraç ekledim.

    Lütfen test ediniz.

    İyi çalışmalar.
  • ▲0
    Başınızı ağrıtıyorum ama kusura bakmayın. Bende timestump hatası oluyor. Ercan bey bi kod verdi uyarladım başka strateji de çalıştı ancak bunda yine aldım buna da yardımcı olursanız çok memnun kalırım :)
  • ▲0

    Merhabalar,

    Lütfen aşağıdaki yapıyı inceleyiniz.

    ***STRATEJİLERİ TEST/DENEME ORTAMINDA SINAMADAN VE SİZİN İSTEDİĞİNİZ ŞEKİLDE ÇALIŞTIĞINA EMİN OLMADAN GERÇEK ORTAMDA HİÇBİR ZAMAN ÇALIŞTIRMAYINIZ ***

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Matriks.AI;
    using Matriks.Data.Symbol;
    using Matriks.Engines;
    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 test45454 : MatriksAlgo
    	{
    		[SymbolParameter("BTC_USDT_BIN")]
    		public string Symbol;
    
    		[Parameter(SymbolPeriod.Min5)]
    		public SymbolPeriod SymbolPeriod;
    
    		[Parameter(40)]
    			public int OttPeriod1;
    
    		[Parameter(7)]
    			public decimal OttOpt1;
    
    		[Parameter(MovMethod.VAR)]
    			public MovMethod OttMovMethod1;
    
    		[Parameter(true)]
    			public bool OttSupportLine1;
    
    		[Parameter(40)]
    			public int TottPeriod1;
    
    		[Parameter(0.8)]
    			public decimal TottOpt1;
    
    		[Parameter(0.0008)]
    			public decimal TottTwinOttCoef1;
    
    		[Parameter(MovMethod.VAR)]
    			public MovMethod TottMovMethod1;
    
    		[Parameter(600)]
    			public int SottPeriodK1;
    
    		[Parameter(300)]
    			public int SottPeriodSlowK1;
    
    		[Parameter(2)]
    			public int SottOttPeriod1;
    
    		[Parameter(0.9)]
    			public decimal SottOttOpt1;
    
    		[Parameter(MovMethod.VAR)]
    			public MovMethod SottOttMethod1;
    
    		[Parameter(MovMethod.VAR)]
    			public MovMethod SottStosKMethod1;
    
    		[Parameter(5)]
    		public decimal BuyOrderQuantity;
    
    		[Parameter(5)]
    		public decimal SellOrderQuantity;
    
    		[Parameter(3)]
    		public int Kaldirac;
    
    		OTT ott;
    		TOTT tott;
    		SOTT sott;
    
    		public override void OnInit()
    		{
    			AddSymbol(Symbol, SymbolPeriod);
    			ott = OTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, OttPeriod1, OttOpt1, OttMovMethod1, OttSupportLine1);
    			tott = TOTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, TottPeriod1, TottOpt1, TottTwinOttCoef1, TottMovMethod1);
    			sott = SOTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, SottPeriodK1, SottPeriodSlowK1, SottOttPeriod1, SottOttOpt1, SottOttMethod1, SottStosKMethod1);
    
    			// Gerekli - Açığa satış
    			WorkWithPermanentSignal(true);
    
    			if (HangiIslemleBaslasin == yon.Alis)
    			{
    				SendOrderSequential(true, Side.Buy);
    			}else if (HangiIslemleBaslasin == yon.Satis)
    			{
    				SendOrderSequential(true, Side.Sell);
    			}else
    			{
    				SendOrderSequential(true, Side.All);
    			}
    			SendOrderSequentialForShort(true, Side.All);
    			// #Gerekli - Açığa satış
    
    			// Gerekli - Kaldıraç			
    			SetLeverage(Symbol, Kaldirac); // kaldıraç oranı			
    			SetLeverageType(Symbol, true); // kaldıraç tipi - true isolated, false cross
    			// #Gerekli - Kaldıraç
    
    			// Gerekli - Timestamp
    			SetTimerInterval(1);
    			// #Gerekli - Timestamp
    		}
    
    		public override void OnDataUpdate(BarDataEventArgs barData)
    		{
    			if (ott.Value[1][ott.CurrentIndex] > ott.Value[0][ott.CurrentIndex])
    			{
    				if (tott.Value[0][tott.CurrentIndex] > tott.Value[1][tott.CurrentIndex] && sott.Value[0][sott.CurrentIndex] > sott.Value[1][sott.CurrentIndex])
    				{
    					FX_Alis();
    					// sentetik emirler OnOrderUpdate() methodundan eklenmesi gerekir - örnekteki gibi 
    				}
    
    			}
    			else if (tott.Value[0][tott.CurrentIndex] > tott.Value[1][tott.CurrentIndex] && sott.Value[0][sott.CurrentIndex] > sott.Value[1][sott.CurrentIndex])
    			{
    				FX_Alis();
    				// sentetik emirler OnOrderUpdate() methodundan eklenmesi gerekir - örnekteki gibi 
    			}
    
    
    			if (ott.Value[1][ott.CurrentIndex] > ott.Value[0][ott.CurrentIndex])
    			{
    				if (tott.Value[0][tott.CurrentIndex] < tott.Value[1][tott.CurrentIndex] && sott.Value[0][sott.CurrentIndex] < sott.Value[1][sott.CurrentIndex])
    				{
    					FX_Satis();
    					// sentetik emirler OnOrderUpdate() methodundan eklenmesi gerekir - örnekteki gibi 
    				}
    
    			}
    			else if (tott.Value[0][tott.CurrentIndex] < tott.Value[1][tott.CurrentIndex] && sott.Value[0][sott.CurrentIndex] < sott.Value[1][sott.CurrentIndex])
    			{
    				FX_Satis();
    				// sentetik emirler OnOrderUpdate() methodundan eklenmesi gerekir - örnekteki gibi 
    			}
    		
    	}
    
    	// Gerekli - Açığa satış		
    	[Parameter(true)]
    		public bool AcigaSatisYapilsin;
    
    	[Parameter(false)]
    		public bool AksamSeansiniDahilEt;
    
    	[Parameter(yon.Farketmez)]
    		public yon HangiIslemleBaslasin;
    
    	public enum yon
    	{
    		Alis, Satis, Farketmez
    	}
    
    	List<string> orderIDList = new List<string>();
    
    	public void FX_Alis()
    	{
    		string _orderID = string.Empty; ;
    		decimal _quantity = 0;
    
    		if (LastOrderSide.Obj != Side.Buy)
    		{
    			if (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin)
    			{
    				_orderID = SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
    				_quantity = BuyOrderQuantity;
    			}else
    			{
    				if (LastOrderSideForShort.Obj == Side.All)
    				{
    					_orderID = SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
    					_quantity = BuyOrderQuantity;
    				}else
    				{
    					_orderID = SendMarketOrder(Symbol, BuyOrderQuantity * 2, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
    					_quantity = BuyOrderQuantity * 2;
    				}
    			}
    
    			if (_orderID != string.Empty && _quantity != 0)
    			{
    				orderIDList.Add(_orderID);
    				Debug("Alış emri gönderildi.[ " + _quantity + " adet ]");
    				LastOrderSide.Obj = Side.Buy;
    				LastOrderSideForShort.Obj = Side.Buy;
    			}
    		}
    	}
    
    	public void FX_Satis()
    	{
    		string _orderID = string.Empty; ;
    		decimal _quantity = 0;
    
    		if (LastOrderSide.Obj != Side.Sell)
    		{
    			if (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin)
    			{
    				_orderID = SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
    				_quantity = SellOrderQuantity;
    			}else
    			{
    				if (LastOrderSideForShort.Obj == Side.All)
    				{
    					_orderID = SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
    					_quantity = SellOrderQuantity;
    
    				}else
    				{
    					_orderID = SendMarketOrder(Symbol, SellOrderQuantity * 2, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
    					_quantity = SellOrderQuantity * 2;
    				}
    			}
    
    
    			if (_orderID != string.Empty && _quantity != 0)
    			{
    				orderIDList.Add(_orderID);
    				Debug("Satış emri gönderildi.[ " + _quantity + " adet ]");
    				LastOrderSide.Obj = Side.Sell;
    				LastOrderSideForShort.Obj = Side.Sell;
    			}
    		}
    	}
    	// #Gerekli - Açığa satış	
    
    	// Gerekli - Timestamp
    	public class OrderListTimestamp
    	{
    		public string ID;
    		public string Sembol;
    		public decimal Adet;
    		public decimal Fiyat;
    		public OrdType EmirTipi;
    		public OrderSide orderSide;
    		public string EmirYonu;
    		public DateTime TetiklenmeZamani;
    		public int Sayac;
    		public bool AktifMI;
    	}
    
    	Dictionary<string, OrderListTimestamp> timestampDict = new Dictionary<string, OrderListTimestamp>();
    
    	[Parameter(3)]
    		public int AyniEmirKacSeferGonderilsin;
    
    	[Parameter(10)]
    		public int KacSaniyeSonraTekrarGonderilsin;
    
    	string orderIDTimestamp = string.Empty;
    
    	public override void OnTimer()
    	{
    		var tutt = timestampDict.Where(x => x.Value.AktifMI == true && DateTime.Now >= x.Value.TetiklenmeZamani);
    
    		if (tutt.Count() >0)
    		{
    			foreach (var deger in tutt)
    			{
    				LastOrderSide.Obj = deger.Value.orderSide == OrderSide.Buy? Side.Sell:Side.Buy;
    
    				if (deger.Value.EmirTipi.Obj == OrdType.Limit)
    				{
    					orderIDTimestamp = SendLimitOrder(deger.Value.Sembol, deger.Value.Adet, deger.Value.orderSide, deger.Value.Fiyat);
    					Debug(deger.Value.EmirYonu + " emri tekrar gönderildi.");
    				}else if (deger.Value.EmirTipi.Obj == OrdType.Market)
    				{
    					orderIDTimestamp = SendMarketOrder(deger.Value.Sembol, deger.Value.Adet, deger.Value.orderSide);
    					Debug(deger.Value.EmirYonu + " emri tekrar gönderildi.");
    				}
    
    				deger.Value.ID = orderIDTimestamp;
    				deger.Value.AktifMI = false;
    				timestampDict[orderIDTimestamp] = deger.Value;
    				timestampDict.Remove(deger.Key);
    
    			}
    		}
    	}
    	// #Gerekli - Timestamp
    
    	public override void OnOrderUpdate(IOrder order)
    	{
    		// Gerekli - Açiğa satış
    		if (order.OrdStatus.Obj == OrdStatus.Filled)
    		{
    			if (!orderIDList.Contains(order.CliOrdID) && AcigaSatisYapilsin && !timestampDict.ContainsKey(order.CliOrdID))
    			{
    				LastOrderSide.Obj = Side.All;
    				Debug("Sentetik emir tetiklendi");
    			}
    		}
    		// #Gerekli - Açiğa satış
    
    		// Gerekli - Timestamp
    		if (order.OrdStatus.Obj == OrdStatus.Filled)
    		{
    			if (timestampDict.ContainsKey(order.CliOrdID))
    			{
    				timestampDict.Remove(order.CliOrdID);
    				Debug("Timestamp hatasına takılan emriniz gerçekleşti.");
    			}
    		}
    
    		if (order.OrdStatus.Obj == OrdStatus.Rejected)
    		{
    			if (!timestampDict.ContainsKey(order.CliOrdID))
    			{
    				OrderListTimestamp orderList = new OrderListTimestamp();
    				orderList.ID = order.CliOrdID;
    				orderList.Sembol = order.Symbol;
    				orderList.Adet = order.OrderQty;
    				orderList.Fiyat = order.Price;
    				orderList.EmirTipi = order.OrdType;
    				orderList.TetiklenmeZamani = DateTime.Now;
    				orderList.Sayac = 0;
    				orderList.AktifMI = false;
    
    				if (order.Side.Obj == Side.Buy)
    				{
    					orderList.orderSide = OrderSide.Buy;
    					orderList.EmirYonu = "Alış";
    				}else
    				{
    					orderList.orderSide = OrderSide.Sell;
    					orderList.EmirYonu = "Satış";
    				}
    
    				timestampDict[order.CliOrdID] = orderList;
    			}
    
    			if (order.Text.Contains("Timestamp"))
    			{
    				if (timestampDict.ContainsKey(order.CliOrdID))
    				{
    					if (timestampDict[order.CliOrdID].Sayac < AyniEmirKacSeferGonderilsin)
    					{
    						timestampDict[order.CliOrdID].TetiklenmeZamani = DateTime.Now.AddSeconds(KacSaniyeSonraTekrarGonderilsin);
    						timestampDict[order.CliOrdID].Sayac++;
    						timestampDict[order.CliOrdID].AktifMI = true;
    
    						Debug("Emir Timestamp hatasından dolayı iptal oldu tekrar gönderilecek");
    					}else
    					{
    						timestampDict.Remove(order.CliOrdID);
    						Debug("Aynı emir üst üste " + AyniEmirKacSeferGonderilsin + " defa gönderildi.");
    					}
    				}
    			}
    		}
    		// #Gerekli - Timestamp			
    	}
    }
    }

    İyi çalışmalar.

  • ▲0
    Merhaba,

    Bu kodlamayı çalıştırmak istiyorum ancak hata alıyorum. Sizden ricam bunu dosya şeklinde paylaşırsanız sevinirim.

    Teşekkürler.
  • ▲0

     

    Merhabalar,

    İstediğiniz dosya aşağıda paylaşılmıştır.

    /dosya/c759f0vvr8rw4rk1e0gqpn12d/test45454.mtxiq

    Kod şeklinde paylaşıldığında ise, IQ Algo seçeneğine tıklayarak Yeni Strateji Oluştur demeniz gerekmektedir.

    Oluşturduğunuz stratejiye bir isim veriniz.

    Daha sonra ise önünüze açılan ekrana yukarıda paylaşılan kodu kopyala yapıştır yöntemi ile ekleyiniz.

    Ekledikten sonra sol üstte yazan isim ile eklediğiniz stratejinin ismini aynı yapınız.

    Sistemi kullanmaya başlayabilirsiniz.

    İyi çalışmalar.

Cevabınız

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