Przejdź do treści

Strategie Renko w cTrader

Wykres Renko to typ wykresu, który jest budowany wyłącznie na podstawie ruchu ceny. Nowa cegła Renko jest tworzona dopiero wtedy, gdy ruch ceny dla symbolu przekracza określony próg pipsów; składnik czasu, zwykle używany na wykresach świecowych, jest całkowicie nieobecny. cTrader umożliwia traderom tworzenie zautomatyzowanych strategii opartych na słupkach Renko w dokładnie taki sam sposób, jak tworzenie takich strategii dla świec opartych na czasie. W tym artykule i odpowiadającym mu filmie utworzymy prostego cBota, który wykorzystuje strategię opartą na Renko, i przeprowadzimy jego backtesting.

Zdefiniuj strategię handlową

Zaczniemy od zdefiniowania sygnału kupna. Ponieważ słupki Renko są niezależne od czasu, naturalnie odfiltrowują szum rynkowy, co czyni je przydatnymi do identyfikowania wyczerpania trendu i potencjalnych odwróceń. Złożymy nowe zlecenie kupna, gdy po dwóch niedźwiedzich słupkach Renko pojawią się dwa słupki bycze.

Nasz sygnał sprzedaży będzie podążał za odwrotną konfiguracją. Złożymy zlecenie sprzedaży, gdy po dwóch byczych słupkach Renko pojawią się dwa słupki niedźwiedzie.

Utwórz przykładowego cBota

Możemy teraz przystąpić do zakodowania cBota w oparciu o powyższą strategię. Na początek zdefiniujemy parametry dla wolumenu zlecenia oraz względnych poziomów stop loss i take profit.

1
2
3
4
5
6
7
8
[Parameter(DefaultValue = 10000)]
public double Volume { get; set; }

[Parameter(DefaultValue = 20)]
public double StopLoss { get; set; }

[Parameter(DefaultValue = 20)]
public double TakeProfit { get; set; }

Wdrożymy naszą strategię handlową w metodzie OnBarClosed(). Dla naszej byczej konfiguracji sprawdzimy, czy słupki o indeksach 3 i 2 mają cenę zamknięcia niższą niż cena otwarcia, a także sprawdzimy, czy słupki o indeksach 1 i 0 mają cenę zamknięcia wyższą niż cena otwarcia.

1
2
3
4
if (Bars.Last(3).Close < Bars.Last(3).Open && Bars.Last(2).Close < Bars.Last(2).Open && Bars.Last(1).Close > Bars.Last(1).Open && Bars.Last(0).Close > Bars.Last(0).Open)
{
    ExecuteMarketOrder(TradeType.Buy, SymbolName, Volume,InstanceId, StopLoss, TakeProfit);
}

Dla naszej niedźwiedziej konfiguracji sprawdzimy odwrotność. Słupki o indeksach 3 i 2 muszą mieć wyższą cenę zamknięcia niż ich cena otwarcia; słupki o indeksach 1 i 0 muszą mieć wyższą cenę otwarcia niż ich cena zamknięcia.

1
2
3
4
if (Bars.Last(3).Close > Bars.Last(3).Open && Bars.Last(2).Close > Bars.Last(2).Open && Bars.Last(1).Close < Bars.Last(1).Open && Bars.Last(0).Close < Bars.Last(0).Open)
{
    ExecuteMarketOrder(TradeType.Sell, SymbolName, Volume, InstanceId, StopLoss, TakeProfit);
}

Przeprowadź backtesting cBota

Po zapisaniu i zbudowaniu naszego cBota możemy przejść bezpośrednio do backtestingu. Jeśli dodamy cBota do wykresu dla EURUSD z progiem Renko wynoszącym 20 pipsów, powinniśmy uzyskać zachęcające wyniki.

Uwaga

Strategie oparte na Renko wykorzystują te same struktury danych co świece oparte na czasie. Na przykład użyliśmy kolekcji Bars, aby pobrać nasze słupki Renko, tak jak zrobilibyśmy to, aby pobrać świece z wykresu świecowego. Ta funkcja umożliwia tworzenie strategii, które można testować i uruchamiać na dowolnym typie wykresu bez konieczności wprowadzania jakichkolwiek modyfikacji. Jeśli przeprowadzimy backtesting naszego cBota na wykresie świecowym, wszystkie operacje będą nadal wykonywane zgodnie z określonymi regułami.

Uwaga

Strategie oparte na Renko można optymalizować tak samo jak strategie oparte na świecach w zakładce Optymalizacja.

W tym przewodniku stworzyliśmy udanego cBota opartego na Renko przy minimalnym wysiłku.