Seringkali, strategi otomatis perlu mempertimbangkan informasi dari berbagai timeframe sebelum membuat keputusan trading. Untungnya, cTrader menyediakan banyak alat yang memungkinkan algo untuk dengan mudah mengakses data dari beberapa timeframe. Dalam video ini dan artikel terkait, kami akan menjelaskan bagaimana Anda dapat menggunakan alat-alat ini untuk membuat cBot yang efektif.
Deklarasikan parameter cBot
Kita akan mulai dengan mendeklarasikan parameter yang diperlukan untuk moving average. Kita akan membutuhkan periode, timeframe, dan jenis moving average.
12345678
[Parameter("MA 1 Period", DefaultValue = 14, Group = "Moving Averages")]publicintMA1Period{get;set;}[Parameter("MA 1 Timeframe", DefaultValue = "Hour", Group = "Moving Averages")]publicTimeFrameMA1Timeframe{get;set;}[Parameter("MA 1 Type", Group = "Moving Averages")]publicMovingAverageTypeMA1Type{get;set;}
Kemudian, kita dapat mendefinisikan moving average tersebut.
1
privateMovingAverage_ma1;
Kita dapat menginisialisasi moving average di metode OnStart(). Kita akan menggunakan metode MarketData.GetBars() untuk mendapatkan bar dari moving average pertama dan meneruskannya ke konstruktor indikator. Metode GetBars() berguna untuk mendapatkan data bar untuk timeframe dan simbol apa pun yang Anda butuhkan.
Parameter("MA 1 Period",DefaultValue=14,Group="Moving Averages")]publicintMA1Period{get;set;}[Parameter("MA 1 Timeframe", DefaultValue = "Hour", Group = "Moving Averages")]publicTimeFrameMA1Timeframe{get;set;}[Parameter("MA 1 Type", Group = "Moving Averages")]publicMovingAverageTypeMA1Type{get;set;}[Parameter("MA 2 Period", DefaultValue = 14, Group = "Moving Averages")]publicintMA2Period{get;set;}[Parameter("MA 2 Timeframe", DefaultValue = "Hour2", Group = "Moving Averages")]publicTimeFrameMA2Timeframe{get;set;}[Parameter("MA 2 Type", Group = "Moving Averages")]publicMovingAverageTypeMA2Type{get;set;}[Parameter("MA 3 Period", DefaultValue = 14, Group = "Moving Averages")]publicintMA3Period{get;set;}[Parameter("MA 3 Timeframe", DefaultValue = "Hour4", Group = "Moving Averages")]publicTimeFrameMA3Timeframe{get;set;}[Parameter("MA 3 Type", Group = "Moving Averages")]publicMovingAverageTypeMA3Type{get;set;}privateMovingAverage_ma1;privateMovingAverage_ma2;privateMovingAverage_ma3;protectedoverridevoidOnStart(){_ma1=Indicators.MovingAverage(MarketData.GetBars(MA1Timeframe).ClosePrices,MA1Period,MA1Type);_ma2=Indicators.MovingAverage(MarketData.GetBars(MA2Timeframe).ClosePrices,MA2Period,MA2Type);_ma3=Indicators.MovingAverage(MarketData.GetBars(MA3Timeframe).ClosePrices,MA3Period,MA3Type);}
Implementasikan logika trading
Pada titik ini, kita dapat mengimplementasikan logika trading. Strategi kita akan mempertahankan posisi beli ketika semua moving average naik dan posisi jual ketika moving average turun. Berikut adalah kode untuk semua logika sisi beli.
Terakhir, kita harus melakukan backtesting cBot baru kita. Kita dapat melihat bahwa cBot memasuki posisi ketika moving average disinkronkan ke arah yang sama dan keluar dari pasar ketika setiap indikator menunjuk ke arah yang berbeda.