Merhaba,
Algoritma sihirbazında sembol olarak Bist ya da Viop sembollerinden birini seçiniz Örnek olarak GARAN'ı seçiniz.
Stratejinize uygun al koşulu oluşturup emir ekleme kısmında sırası ile Açığa Satış Kapama ve Alış ekleyip
satış koşulunuza da sırası ile Satış ve Açığa Satış ekleyip strateji oluşturabilirsiniz.
bu stratejiyi kripto sembollerinde de kullanabilirsiniz.
using System;
using System.Collections.Generic;
using System.Linq;
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 deneme : 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("BTC_USDT_FBIN")]
public string Symbol1;
[Parameter(SymbolPeriod.Day)]
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;
[Parameter(1)]
public decimal OrderQuantity3;
[Parameter(1)]
public decimal OrderQuantity4;
MOST most;
public override void OnInit()
{
most = MOSTIndicator(Symbol1, SymbolPeriod1, OHLCType.Close, MostPeriod1, MostPercentage1, MostMovMethod1);
SendOrderSequential(true, Side.Buy);
SendOrderSequentialForShort(true, Side.Sell);
WorkWithPermanentSignal(true);
}
public override void OnDataUpdate(BarDataEventArgs barData)
{
if (CrossAbove(most, most, 1, 0))
{
SendMarketCloseShortOrder(Symbol1, OrderQuantity2);
SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);
}
if (CrossBelow(most, most, 1, 0))
{
SendMarketOrder(Symbol1, OrderQuantity3, OrderSide.Sell, includeAfterSession:false);
SendShortSaleMarketOrder(Symbol1, OrderQuantity4);
}
}
}
}