Merhaba,
Tam istediğiniz explorer ile stratejiyi beraber kullanmak. Bu tam mümkün değil ama şöyle bir yol izleyebilirsiniz.
Performanstan dolayı cok olmamak koşuluyla (mesela 20 hisse seçebilirsiniz), bir sepet oluşturup, bu hisseler arasında koşula uyanları filtreleyip onla işlem yaparsınız. Sattığınızda tekrar filtreleyip o hisse ile işlem yaparsınız. Biraz kod bilgisi gerekiyor tabi.
Böyle bir yöntem izleyebilirsiniz.
Mesela aşağıdaki gibi bir sembol listesi oluşturup, ChooseSymbol ile listeden koşulunuza uygun sembol seçer ve onla al sat yapabilirsiniz. Tabi burada stratejiyi her işlem ile çalıştırmamak gerekir performans açısından. Yani WorkWithPermanentSignal(true); olmalı.
using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using System.Windows.Media;
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 Deneme : MatriksAlgo
{
[Parameter(SymbolPeriod.Day)]
public SymbolPeriod SymbolPeriod;
List<string> _symbolList = new List<string>()
{
"GARAN", "AKBNK", "HALKB", "THYAO"
};
public override void OnInit()
{
foreach (var symbol in _symbolList)
AddSymbol(symbol, SymbolPeriod);
WorkWithPermanentSignal(true);
SendOrderSequential(true);
}
private string ChooseSymbol()
{
foreach (var symbol in _symbolList)
{
bool kosul=false;
var bardata=GetBarData(symbol,SymbolPeriod);
if(kosul)
{
return symbol;
}
}
return string.Empty;
}
public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
{
var symbol= ChooseSymbol();
if(string.IsNullOrEmpty(symbol)) return;
SendMarketOrder(symbol,5,OrderSide.Buy);
}
public override void OnOrderUpdate(IOrder order)
{
if (order.OrdStatus.Obj == OrdStatus.Filled)
{
}
}
}
}