Matt Ricks'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
Merhaba;oluşturmak istediğim stratejime yardımcı olabilirseniz çok sevinirim,birçok deneme yaptım ama başarılı olamadım.Stratejimi Binance Future da kullanmak üzerine kurguluyorum.


Örnek üzerinden açıklamaka gerekirse


1)anlık fiyatı 100 olan bir ürün için 101 fiyatına 1birim satış,99 fiyatına 1birim alış emri girilmesi.


2)101 den satış emri gerçekleşirse 100 fiyatına 1birim karal emri girilmesi.(99 da olan emir iptal olacak)böylece yüzde 1 kar edilmesi.


3)101 de 1birim satış emri gerçekleşti,fiyat yükseldi ise 102 den de 1birim satış emri gerçekleşmesi.maliyet (101+102)/2=101.5 olduğu için 100.5 e 2birim karal emri girilmesi.(100 deki karal emri iptal olacak)


4)fiyat yükselmesi devam ederse 103 den de 1birim satış emri girilmesi.maliyet (101+102+103)/3=102 olduğu için 101 e 3 birim karal emri girilmesi.


Stratejiyi ''BİNANCE FUTURE'' da kullanacağım için diğer yönlü harekette de benzer takip eden karal ı kullanabimem gerekiyor.


Yani ilk hareket 99 fiyatına olursa 1 birim alış yapıp 100 e kar al emri girilmesi.

fiyat düşüşü devam ederse 98 de 1 birim alış yapıp maliyet 98,5 olacağı için 99,5 a 2 birim karal emri girilmesi...





Bu konuda acil yardımcı olabilirseniz çok sevinirim,iyi çalışmalar
14, Temmuz, 2022 irya tarafından
Merhaba Kıvanç Özbilgiç ‘in Tillson T3 stratejisini IQ için verebilir misiniz
27, Mayıs, 2021 salihsayit tarafından
Merhaba,linkte gonderdiğim stratejiyi duzenlememde yardimcı olursaniz cok sevinirim

https://destek.matriksdata.com/?qa=5485/hazir-stratejisini-y%C3%B6nl%C3%BC-i%C5%9Flemde-olmasi-i%C3%A7in-d%C3%BCzenlemesi
22, Nisan, 2021 irya tarafından
7,586 soru
7,592 cevap
4,435 yorum
10,412 kullanıcı