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.

0

Aşağıdaki formülasyonu IQ ya çevrimini sağlarmısınız?

Soruldu
Kategori
İndikator
Görüntülenme
280 görüntülenme
Durum
Çözüldü
Sb:=hour()<>ref(hour(),-1);

hh:=ValueWhen(1,Sb,Ref(HighestSince(1,Sb,H),-1));

hl:=ValueWhen(1,Sb,Ref(LowestSince(1,Sb,L),-1));
hc:=ValueWhen(1,Sb,Ref(C,-1));
x:=(hh+hl+hc)/3;
Q1:=Input("PERIOD",1,1000,3);

Q2:=Input("PERIOD",0.001,100,1.2);

Q3:=Q2/100;
p1:=2/(Q1+1);

Q4:=If(Sb,(p1*x)+((1-p1)*PREV),PREV);

Q5:=If((Q4*(1-Q3))>PREV,Q4*(1-Q3),If((Q4*(1+Q3))<PREV,Q4*(1+Q3),PREV));
Int(Q5/0.025+0.50)*0.025
Paylaş

1 Cevap

1

Kabul edilen cevap

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;
using Matriks.Data.Tick;
using Matriks.Enumeration;
using Matriks.IntermediaryInstitutionAnalysis.Enums;
using Newtonsoft.Json;

namespace Matriks.Lean.Algotrader
{
    public class zxcx : MatriksAlgo
    {
        [SymbolParameter("GARAN")]
        public string Symbol;

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

        [Parameter(1)]
        public decimal OrderQuantity;

        [Parameter(3, "Q1 Periyodu")]
        public int Q1;

        [Parameter(1.2, "Q2 Periyodu")]
        public decimal Q2;

        SMA smaIndicator;

        public override void OnInit()
        {
            // SMA indikatörünü başlat
            smaIndicator = SMAIndicator(Symbol, SymbolPeriod, OHLCType.Close, Q1);
            AddSymbol(Symbol, SymbolPeriod);
            WorkWithPermanentSignal(true);
            SendOrderSequential(true);
        }

        public override void OnDataUpdate(BarDataEventArgs barData)
        {
            var barDataModel = GetBarData();  // Mevcut bar verilerini al
            decimal close = barDataModel.Close[barData.BarDataIndex];  // Kapanış fiyatı
            decimal Q3 = Q2 / 100;  // Q3 hesapla
            decimal p1 = 2 / (Q1 + 1);  // p1 hesapla
            decimal smaValue = smaIndicator.CurrentValue;  // SMA değerini al

            // Q4 ve Q5 benzeri hesaplama (MatriksIQ'da trend ile uyarlandı)
            decimal Q4 = smaValue;  // Basit uyarlama için SMA'yı kullandık
            decimal Q5 = (Q4 * (1 - Q3)) > close ? Q4 * (1 - Q3) : ((Q4 * (1 + Q3)) < close ? Q4 * (1 + Q3) : close);

            // Trend kırılımı kontrolü
            if (close > Q5)  // Fiyat Q5 üstüne çıkarsa alım
            {
                SendMarketOrder(Symbol, OrderQuantity, OrderSide.Buy);
            }
            else if (close < Q5)  // Fiyat Q5 altına inerse satış
            {
                SendMarketOrder(Symbol, OrderQuantity, OrderSide.Sell);
            }
        }

        public override void OnStopped()
        {
        }
    }
}
BağlantıBayrakladüzenlendi · bozkorunfethinhoAI62

Cevabınız

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