Operacje handlowe cBota
W tym przewodniku szczegółowo wyjaśniamy kluczowe operacje handlowe, które możesz wykonywać za pomocą cBota opracowanego przez Algo API.
Oto niektóre z obsługiwanych operacji dla cBotów:
- Wysyłanie zleceń rynkowych.
- Składanie zleceń oczekujących.
- Modyfikowanie zleceń oczekujących i otwartych pozycji.
- Zamykanie pozycji i anulowanie zleceń.
- Subskrybowanie zdarzeń handlowych (pozycje, zlecenia i powiązana aktywność).
Wysyłaj zlecenia rynkowe
Zlecenie rynkowe jest wysyłane na serwer handlowy, gdy wywoływana jest metoda ExecuteMarketOrder(). Po utworzeniu nowego cBota możesz dodać tę metodę z kilkoma zdefiniowanymi właściwościami zlecenia rynkowego (symbol, wolumen, take profit, stop loss itp.). Poniższy przykład składa zlecenie rynkowe po uruchomieniu cBota.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
1 2 3 4 5 6 7 8 9 10 | |
Wskazówka
W przykładzie kilka parametrów zlecenia zostało celowo pozostawionych niezdefiniowanych "". Sprawdź References, aby zobaczyć sygnatury i kolejność wszystkich parametrów ExecuteMarketOrder().
Po zbudowaniu cBota i dodaniu instancji zobaczysz, że zlecenie rynkowe z określonymi parametrami zostało wykonane na starcie. Zakładki Positions i Log w panelu Trade Watch wyświetlają odpowiednią pozycję i wpisy dziennika.
Składaj zlecenia oczekujące
cTrader obsługuje trzy typy zleceń oczekujących, a mianowicie zlecenia stop, zlecenia z limitem i zlecenia stop-limit. Aby złożyć zlecenia oczekujące na starcie, możesz zastąpić zlecenie rynkowe następującymi fragmentami kodu we wcześniejszym przykładzie cBota.
1 2 3 | |
1 2 3 | |
Wskazówka
Aby szybko sprawdzić parametry metody, zacznij wpisywać nazwę metody i nawias otwierający. Zobaczysz wyskakujące okienko IntelliSense z dodatkowymi informacjami.

Wskazówka
Jeśli klikniesz metodę/parametr w cTrader Algo i naciśniesz F1, panel pomocy po prawej stronie okna kodu pokaże pasujące wyniki wyszukiwania. Jeśli kursor tekstowy pozostanie poza oknem kodu i naciśniesz F1, pojawi się okno Help Centre, aby Ci pomóc.
Po pomyślnym zbudowaniu i uruchomieniu cBota zobaczysz następujące wpisy w panelu Trade Watch.
Modyfikuj zlecenia oczekujące i otwarte pozycje
Gdy zlecenia oczekujące zostaną złożone, stają się dostępne w kolekcji PendingOrders Twojego cBota. Za pomocą tej kolekcji możesz uzyskać do nich dostęp i je modyfikować. Istniejące zlecenia oczekujące można modyfikować, dostosowując ich poziom stop loss w następujący sposób.
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 | |
Zakładka Log panelu Trade Watch pokazuje, że trzy zlecenia oczekujące zostały pomyślnie zmodyfikowane natychmiast po złożeniu.

Po pomyślnym wykonaniu różnych typów zleceń zostaną otwarte pozycje dla Twojego konta. Wszystkie otwarte pozycje są dostępne w kolekcji Positions Twojego cBota. Podobnie jak w przypadku modyfikowania zleceń oczekujących w poprzednim przykładzie, możesz zmodyfikować otwartą pozycję. Ponieważ zlecenia rynkowe są najszybszym sposobem otwierania pozycji, dodajmy metodę OnBar() z akcją modyfikacji pozycji do pierwszego cBota w tym przewodniku.
1 2 3 4 5 6 7 | |
1 2 3 4 | |
Jak widać w dzienniku, otwarta pozycja została zmodyfikowana na pierwszym otwartym słupku.

Zamykaj pozycje i anuluj zlecenia
Poniżej znajdziesz przykład cBota, który zamyka wszystkie otwarte pozycje i anuluje wszystkie zlecenia oczekujące w piątek o 11:00 (UTC), wywołując metodę OnTick().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |

Subskrybuj zdarzenia handlowe
cTrader umożliwia programistom algorytmów subskrybowanie zdarzeń handlowych i monitorowanie aktywności handlowej, niezależnie od tego, czy zostały one zainicjowane przez cBota, czy ręcznie. Osiąga się to poprzez nasłuchiwanie zdarzeń dostępnych w dwóch wcześniej pokazanych kolekcjach, Positions i PendingOrders.
Dla pozycji dostępne są trzy zdarzenia:
OpenModifiedClosed
Są one wyzwalane odpowiednio podczas otwierania, modyfikowania i zamykania pozycji na Twoim koncie.
W poniższym fragmencie kodu trzy zdarzenia są deklarowane w metodzie OnStart(), a metody, które mają być wywoływane, są przypisane. Automatycznie utworzą one dla nas sygnatury kodu do użycia. Następnie do każdej z metod zdarzeń dodawane są instrukcje Print().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Niezależnie od tego, czy to Ty, czy cBot wykonuje zdarzenia Open, Modified i Closed, algorytm będzie na nie reagował za każdym razem z wydrukowanymi komunikatami, jak pokazano w dzienniku poniżej.

Podobnie możesz subskrybować zdarzenia związane ze zleceniami oczekującymi. Dla zleceń oczekujących dostępne są cztery zdarzenia:
CreatedModifiedFilledCancelled
Cztery zdarzenia są deklarowane w metodzie OnStart(), a procedury obsługi zdarzeń są dodawane w następujący sposób.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Jeśli subskrybujesz zdarzenia związane ze zleceniami oczekującymi, cBot będzie reagował zarówno na ręczne, jak i zaprogramowane działania handlowe.

Podsumowanie
Podsumowując, cTrader wyposaża programistów algorytmów w imponujący arsenał operacji handlowych, które mogą być wykonywane przez cBoty. Umiejętnie je stosując, możesz realizować dostosowane i zaawansowane strategie handlowe.



