Aşağıdaki stratejiyi hazırladım fakat grafikteki al-sat noktalarını yakalayamıyorum ?
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 OTTFIBO : 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(15)]
public int vmaPeriyot;
[Parameter(2)]
public int i1;
[Parameter(15)]
public int i2;
[Parameter(0.1d)]
public decimal d1;
[Parameter(0.077d)]
public decimal d2;
[Parameter(MovMethod.Variable)]
public MovMethod TottMovMethod;
[Parameter(5)]
public decimal Quantity;
int baslangıc = 0;
int ottbibo = 0;
int alıs = 0;
int kontrol=0;
// indikator tanımları.
OttFibChn ottFibChn;
VMA vma;
/// <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()
{
vma = VMAIndicator(Symbol, SymbolPeriod, OHLCType.Close, vmaPeriyot);
ottFibChn = OttFibChnIndicator(Symbol, SymbolPeriod, OHLCType.Close, i1, i2, d1, d2, MovMethod.VAR);
AddSymbol(Symbol, SymbolPeriod);
SendOrderSequential(true);
}
/// <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(vma, ottFibChn.OttFibChnUp3)) && (baslangıc==0 || kontrol==1)) { ottbibo=0; kontrol=11;}
else if ((CrossAbove(vma, ottFibChn.OttFibChnUp2)) && (baslangıc==0 || kontrol==2)) { ottbibo=0; kontrol=12;}
else if ((CrossAbove(vma, ottFibChn.OttFibChnUp1)) && (baslangıc==0 || kontrol==3)) { ottbibo=0; kontrol=13;}
else if ((CrossAbove(vma, ottFibChn.OTT)) && (baslangıc==0 || kontrol==4)) { ottbibo=0; kontrol=14;}
else if ((CrossAbove(vma, ottFibChn.OttFibChnDwn1)) && (baslangıc==0 || kontrol==5)) { ottbibo=0; kontrol=15;}
else if ((CrossAbove(vma, ottFibChn.OttFibChnDwn2)) && (baslangıc==0 || kontrol==6)) { ottbibo=0; kontrol=16;}
if ((CrossBelow(vma, ottFibChn.OttFibChnUp2)) && (kontrol==11)) { ottbibo=1; kontrol=1;}
else if ((CrossBelow(vma, ottFibChn.OttFibChnUp1)) && (kontrol==12)) { ottbibo=1; kontrol=2;}
else if ((CrossBelow(vma, ottFibChn.OTT)) && (kontrol==13)) { ottbibo=1; kontrol=3;}
else if ((CrossBelow(vma, ottFibChn.OttFibChnDwn1)) && (kontrol==14)) { ottbibo=1; kontrol=4;}
else if ((CrossBelow(vma, ottFibChn.OttFibChnDwn2)) && (kontrol==15)) { ottbibo=1; kontrol=5;}
else if ((CrossBelow(vma, ottFibChn.OttFibChnDwn3)) && (kontrol==16)) { ottbibo=1; kontrol=6;}
if (ottbibo==0 && alıs==0)
{
SendMarketOrder(Symbol, Quantity, OrderSide.Buy);
Debug("Alış Emri Gönderildi");
alıs=1;
if(baslangıc==0);
baslangıc=1;
}
if (ottbibo==1 && alıs==1)
{
SendMarketOrder(Symbol, Quantity, OrderSide.Sell);
Debug("Satış Emri Gönderildi");
alıs=0;
}
}
}
}