0 beğenilme 0 beğenilmeme
774 kez görüntülendi
Merhaba, Anıl Özekşi'nin sistemlerinde kullanılan ve SUM fonksiyonunu içeren aşağıdaki yamayı İQ için yazabilir misiniz?

SUM(H>OTT(HHV(H,opt1),2,opt2),opt3)=-opt4

Yama aslında HOTT indikatörünün aşağıdaki koşulunun üst üste belirli bir sayıda (opt4 kez) gerçekleşmesi sonucu işlem izni veren bir yapı.

HottLott.Value[0][HottLott.CurrentIndex] < OHLCType.High
Algoritmik Trading kategorisinde (298 puan) tarafından | 774 kez görüntülendi

1 cevap

1 beğenilme 0 beğenilmeme
En İyi Cevap

Merhabalar,

Aşağıdaki gibi yapı kullanabilirsiniz. 

namespace Matriks.Lean.Algotrader
{
    public class test : 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("GARAN")]
                                   public string Symbol1;
 
                        [Parameter(SymbolPeriod.Day)]
                                   public SymbolPeriod SymbolPeriod1;
                        [Parameter(20)]
                                   public int HighesthighPeriod1;
                        [Parameter(2)]
                                   public int OttPeriod1;
                        [Parameter(0.5)]
                                   public decimal OttOpt1;
 
                        [Parameter(MovMethod.VAR)]
                                   public MovMethod OttMovMethod1;
                        [Parameter(true)]
                                   public bool OttSupportLine1;
 
                        [Parameter(1)]
                                   public decimal OrderQuantity1;
                        [Parameter(3)]
                                   public int barsayisi;
 
                        public int sayac;
                        HighestHigh highestHigh;
                        OTT ott;
 
                        public override void OnInit()
                        {
                                   sayac = 0;
                                   highestHigh = HighestHighIndicator(Symbol1, SymbolPeriod1, HighesthighPeriod1);
                                   ott = OTTIndicator(highestHigh, OttPeriod1, OttOpt1, OttMovMethod1, OttSupportLine1);
 
                                   SendOrderSequential(true, Side.Buy);
                                   WorkWithPermanentSignal(true);
                        
                        }
 
                                   List<int> sumList = new List<int>();
 
                        public override void OnDataUpdate(BarDataEventArgs barData)
                        {
                             var barData1 = GetBarData(Symbol1, SymbolPeriod1);
                             var ohlcData1 = GetSelectedValueFromBarData(barData1, OHLCType.High);
 
 
                                   var tut = ohlcData1 > ott.Value[0][ott.CurrentIndex] ? 1:0;
                                   sumList.Add(tut);
                                   var sayac = sumList.Skip(sumList.Count - barsayisi).Sum();
 
                                   if (ohlcData1 > ott.Value[0][ott.CurrentIndex]
                                               && sayac == barsayisi)
                                   {
                                               SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);
                                   }
 
                        }
            
                        public override void OnOrderUpdate(IOrder order)
                        {
                                   if (order.OrdStatus.Obj == OrdStatus.Filled && LastOrderSide.Obj != Side.Sell)
                                   {
                                               sayac = 0;
                                               Debug("alış sayacları sıfırlandı");
 
                                   }
                                   
                        }

İyi çalışmalar.

(11,106 puan) tarafından
tarafından seçilmiş
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.



9,148 soru
9,103 cevap
5,027 yorum
28,108 kullanıcı