serkance'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
Üstad Merhaba
PMax ve CCI standart değerlerinde
koşul 1 :
PMaxK > PMaxST ve CCI < 100  iken
CCI 100 ü yukarı keserse al ve %5 stopla takip et
Koşul 2 :
PMaxK <  PMaxST ce CCI > 100 iken
PMaxK PMaxST yi yukarı keserse al ve %5 stoplu takip et
Bir türlü oluşturamadım.
Genel bölüme yazdım oradan da bir cevap gelmedi
Yardımcı Olursan sevinirim
Teşekkürler
3, Aralık, 2023 MANAS tarafından
merhabalar           AL       MOV(C,OPT3,VAR)*2>OTT(MOV(C,OPT3,VAR)*2,2,0.9)FORMÜL ve sum(VHF(c,28)>ref(VHF(c,28),-1),3)=-3 AND mov(c,opt1,e)>most(c,opt1,opt2) BERABER GİRSİN,

 

                           SAT  sum(VHF(c,28)>ref(VHF(c,28),-1),3)=-3 AND mov(c,opt1,e)<most(c,opt1,opt2)

 

teşekkür ederim.
4, Kasım, 2023 seko3535 tarafından
ema hareketli ortalamasını öteleyerek kullanmak istiyorum fakat explorer'da kodunu oluşturamıyorum yardımcı olursanız çok sevinirim
26, Ekim, 2023 mahmut77 tarafından
serkan bey öğrendiğim kadarıyla ekip  olarak bir bölümde birarada çalışıyormuşşunuz.IQ daki  çalışmala arkadaşlarına iletiseniz sorularımız cevapsız kalıyo.iliglenirler tümsoru sorup cevap bekleyen üyeler mutlu olurlar.
14, Nisan, 2023 spedyy tarafından
teşekkür ederim
17, Mart, 2023 bozo55 tarafından
serkan bey yardımlarınız için teşşekurler ben 4500 musterısı olan bir aracı kurumun şubesinde çalısıyorum.Müşterilerimize daha faydalı olabilmek adına matrıks prrogramını  öğrenmek için çabalıyorum sayenizde matrıks programını muşterilerim içinde faydalı olacak şekilde öğreniyorum.Özellikle formuller konusunda   çok soru geliyor bize.  iyi çalışmalar.
14, Mart, 2023 spedyy tarafından
çok teşekkürler
8, Ocak, 2023 Ska1903 tarafından
Teşekkürler, sağolun
1, Ocak, 2023 AFATARAR tarafından
ÇOK TEŞEKKÜR EDERİM...
9, Kasım, 2022 erikhan tarafından
7,591 soru
7,598 cevap
4,441 yorum
10,467 kullanıcı