Code: Select all
using system;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Symbols;
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;
using Matriks.Data.Tick;
using Matriks.Enumeration;
namespace Matriks.Lean.Algotrader
{ public class OrderStatusEventArgs : EventArgs { public string OrderId { get; set; } public OrdStatus Status { get; set; }
public OrderStatusEventArgs(string orderId, OrdStatus status)
{
OrderId = orderId;
Status = status;
}
}
public class oco_v2 : MatriksAlgo
{
[SymbolParameter("ENDAE")]
public string Symbol;
[Parameter(SymbolPeriod.Min5)]
public SymbolPeriod SymbolPeriod;
[Parameter(3)] // Satış miktarı
public decimal SellOrderQuantity;
[Parameter(16.5)] // Hedef fiyat (Limit Satış)
public decimal TargetSellPrice;
[Parameter(16.35)] // Stop tetikleme fiyatı
public decimal StopTriggerPrice;
[Parameter(16)] // Stop limit satış fiyatı
public decimal StopLimitSellPrice;
private bool limitOrderPlaced = false;
private bool stopOrderPlaced = false;
private string limitOrderId;
private string stopOrderId;
private string OrderId;
public override void OnInit()
{
AddSymbol(Symbol, SymbolPeriod);
AddSymbolMarketData(Symbol);
Debug("Limit ve Stop Limit Satış Stratejisi Başladı.");
}
public override void OnDataUpdate(BarDataEventArgs barData)
{
decimal currentPrice = barData.BarData.Close;
Debug($"Mevcut Fiyat: {currentPrice}, Hedef Satış Fiyatı: {TargetSellPrice}, Stop Tetikleme Fiyatı: {StopTriggerPrice}, Stop Limit Satış Fiyatı: {StopLimitSellPrice}");
// Limit satış emri gönder (Fiyat hedefe ulaşınca)
if (currentPrice >= TargetSellPrice && !limitOrderPlaced)
{
limitOrderId = SendLimitOrder(Symbol, SellOrderQuantity, OrderSide.Sell, TargetSellPrice);
Debug($"Limit Satış Emri Gönderildi -> ID: {limitOrderId}, Fiyat: {TargetSellPrice}, Miktar: {SellOrderQuantity}");
limitOrderPlaced = true;
}
// Stop-limit tetiklenirse limit emri gönder
if (currentPrice
} < /p>
`< /p>
Ich begegnet auf A " ordnernStatuseventArgs ist kein Typ "< /Strong> Kompilierungsfehler in meinem C# -Code, während die methode ondorderUpdate
Code: Select all
using Matriks.Trader.Core.Events;