Merhaba,
IQ tarafında kod yazmak zaman alıyor. Olmayan indikatörler düzenli olarak eklenmektedir.
Şu aşamada, mavilim içini yapmak istediğiniz, indikatör alarmı ile yapamazsınız. Formüllü fiyat penceresi üzerinden veya strateji yazarak yapılabilir.
Alım satım yapmak istiyorum dediğiniz için, strateji olarak hazırladık.
Kodu aşağıdadır.
Stratejinin adını
MAVILIMRENKDONUS olarak başlatınız.
İyi çalışmalar.
***STRATEJILERI TEST/DENEME ORTAMINDA SINAMADAN VE SIZIN ISTEDIGINIZ SEKILDE CALISTIGINA EMIN OLMADAN GERCEK ORTAMDA HIC BIR ZAMAN CALISTIRMAYIN***
using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
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;
namespace Matriks.Lean.Algotrader
{
public class MAVILIMRENKDONUS : 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("GARAN")]
public string Symbol;
[Parameter(SymbolPeriod.Min60)]
public SymbolPeriod SymbolPeriod;
[Parameter(1)]
public int Quantity;
[Parameter(3)]
public int firstMovPeriod;
[Parameter(9)]
public int secondMovPeriod;
MAVILIMW mavilimw;
public override void OnInit()
{
mavilimw = MAVILIMWIndicator(Symbol, SymbolPeriod, firstMovPeriod, secondMovPeriod );
AddSymbol(Symbol, SymbolPeriod);
//Eger backtestte emri bir al bir sat seklinde gonderilmesi isteniyor bu true set edilir.
//Alttaki satırı silerek veya false geçerek emirlerin sirayla gönderilmesini engelleyebilirsiniz.
SendOrderSequential(true);
WorkWithPermanentSignal(true);
}
/// <summary>
/// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir.
/// </summary>
/// <param name="barData">Bardata ve hesaplanan gerçekleşen işleme ait detaylar</param>
public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
{
var barData = GetBarData();
var Refmavilimw1 = Ref(mavilimw, -1);
var Refmavilimw2 = Ref(mavilimw, -2);
if (mavilimw.CurrentValue>Refmavilimw1 && Refmavilimw1<Refmavilimw2)
{
SendMarketOrder(Symbol, Quantity, OrderSide.Buy);
Debug("Alis emri gonderildi");
}
if (mavilimw.CurrentValue<Refmavilimw1 && Refmavilimw1>Refmavilimw2)
{
SendMarketOrder(Symbol, Quantity, OrderSide.Sell);
Debug("Satis emri gonderildi");
}
}
}
}