0 beğenilme 0 beğenilmeme
1,409 kez görüntülendi
Merhabalar,

   Kıvanç beyin paylaşmış olduğu IFTRSI indikatörünü, algoritma sihirbazı ile strateji haline getirmeye çalışıyorum ama bir türlü başaramadım. normalde yapmak istediğim -0.5 üstüne çıkarsa al 0.5 altına inerse sat gibi çok basit bir algo oluşturmak istiyorum ama olmuyor. Yardımcı olurmusunuz.
Algoritmik Trading kategorisinde (12 puan) tarafından | 1,409 kez görüntülendi

2 Cevaplar

0 beğenilme 0 beğenilmeme
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 IFT : 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("XU100")]

public string Symbol1;

 

[SymbolParameter("XBT_USD_BMEX")]

public string OrderSymbol1;

 

 

[Parameter(SymbolPeriod.Day)]

public SymbolPeriod SymbolPeriod1;

 

 

[Parameter(9)]

public int İnversefisherkripexMovPeriod1;

 

[Parameter(5)]

public int İnversefisherkripexStochK1;

 

[Parameter(3)]

public int İnversefisherkripexStochD1;

 

[Parameter(1)]

public decimal OrderQuantity1;

 

[Parameter(1)]

public decimal OrderQuantity2;

 

MatriksIndicator InverseFisherKripex;

 

 

 

public override void OnInit()

{

InverseFisherKripex = new InverseFisherKripex();

 

InverseFisherKripex.SetIndicatorParameters("MovPeriod", İnversefisherkripexMovPeriod1);

InverseFisherKripex.SetIndicatorParameters("StochK", İnversefisherkripexStochK1);

InverseFisherKripex.SetIndicatorParameters("StochD", İnversefisherkripexStochD1); RegisterUserIndicator(InverseFisherKripex, Symbol1, SymbolPeriod1, OHLCType.Close, 5);

 

 

AddSymbol(OrderSymbol1, SymbolPeriod1);

SendOrderSequential(true, Side.Buy);

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 OnInitComplated()

{

 

}

 

/// <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(InverseFisherKripex, -0.5m, 0))

{

SendPLMOrder(OrderSymbol1, OrderQuantity1, OrderSide.Buy);

}

if (CrossBelow(InverseFisherKripex, 0m, 0))

{

SendPLMOrder(OrderSymbol1, OrderQuantity2, OrderSide.Sell);

}

 

}

 

/// <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)

{

}

 

}

}
(88 puan) tarafından
0 0
Merhaba, bunu kopyalayıp yapıştırmam mı gerekiyor? yeni strateji oluştura?
0 0

Merhaba,

Linkteki dokümanda anlatım var.

https://destek.matriksdata.com/?qa=5334/matriksiq-algoritma-stratejilerin-g%C3%B6nderilmesi-alinmasi

Bu da videosu:

NOT: Yukarıdaki kodun içeriğini biz kontrol etmedik / edemeyiz. Muhtemelen doğrudur. 

İnceleyiniz / deneyiniz. 

İyi çalışmalar

 

 

 

0 0

HOCAM MERHABA,  KODU KOPYALA YAPIŞTIR YAPTIM AMA BU HATAYI VERDİ. NEDİR HATA ACABA YARDIMCI OLABİLİRMİSİNİZ?

0 0
Stratejinin ismi ile sizin belirlediğiniz isim aynı olmalı. hatanın üzerine çift tıklayın sizi hatanın olduğu satıra yönlendirecektir. stratejiyi oluştururken belirlediğiniz ismi yazın, kodu derle deyin düzelecektir
0 0

merhabalar dediğiniz gibi yaptım hatta ismi direkt olarak InverseFisherKripex yaptım ama hata devam ediyor üzerini tıkladığımda resimde görünen boş kolona gönderiyor.

0 0

Merhaba,

Linkteki kodu alıp inceleyiniz lütfen.

https://destek.matriksdata.com/?qa=blob&qa_blobid=8197243462597210941

 

İyi çalışmalar

0 0
merhabalar, dosyayı strateji al kısmından al dediğimde uygun olmaya format diyor. ne yapmalıyım?
0 0
Merhaba.

Sanırım strateji ve indikatörler birbirine karıştı.

Bir inceleyeyim, sonra dönüş yaparım.
0 beğenilme 0 beğenilmeme

Merhaba,

Linkteki dosyayı indirip strateji al ile entegre edip kullanabilirsiniz?

Strateji:

https://destek.matriksdata.com/?qa=blob&qa_blobid=8514139189543603229

(15,892 puan) tarafından
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ı