Merhaba,
şablon olarak aşağıdaki stratejiyi inceleyebilirsiniz.
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;
namespace Matriks.Lean.Algotrader
{
public class SablonAcigaSatisV1 : MatriksAlgo
{
[SymbolParameter("FGARAN")]
public string Symbol;
[Parameter(SymbolPeriod.Min5)]
public SymbolPeriod SymbolPeriod;
[Parameter(5)]
public decimal BuyOrderQuantity;
[Parameter(5)]
public decimal SellOrderQuantity;
[Parameter(5)]
public int MovPeriod;
[Parameter(22)]
public int MovPeriod2;
MOV mov;
MOV mov2;
public override void OnInit()
{
AddSymbol(Symbol, SymbolPeriod);
mov = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod, MovMethod.Exponential);
mov2 = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod2, MovMethod.Exponential);
WorkWithPermanentSignal(true);
SendOrderSequential(true, HangiIslemleBaslasin);
SendOrderSequentialForShort(true, Side.All);
}
public override void OnDataUpdate(BarDataEventArgs barData)
{
if (CrossAbove(mov, mov2, 0, 0))
{
FX_Alis(Symbol, BuyOrderQuantity);
}
if (CrossBelow(mov, mov2, 0, 0))
{
FX_Satis(Symbol, SellOrderQuantity);
}
}
[Parameter(true)]
public bool AcigaSatisYapilsin;
[Parameter(false)]
public bool AksamSeansiniDahilEt;
[Parameter(Side.All)]
public Side HangiIslemleBaslasin;
public bool FX_Alis(string sembol, decimal quantity)
{
bool sonuc = false;
if (LastOrderSide.Obj != Side.Buy)
{
var _quantity = (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin) ? quantity:(LastOrderSideForShort.Obj == Side.All) ? quantity:quantity * 2;
SendMarketOrder(sembol, _quantity, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
Debug("Alış emri gönderildi.[ " + _quantity + " adet ]");
LastOrderSideForShort = LastOrderSide;
sentetikEmirdenMI = false;
sonuc = true;
}
return sonuc;
}
public bool FX_Satis(string sembol, decimal quantity)
{
bool sonuc = false;
if (LastOrderSide.Obj != Side.Sell)
{
var _quantity = (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin) ? quantity:(LastOrderSideForShort.Obj == Side.All) ? quantity:quantity * 2;
SendMarketOrder(sembol, _quantity, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
Debug("Satış emri gönderildi.[ " + _quantity + " adet ]");
LastOrderSideForShort = LastOrderSide;
sentetikEmirdenMI = false;
sonuc = true;
}
return sonuc;
}
bool sentetikEmirdenMI = false;
public override void OnSyntheticOrderTriggered(SyntheticAlgoOrder sOrder)
{
if (sOrder.EnableOrderSending)
{
if (AcigaSatisYapilsin)
{
LastOrderSide.Obj = Side.All;
sentetikEmirdenMI = true;
}
Debug("Sentetik emir tetiklendi");
}
}
}
}
Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror.
https://unblocked1games.github.io