Przejdź do treści

Strategie zakresowych słupków w cTrader

Wykres zakresowy jest zbudowany tak, aby reprezentować określony zakres ruchów cenowych niezależnie od tego, ile czasu zajmuje cenie wykonanie tego ruchu. Filtruje to ruchy cenowe, które są mniejsze niż rozmiar zakresu, ułatwiając wizualizację trendów. W cTrader proces tworzenia zautomatyzowanych strategii handlowych, które podejmują decyzje w oparciu o zakresowe słupki, jest taki sam jak proces tworzenia takich strategii w oparciu o standardowe świece oparte na czasie. W tym artykule i odpowiadającym mu filmie pokażemy, jak możesz opracować i przetestować prostą strategię opartą na zakresowych słupkach.

Zdefiniuj sygnały kupna i sprzedaży

Krótko przedstawimy naszą logikę handlową.

  • Sygnał kupna - występuje, gdy zwyżkowy zakresowy słupek następuje po spadkowym zakresowym słupku i zamyka się powyżej ceny otwarcia spadkowego słupka.
  • Sygnał sprzedaży - występuje, gdy spadkowy zakresowy słupek następuje po zwyżkowym zakresowym słupku i zamyka się poniżej ceny otwarcia zwyżkowego słupka.

Interpretacja sygnału kupna jest taka, że gdy trend spadkowy napotyka silny opór, nadszedł czas na zakup w oczekiwaniu na odbicie. Odwrotna konfiguracja dotyczy sygnału sprzedaży: trend zwyżkowy napotyka opór i musimy to wykorzystać, składając zlecenie sprzedaży.

Utwórz przykładowego cBota

Możemy zacząć tworzyć naszego cBota. Najpierw zdefiniujemy niezbędne parametry.

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; }

Możemy zakodować nasz sygnał kupna w następujący sposób.

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

Nasz sygnał sprzedaży wygląda następująco.

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

Przetestuj strategię

Po zbudowaniu naszego nowego cBota przechodzimy do zakładki Backtesting i uruchamiamy backtest. Oto wyniki.

Uwaga

Strategie zakresowych słupków używają tych samych struktur danych co strategie oparte na świecach. Na przykład użyliśmy kolekcji Bars, aby pobrać nasze zakresowe słupki; użylibyśmy tej samej kolekcji, próbując pobrać świece. Ta funkcja cTrader pozwala na tworzenie strategii, które mogą być testowane i uruchamiane na dowolnym typie wykresu bez potrzeby wprowadzania jakichkolwiek modyfikacji.

W tym samouczku pokazaliśmy, jak możesz szybko opracować prostą strategię opartą na wykresach zakresowych. Zasugerowaliśmy również, że takie strategie mogą być swobodnie ponownie wykorzystywane na wykresach zawierających świece oparte na czasie.