MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
227 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 | 227 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)

{

}

 

}

}
(32 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

(5,921 puan) tarafından
2,196 soru
2,051 cevap
1,851 yorum
1,514 kullanıcı