Przykładowo, warunek w EA do umieszczenia zlecenia stanowi przecięcie się dwóch średnich, kiedy warunek zostaje spełniony, wywołana zostaje funkcja OnTick() a w niej OrderSend(), i w ten sposób dostaję niekończące się wywołanie funkcji OrderSend()...
Jaki macie sposób na spowodowanie aby po spełnionym warunku, OrderSend() wykonała się tylko raz.
Jak zatrzymać OrderSend() ?
Re: Jak zatrzymać OrderSend() ?
Albo zastosowanie blokady :
Tylko później musisz dać jakiś warunek i zdjąć blokadę, np. jeśli rozpocznie się nowa świeca - blokada=0;
Można też pokombinować z ilością pozycji, np. zrób jakąś funkcję zliczającą pozycje :
Jeśli otworzy pozycję to warunek się już nie spełnia, bo ilość pozycji nie równa się 0.
Kod: Zaznacz cały
int blokada=0;
void start(){
if(blokada==0&&.....){OrderSend(.....);blokada=1;}
}
Można też pokombinować z ilością pozycji, np. zrób jakąś funkcję zliczającą pozycje :
Kod: Zaznacz cały
if(ilość pozycji==0&&.....)OrderSend();
Solą życia jest kasa.
Re: Jak zatrzymać OrderSend() ?
Wystarczy dać:
To gwarantuje otwarcie tylko 1 pozycji w danej chwili.
Kod: Zaznacz cały
if(!OrdersTotal())
{
//...
}