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.

1

Emir sinyali geldi fakat emirlerin sıralı gitmesi seçeneği aktif olduğundan emir gönderilmedi

Soruldu
Görüntülenme
1.802 görüntülenme
Durum
Cevaplandı
"Emir sinyali geldi fakat emirlerin sıralı gitmesi seçeneği aktif olduğundan emir gönderilmedi " robot çalıştığında bu uyarıyı alıyorum sistem alım satım yapmıyor nasıl bir yol izlemeliyim
Paylaş

1 Cevap

0
Emirlerin sirali gitmesini istemiyorsaniz public override void OnInit(){ kod sekmesi icerisine SendOrderSequential(false); yaziniz.
BağlantıBayraklaMatt RicksMatriks Destek8.033

Yorumlar (5)

  • ▲1
    aynı sorun bende de var 2 gündür yapamadım. mail olarak bunun benzeri cevap geldi ama yapamıyorum yardımcı olurmusuınuz. bir defa alım yapacak sonrasında aldığını satacak sonra tekrar al ve sat. bunu yaptıramıyorum
  • ▲1
    Hangi stratejide bunu yapmaya calisiyorsunuz? Uzerinde calistiginiz stratejiyi buraya kopyalayabilirseniz istediginiz hale getirebiliriz.
  • ▲0
    Arkadaş cevaplamamış ama aynı problem bende de var.. Stratejim TOTT.. Aşagıdaki kodu önce AL sonra aldıgını SAT sonra AL vs vs şeklinde düzenler misiniz rica etsem..

     

     

    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 TOTTStrategy : 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(40)]
            public int TOTTPeriod;

            [Parameter(1)]
            public decimal TOTTOpt;

            [Parameter(0.001d)]
            public decimal TwinOttCoef;

            [Parameter(MovMethod.Variable)]
            public MovMethod TottMovMethod;

            [Parameter(5)]
            public decimal BuyOrderQuantity;

            [Parameter(5)]
            public decimal SellOrderQuantity;

            // indikator tanımları.
            TOTT tott;
            /// <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);
                tott = TOTTIndicator(Symbol, SymbolPeriod, OHLCType.Close, TOTTPeriod, TOTTOpt, TwinOttCoef, TottMovMethod);
                

                SendOrderSequential(true);
                //Alttaki fonksiyon açıldıktan sonra parametre olarak verilen saniyede bir OnTimer fonksiyonu tetiklenir.
                //SetTimerInterval(3);

                //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(tott.Mov, tott.OttUp))
                {
                    SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);
                    Debug("Alış Emri Gönderildi");
                }

                if (CrossBelow(tott.Mov, tott.OttDown))
                {
                    SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell);
                    Debug("Satış Emri Gönderildi");
                }
            }

            /// <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)
            {
                if (order.OrdStatus.Obj == OrdStatus.Filled)
                {

                }
            }
        }
    }
  • ▲0

    Gonderdiginiz stratejide bir sorun yok, sirali olarak "önce AL sonra aldıgını SAT sonra AL vs vs şeklinde" islem yapacaktir. Backtest yaparsaniz islemlerin bu sekilde gerceklestigini gorebilirsiniz.

    "Emir sinyali geldi fakat emirlerin sıralı gitmesi seçeneği aktif olduğundan emir gönderilmedi." uyarisinin cikmasi, stratejide islem yapilmiyor anlamina gelmemekte. Bu durumda strateji AL sinyali uretmistir, fakat zaten pozisyon mevcuttur. Islemlerin sirali yapilmasi secenegi girildigi icin de, strateji 2. kere AL islemi yapmayacaktir, SAT sinyali bekleyecektir. Strateji calismaktadir.

    Sisteminiz bu haliyle ayda 10-14 islem yapmaktadir. Bu strateji calismiyor demek degil, stratejinin parametreleri az islem yapilacak sekilde ayarlanmis. Daha fazla islem yapan bir strateji istendigi taktirde kullanilan indikatorun parametreleri degistirilmeli.

  • ▲0
    Merhaba Matt Ricks,

    Bu stratejiye "açığa sat" - "açığı kapat" işlemlerini de ekleyebilir misiniz? Defalarca denedim fakat hata alıyorum, beceremedim maalesef.

    Ayrıca bir diğer ricam; alım satım yapılan barların alım-satım renkleri ile boyanması.

     

    Şimdiden teşekkür ederim...

Cevabınız

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