Merhaba, koşulun içine " LastOrderSide.Obj != Side.Buy " veya "&& LastOrderSide.Obj != Side.Sell" bu kontrolleri ekleyerek koşulun içine ekleyerek test edebilirsiniz.
Algo döküman dosyamızı inceleyebilirsiniz.
https://www.matriksdata.com/website/uploads/matriks-iq-algo-teknik-dokuman.pdf
Olası sorularınız için iqdestek@matriksdata.com adresine yazabilirsiniz.
Kolay gelsin, iyi çalışmalar.
using System;
using System.Collections.Generic;
using System.Linq;
using Matriks;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;
using Matriks.AI;
using Matriks.AI.AiParameters;
using Matriks.AI.Data;
using Matriks.Trader.Core.TraderModels;
namespace Matriks.Lean.Algotrader
{
public class deneme24 : MatriksAlgo
{
[SymbolParameter("THYAO")]
public string Symbol1;
[Parameter(SymbolPeriod.Min5)]
public SymbolPeriod SymbolPeriod1;
[Parameter(3)]
public int MostPeriod1;
[Parameter(2)]
public decimal MostPercentage1;
[Parameter(MovMethod.E)]
public MovMethod MostMovMethod1;
[Parameter(1)]
public decimal OrderQuantity1;
[Parameter(1)]
public decimal OrderQuantity2;
MOST most;
public override void OnInit()
{
most = MOSTIndicator(Symbol1, SymbolPeriod1, OHLCType.Close, MostPeriod1, MostPercentage1, MostMovMethod1);
SendOrderSequential(true, Side.Buy);
WorkWithPermanentSignal(true);
}
public override void OnDataUpdate(BarDataEventArgs barData)
{
if (CrossAbove(most, most, 1, 0) && LastOrderSide.Obj != Side.Buy)
{
SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);
}
if (CrossBelow(most, most, 1, 0) && LastOrderSide.Obj != Side.Sell)
{
SendMarketOrder(Symbol1, OrderQuantity2, OrderSide.Sell, includeAfterSession:false);
}
}
}
}