Jak zatrzymać OrderSend() ?

O jezykach programowania w platformach i nie tylko.
gregorio99
Gaduła
Gaduła
Posty: 231
Rejestracja: 09 lut 2010, 21:16

Jak zatrzymać OrderSend() ?

Nieprzeczytany post autor: gregorio99 »

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.

Awatar użytkownika
personov
Pasjonat
Pasjonat
Posty: 1525
Rejestracja: 09 sie 2009, 21:27

Re: Jak zatrzymać OrderSend() ?

Nieprzeczytany post autor: personov »

Albo zastosowanie blokady :

Kod: Zaznacz cały

int blokada=0;
void start(){
if(blokada==0&&.....){OrderSend(.....);blokada=1;}
}
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 :

Kod: Zaznacz cały

if(ilość pozycji==0&&.....)OrderSend();
Jeśli otworzy pozycję to warunek się już nie spełnia, bo ilość pozycji nie równa się 0.
Solą życia jest kasa.

WojtexWay
Gaduła
Gaduła
Posty: 145
Rejestracja: 18 wrz 2012, 19:22

Re: Jak zatrzymać OrderSend() ?

Nieprzeczytany post autor: WojtexWay »

Wystarczy dać:

Kod: Zaznacz cały

if(!OrdersTotal())
   {
   //...
   }
To gwarantuje otwarcie tylko 1 pozycji w danej chwili.

ODPOWIEDZ