MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
100 kez görüntülendi


Deneme ortamında robotumu denemek için çalıştırdım. Portföy bilgilerinde overall 1M olmasına rağmen robot raporunda overall 0 gözüküyor.

Algoritmik Trading kategorisinde (48 puan) tarafından | 100 kez görüntülendi

1 cevap

2 beğenilme 0 beğenilmeme
Merhaba,

IQ tarafında yapı veri terminali gibi değildir.

İzleyiniz. lütfen. Emirler tetiklendikçe gönderildiğini göreceksiniz. Demo ortamı olduğu için, gerçekleşmeler ve takibi gerçek hayattaki gibi olmaz.

Bir müddet izledikten sonra, sorularınız olur ise, ona göre devam ederiz.

iyi çalışmalar
(3,811 puan) tarafından
0 0
Robotumda overall yüzdesi üzerinden alış hacmi/adedi belirleme kuralı var. Overall sıfır gözüktüğü için de alış hacmim/adedim de 0 oluyor.

Lot = Convert.ToInt16(GetOverall() * 0.1 / LastPrice);
SendMarketOrder(Symbol, Lot, OrderSide.Buy);

Yukarıdaki kod ile Overall'ın %10 u ile son fiyat üzerinden kaç adet hisse alındığını hesaplayıp işlem göndermek istiyorum. Bu durumda bu kodu demo ortamında kullanamayacak mıyım?
1 0

Merhaba. Burada yazdığınız overall, algoritmanın kendi iç overall değeridir. Portföy verileri için ayrı fonksiyonlar vardır. Aşağıda örnek bir kod bulacaksınız.

Lütfen, 1 dk.da bir otomatik güncellemeyi aktifleştiriniz.

İyi çalışmalar

 

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using System.Windows.Media;
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 PortfoyDetay : 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 Symbol;

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

                        [Parameter(5)]
                        public decimal BuyOrderQuantity;

                        [Parameter(5)]
                        public decimal SellOrderQuantity;

                        [Parameter(5)]
                        public int MovPeriod;

                        [Parameter(22)]
                        public int MovPeriod2;

                        // indikator tanımları.
                        MOV mov;
                        MOV mov2;

                        /// <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);
                                   mov = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod, MovMethod.Exponential);
                                   mov2 = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod2, MovMethod.Exponential);

                                   // Algoritmanın kalıcı veya geçici sinyal ile çalışıp çalışmayacağını belirleyen fonksiyondur.
                                   // true geçerseniz algoritma sadece yeni bar açılışlarında çalışır, bu fonksiyonu çağırmazsanız veya false geçerseniz her işlem olduğunda algoritma tetiklenir.
                                   WorkWithPermanentSignal(true);

                                   //Eger emri bir al bir sat seklinde gonderilmesi isteniyor bu true set edilir.
                                   //Alttaki satırı silerek veya false geçerek emirlerin sirayla gönderilmesini engelleyebilirsiniz.
                                   SendOrderSequential(true);              
                        }

                        /// <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()
                        {
                                   //                                 var overall = GetOverall();      //Islem limiti
                                   var para1 = BistOverall;         //Hesaptaki toplam para(hesap Overall)

                                   var para = BistAvailableMargin;  //Margin trading hesabi varsa

                                   string Currency;         //para birimi
                                   decimal Balance;         //hesaptaki toplam para
                                   //                                 decimal Overall;         //Islem limit
                                   decimal ProfitLoss;      //Kar/Zarar
                                   decimal AvailableMargin; //Kullanilabilir margin
                                   decimal MarginCallLevel; //Hesabin margin call alacagi seviye
                                   decimal AutoStopLevel;   //Otomatik durdurma seviyesi

                                   var traderUser = GetTradeUser();

                                   var account = traderUser.Accounts.FirstOrDefault();

                                   var autostoplevel = account.AutoStopLevel;
                                   var availablemargin = account.AvailableMargin;
                                   var balance = account.Balance;
                                   var curreny = account.Currency;
                                   var exchangeID = account.ExchangeID;
                                   var margincallevel = account.MarginCallLevel;
                                   var overall = account.Overall;
                                   var profitloss = account.ProfitLoss;
                                   var tradeuser = account.TradeUser.AccountId.Last();

                                   Debug("autostoplevel: " + autostoplevel);
                                   Debug("availablemargin: " + availablemargin);
                                   Debug("balance: " + balance);
                                   Debug("curreny: " + curreny);
                                   Debug("exchangeID: " + exchangeID);
                                   Debug("margincallevel: " + margincallevel);
                                   Debug("overall: " + overall);
                                   Debug("profitloss: " + profitloss);
                                   Debug("tradeuser: " + tradeuser);
                        }
                        
                        /// <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(BarDataCurrentValues barDataCurrentValues)
                        {

                                   //                                 var overall = GetOverall();      //Islem limiti
                                   var overall = BistOverall;         //Hesaptaki toplam para(hesap Overall)

                                   var islemLimiti = BistAvailableMargin;  //Margin trading hesabi varsa

                                   Debug("overall: " + overall + " islemLimiti " + islemLimiti);
                        }
                        
            }
}

 

0 0
internetten indirdiğim dökümanda GetTradeUser tarzı gelişmiş fonksiyonların açıklaması bulunmuyor. Tüm fonksiyonlara erişebileceğim bir döküman mevcut mu? Ayrıca platforma henüz yeniyim. 1 dk'da bir otomatik güncelleme dediğiniz olay nedir?
1 0

Merhaba,

Doküman yakında güncellenecek ve bu fonksiyon da eklenecek. 

1 dk. da otomatik güncelleme için. Portföy penceresi ayarlar altından yapılır. Resme bakınız lütfen. 

 

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.



1,746 soru
1,659 cevap
1,666 yorum
1,124 kullanıcı