nie działający kod

O jezykach programowania w platformach i nie tylko.
djszaki
Bywalec
Bywalec
Posty: 15
Rejestracja: 17 sty 2017, 18:59

nie działający kod

Nieprzeczytany post autor: djszaki »

pomocy, poniżej przedstawiam kod który w zależności od fraktala czy jest ujemny czy dodatni dokonuje transakcji buy lub sell

if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==false)

{
if (fraktal > 0)

OrderSend(Symbol(),OP_BUY, lot, cenaBuy, 50, Bid-sl*Point, Bid+tp*Point) ;

else
OrderSend(Symbol(),OP_SELL, lot, cenaSell, 50,Ask+sl*Point ,Bid-tp*Point);

}

jeżeli usunę linijkę sprawdzaającą czy są jakieś zlecenia ( if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==false)) to działa ale wówczas zlecenia cały czas się wykonują i jest ich bardzo dużo, a ja chcę aby wykonało się jedno zlecenie,

TesterForex
Stały bywalec
Stały bywalec
Posty: 43
Rejestracja: 22 gru 2016, 12:45

Re: nie działający kod

Nieprzeczytany post autor: TesterForex »

Potrzebujesz zmiennej, która będzie przechowywała wartość ostatniego fraktala. Niech to będzie lastFractal

W każdym wywołaniem głównej funkcji musisz od nowa "wyliczać" wartość ostatniego fraktala i sprawdzać czy jest inna niż ta przechowywana w zmiennej lastFractal. Jeżeli jest inna, to aktualizujesz zmienną lastFractal i robisz zlecenia. Czyli:

//lepiej sprawdzać też czy funkcja nie zwraca 0

Kod: Zaznacz cały

if (fraktal() != lastFractal && fraktal() != 0) {
   //aktualizacja zmiennej
   lastFractal = fraktal();
   if(lastFractal > 0) buy; else sell;

}
Współautor interaktywnego kursu MQL4 dla serwisu fxwatch

ODPOWIEDZ