Ten Bot C (RSTI_Ausama)
Ten Bot C (Robot) jest napisany w C# z wykorzystaniem platformy cAlgo.API i jest przeznaczony do automatycznego handlu na rynku Forex. Bot opiera się na sygnałach z wskaźników technicznych (Proste Średnie Kroczące) do podejmowania decyzji o kupnie i sprzedaży. Poniżej znajduje się szczegółowe wyjaśnienie komponentów bota i jego działania:
---
### 1. **Parametry**
Bot zawiera zestaw konfigurowalnych parametrów, aby dostosować jego zachowanie handlowe:
- **Ustawienia RSTI**:
- `Source`: Źródło danych używane do obliczeń (np. cena zamknięcia).
- `Length`: Długość okresu dla Prostej Średniej Kroczącej (SMA).
- `Signal Length`: Długość okresu dla sygnałowej SMA.
- **Zarządzanie ryzykiem**:
- `Trade Direction`: Kierunek handlu (Tylko Kupno, Tylko Sprzedaż lub Oba).
- `Lot Size`: Wielkość lota używana do transakcji.
- `Target Percentage (%)`: Procentowy cel dla Take Profit.
- `Target Partial (%)`: Procent dla częściowego realizowania zysków.
- `Stop Loss Percentage (%)`: Procent dla Stop Loss.
---
### 2. **Wskaźniki techniczne**
Bot używa następujących wskaźników technicznych:
- **Prosta Średnia Krocząca (SMA)**: Prosta średnia krocząca oparta na cenie zamknięcia.
- **SMA Diff**: Prosta średnia krocząca różnicy między ceną a SMA.
- **SMA Diff Abs**: Prosta średnia krocząca wartości bezwzględnej różnicy.
- **SMA Signal**: Prosta średnia krocząca sygnału siły względnej.
---
### 3. **Główne funkcje bota**
#### a. **OnStart()**
- Ta funkcja jest wykonywana podczas uruchamiania bota.
- Inicjalizuje wskaźniki i oblicza początkowe wartości średnich kroczących.
- Przechowuje ostatnią wartość sygnału (`_previousSignalValue`) do późniejszego porównania.
#### b. **OnBar()**
- Ta funkcja jest wykonywana, gdy zamyka się nowy słupek (bar).
- Aktualizuje średnie kroczące na podstawie nowych danych.
- Sprawdza zmiany w sygnale handlowym:
- Jeśli sygnał przekracza 60 (Kupno) lub spada poniżej 40 (Sprzedaż), wykonywane są transakcje.
- Aktualizuje poprzednią wartość sygnału (`_previousSignalValue`).
#### c. **OnTick()**
- Ta funkcja jest wykonywana przy każdej zmianie ceny (Tick).
- Sprawdza, czy osiągnięto poziom częściowego Take Profit (`HandleCloseOnTPReached`).
#### d. **ExecuteTrades()**
- Wykonuje transakcje na podstawie sygnału handlowego:
- Jeśli sygnał jest większy niż 60, otwierana jest transakcja Kupna.
- Jeśli sygnał jest mniejszy niż 40, otwierana jest transakcja Sprzedaży.
- Oblicza poziomy Take Profit i Stop Loss na podstawie określonych procentów.
- Wykonuje transakcje za pomocą `ExecuteMarketOrder`.
#### e. **HandleCloseOnTPReached()**
- Sprawdza, czy osiągnięto poziom częściowego Take Profit:
- Jeśli transakcja osiągnie określony poziom zysku, wielkość pozycji jest zmniejszana o 50%.
#### f. **HandleCloseOnSignal()**
- Zamyka transakcje, jeśli sygnał handlowy się zmienia:
- Jeśli transakcja to Kupno, a sygnał spada poniżej 50, transakcja jest zamykana.
- Jeśli transakcja to Sprzedaż, a sygnał wzrasta powyżej 50, transakcja jest zamykana.
#### g. **DrawSignalOnChart()**
- Wyświetla aktualną wartość sygnału na wykresie:
- Jeśli sygnał jest powyżej 50, jest wyświetlany na niebiesko.
- Jeśli sygnał jest poniżej 50, jest wyświetlany na czerwono.
---
### 4. **Zarządzanie ryzykiem**
- Wielkość lota (`LotSize`) jest ustalana na podstawie wielkości konta.
- Poziomy celu (`TargetPercentage`) i Stop Loss (`StopLossPercentage`) są ustawiane jako procenty aktualnej ceny.
- Częściowe realizowanie zysków (`Target Partial`) jest wykonywane po osiągnięciu określonego poziomu.
---
### 5. **Kierunek handlu**
- Kierunek handlu można ustawić za pomocą parametru `TradeDirection`:
- `Both`: Handel w obu kierunkach (Kupno i Sprzedaż).
- `Buy_Only`: Handel tylko w kierunku Kupna.
- `Sell_Only`: Handel tylko w kierunku Sprzedaży.
---
### 6. **Jak używać bota**
1. Dodaj bota do platformy cTrader.
2. Dostosuj parametry zgodnie ze swoją strategią (np. wielkość lota, cele i poziomy stop-loss).
3. Uruchom bota na wybranym wykresie.
4. Bot automatycznie otworzy i zamknie transakcje na podstawie sygnałów handlowych.
---
### 7. **Zalety**
- Opiera się na wyraźnych sygnałach z średnich kroczących.
- Zapewnia elastyczność w ustawianiu kierunku handlu i zarządzaniu ryzykiem.
- Wspiera częściowe realizowanie zysków i zamykanie transakcji na podstawie zmian sygnału.
---
### 8. **Wady**
- Opiera się całkowicie na średnich kroczących, które mogą nie być skuteczne we wszystkich warunkach rynkowych.
- Wymaga optymalizacji parametrów, aby dopasować się do konkretnych par walutowych i interwałów czasowych.
---
### 9. **Wskazówki dotyczące ulepszeń**
- Przetestuj bota na danych historycznych, aby zoptymalizować parametry.
- Dodaj dodatkowe wskaźniki techniczne, aby poprawić dokładność sygnałów.
- Regularnie monitoruj wydajność bota i wprowadzaj niezbędne korekty.
---
Ten bot jest potężnym narzędziem do automatycznego handlu, ale powinien być używany ostrożnie i z pełnym zrozumieniem jego mechaniki oraz zarządzania ryzykiem.