Yükselen Formasyon Stratejisi

Seçilen sembol için yükselen formasyon onaylandığında alacak ve (yarı hedef fiyatı-onaylanma fiyatı)/onaylanma fiyatı*100 oranında kar al ve zarar durdur eklenecek.

Matrisk IQ platformunda yer alan hazır stratejiler kısmında test yapabileceğiniz ve kullanabileceğiniz bir stratejidir.

Yükselen Formasyon Stratejisi

Kodlama Örneği;
using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using System.Windows.Media;
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;


/*
Yükselen formasyon onaylandığında alacak ve (yarı hedef fiyatı-onaylanma fiyatı)/onaylanma fiyatı*100 oranında kar al ve zarar durdur eklenecek.
Strateji AL ile başlayıp sıralı ilerleyecektir.
*** Yükselen formasyon listesinde istenmeyen formasyonların index numarasını silinebilir. List<int> yukselenFormasyon = new List<int>() { 2, 4, 6, 8, 9, 13, 15, 16 }; ***
Bu stratejide backtest yapılamaz. Matriks Deneme Ortamında çalıştırılıp test edilebilir.
*** KaldiracOranı değişkeni sadece kripto vadeli sembolleri için geçerlidir.
*** AksamSeansiniDahilEt değişkeni sadece VİOP için geçerlidir.
1-Head Shoulder Tops
2-Head Shoulder Bottoms
3-Triple Tops
4-Triple Bottoms
5-Double Tops
6-Double Bottoms
7-Broadening Formation Asc.
8-Broadening Formation Desc.
9-Triangles Asc.
10-Triangles Desc.
11-Triangles Sym.
12-Wedges Asc.
13-Wedges Desc.
14-Wedges Rising
15-Wedges Falling
16-Flag/Pennant Rising
17-Flag/Pennant Falling
*/

namespace Matriks.Lean.Algotrader
{
public class YukselenFormasyon : MatriksAlgo
{
[SymbolParameter("FGARAN")] public string Symbol;
[Parameter(1)] public decimal BuyOrderQuantity;
List<int> yukselenFormasyon = new List<int>()
{
2, 4, 6, 8, 9, 13, 15, 16
};
public override void OnInit()
{

AddSymbol(Symbol, SymbolPeriod.Min60); AddFormationSymbol(Symbol);
SendOrderSequential(true, Side.Buy);
WorkWithPermanentSignal(true);


}

decimal confirmationPrice, halfPriceTarget, priceTarget, yuzde; public override void OnFormationReceived(AlgoFormationModel formationModel)

{
if (yukselenFormasyon.Contains(formationModel.FormationType) && formationModel.FormationStatus.ToString() == "Confirmed" && LastOrderSide.Obj != Side.Buy)

{
confirmationPrice = (decimal) formationModel.ConfirmationPrice;
halfPriceTarget = (decimal) formationModel.HalfPriceTarget;
priceTarget = (decimal) formationModel.PriceTarget;
if (confirmationPrice != 0)

{
yuzde = Math.Round((halfPriceTarget - confirmationPrice) / confirmationPrice * 100, 2);
}else
{
yuzde = 2;
}
SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy); Debug("Alış emri gönderildi.[ " + BuyOrderQuantity + " adet ]");
Debug("StopLevel: " + yuzde);
StopLoss(Symbol, SyntheticOrderPriceType.Percent, yuzde);
TakeProfit(Symbol, SyntheticOrderPriceType.Percent, yuzde);
Debug("Inform Time: " + formationModel.InformTime);
Debug("Description: " + formationModel.Description);
Debug("Name: " + formationModel.Name);
Debug("Formation Status: " + formationModel.FormationStatus);



//Onaylanmamış formasyonlarda ConfirmationDate alanında varsayılan bir tarih görebilirsiniz
Debug("Confirmation Price: " + formationModel.ConfirmationPrice);
Debug("Formation Type: " + formationModel.FormationType);
Debug("Price Target: " + formationModel.PriceTarget);
Debug("Half Price Target: " + formationModel.HalfPriceTarget);
}
}
}
}