0 beğenilme 0 beğenilmeme
342 kez görüntülendi
Merhaba, algoritma sihirbazında sat koşulu oluştururken zararı durdur veya kar al veya iz süren stop emri nasıl ekleniyor. Bilmek istediğim koşul eklemeden stratejiyi kaydedemiyorsunuz, fakat koşul ekleyince zararı durdur veya kar al emri istenilen % ile çalışmıyor. Satış için eklenilen koşullar sağlandımı tetiğe basılıyor örneğin zararı durdur %2 olsa bile hemen devreye giriyor. %2 zarara ulaşmasını beklemiyor oluşan kod.
Diğer kategorisinde (12 puan) tarafından | 342 kez görüntülendi

2 Cevaplar

0 beğenilme 0 beğenilmeme
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);

}

 

}

}

}
(520 puan) tarafından
0 beğenilme 0 beğenilmeme
[Parameter(10)]
        public decimal KarStop;

        [Parameter(10)]
        public decimal ZararDurdur;

        [Parameter(10)]
        public decimal HareketliStop;

  public override void OnOrderUpdate(IOrder order)
        {
            if (order.OrdStatus.Obj == OrdStatus.Filled && order.Side.Obj == Side.Buy && order.Side.Obj == Side.Sell)
            {
                StopLoss(Symbol, SyntheticOrderPriceType.Percent, ZararDurdur);
                TakeProfit(Symbol, SyntheticOrderPriceType.Percent, KarStop);

                TrailingStoploss(Symbol, SyntheticOrderPriceType.Percent, HareketliStoploss);
            }

        }    

 

 

Kripto da birim fiyatı 0.0**** şeklinde olan paritelerde sentetik emirler düzgün çalışmıyor eğer orada kullanacaksanız farklı bir yapı önerebilirim
(402 puan) tarafından
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



8,591 soru
8,543 cevap
4,792 yorum
19,500 kullanıcı