Sibely'in duvarı

1 görüntülenme
sistem çalışmıyor hata veriyor yardımcı olurmusunuz ?


using System;
using System.Collections.Generic;
using System.Linq;
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;

//===========================================ACIKLAMA============================================//
// Başlangıçta belirlenen bakiyeye ve elinizdeki estrüman adetine göre strateji çalışmaya başlar.//
// Alış sinyali oluştuysa bakiye varsa bakiye kadar alış yapar. //
// Satış sinyali oluştuysa pozisyonunuz varsa hepsini satar. //
// Backtest yapıp test hesablarından denedikten sonra küçük miktarlarla gerçek hesapta deneyiniz //
//===============================================================================================//

namespace Matriks.Lean.Algotrader
{
    public class MostTumBakiyeStrategy : 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("Bakiye", 10000)]
        public decimal Bakiye { get; set; }

        [SymbolParameter("Baslangıctaki Enstruman Adedi", 0)]
        public int BaslangıctakiEnstrumanAdedi { get; set; }

        [SymbolParameter("Most Periyodu", 14)]
        public int MostPeriyodu { get; set; }

        [SymbolParameter("Most Üst Seviye", 70)]
        public int MostUstSeviye { get; set; }

        [SymbolParameter("Most Alt Seviye", 30)]
        public int MostAltSeviye { get; set; }

        // Strateji çalıştırılırken kullanacağımız değişkenler. Bu değişkenlerin değerleri strateji çalışırken değişebilir.
        private int Adet = 0;
        private bool AlisMI = false;
        private bool SatisMI = false;
        private decimal Fiyat = 0;
        private decimal KarZarar = 0;
        private decimal ToplamKarZarar = 0;
        private decimal KarZararOrani = 0;
        private decimal ToplamKarZararOrani = 0;
        private decimal BaslangicBakiyesi = 0;
        private decimal BaslangicFiyati = 0;
        private decimal SonFiyat = 0;
        private int SystemPosition = 0;
        private int realposition = 0;

        // Strateji başladığında çalışacak fonksiyon. Burada strateji için gerekli olan indikatörleri tanımlarız.
        public override void Initialize()
        {
            // Most indikatörünü tanımlıyoruz. Periyodu, üst seviyesi ve alt seviyesi parametrelerden alıyoruz.
            var most = new Most(Symbol, MostPeriyodu, MostUstSeviye, MostAltSeviye);

            // Strateji için gerekli olan verileri alıyoruz. Bu veriler, indikatör hesaplamalarında ve strateji koşullarında kullanılacaktır.
            var close = GetClose(Symbol);
            var high = GetHigh(Symbol);
            var low = GetLow(Symbol);
            var open = GetOpen(Symbol);
            var volume = GetVolume(Symbol);

            // Strateji için gerekli olan indikatör değerlerini alıyoruz. Bu değerler, strateji koşullarında kullanılacaktır.
            var mostValue = most.Value;
            var mostSignal = most.Signal;

            // Strateji için gerekli olan koşulları tanımlıyoruz. Bu koşullar, alış veya satış sinyallerini tetikleyecektir.
            var alisKosulu = mostSignal > 0;
            var satisKosulu = mostSignal < 0;

            // Strateji için gerekli olan emirleri tanımlıyoruz. Bu emirler, alış veya satış sinyalleri oluştuğunda çalışacaktır.
            var alisEmri = new MarketOrder(Symbol, OrderSide.Buy, () => Adet);
            var satisEmri = new MarketOrder(Symbol, OrderSide.Sell, () => Adet);

            // Strateji için gerekli olan fonksiyonları tanımlıyoruz. Bu fonksiyonlar, alış veya satış sinyalleri oluştuğunda çalışacaktır.
            var alisFonksiyonu = new Action(FX_Alis);
            var satisFonksiyonu = new Action(FX_Satis);

            // Strateji için gerekli olan sinyalleri tanımlıyoruz. Bu sinyaller, koşullar ve emirler arasındaki ilişkiyi kuracaktır.
            var alisSinyali = new Signal("Alış Sinyali", alisKosulu, alisEmri, alisFonksiyonu);
            var satisSinyali = new Signal("Satış Sinyali", satisKosulu, satisEmri, satisFonksiyonu);

            // Strateji için gerekli olan sinyalleri sisteme ekliyoruz. Bu sinyaller, strateji çalıştığında devreye girecektir.
            AddSignal(alisSinyali);
            AddSignal(satisSinyali);

            // Strateji için gerekli olan veri ve indikatörleri sisteme ekliyoruz. Bu veri ve indikatörler, strateji çalıştığında güncellenecektir.
            AddData(close);
            AddData(high);
            AddData(low);
            AddData(open);
            AddData(volume);
            AddIndicator(most);

            // Strateji için gerekli olan parametreleri ekrana yazdırıyoruz. Bu parametreler, strateji başladığında belirlenmiştir.
            Debug("Strateji Başladı");
            Debug("Bakiye: " + Bakiye);
            Debug("Baslangıctaki Enstruman Adedi: " + BaslangıctakiEnstrumanAdedi);
            Debug("Most Periyodu: " + MostPeriyodu);
            Debug("Most Üst Seviye: " + MostUstSeviye);
            Debug("Most Alt Seviye: " + MostAltSeviye);

            // Strateji için gerekli olan değişkenleri başlangıç değerlerine ayarlıyoruz. Bu değişkenler, strateji çalışırken değişebilir.
            Adet = 0;
            AlisMI = false;
            SatisMI = false;
            Fiyat = 0;
            KarZarar = 0;
            ToplamKarZarar = 0;
            KarZararOrani = 0;
            ToplamKarZararOrani = 0;
            BaslangicBakiyesi = Bakiye;
            BaslangicFiyati = 0;
            SonFiyat = 0;
            SystemPosition = 0;
            realposition = 0;
        }

        // Strateji çalışırken her yeni bar oluştuğunda çalışacak fonksiyon. Burada strateji için gerekli olan hesaplamaları yaparız.
        public override void OnBarUpdate()
        {
            //
4, Ocak, 4 freetuta tarafından
hocam TD SEQUENTIAL  indikatörümde  240, 120 ve 60 dk. için yapabilirmisiniz.
9, Kasım, 2022 ÖMERTAS tarafından
Hocam RSI ikili dip birinci dip 30 un altı ikinci dip 30 un üstün de ve ikinci dipte en fazla 1 bar geçecek matriks tarama formülü hocam lütfen
Mailim harran_63_05@hotmail.com
17, Temmuz, 2022 Polie tarafından
8,632 soru
8,586 cevap
4,819 yorum
19,773 kullanıcı