nie działający algorytm

O jezykach programowania w platformach i nie tylko.
MŁA
Bywalec
Bywalec
Posty: 14
Rejestracja: 17 lis 2011, 19:56

nie działający algorytm

Nieprzeczytany post autor: MŁA »

Witam
napisałem coś takiego:
void CheckForOpen()
{
int c;
int d;
int res;
if(Volume[0]>1)
return;
c=iLowest(NULL,0,MODE_LOW,30,1);
d=Low[c];
if(Close[1]<d )
{
if(StopLoss>0)
SL=Bid+Point*StopLoss;
if(TakeProfit>0)
TP=Bid-Point*TakeProfit;
res=WHCOrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,SL,TP,"MACD",MAGICMA,0,SellColor);
if(res<0)
{
Print("Error when opening a SELL order #",GetLastError());
Sleep(10000);
return;
}
}

}
i nie rozumiem czemu nie działa, przy kompilacji nie ma żadnego błędu.

green7
Maniak
Maniak
Posty: 2060
Rejestracja: 16 sty 2008, 18:44

Re: nie działający algorytm

Nieprzeczytany post autor: green7 »

No to jeśli Ty, autor nie rozumiesz to czemu my mamy rozumieć ?
Na pierwszy rzut oka zda mi się że:
if(Volume[0]>1)
return;
będzie zawsze spełnione.
Green
Obrazek
Obrazek

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

Re: nie działający algorytm

Nieprzeczytany post autor: TesterForex »

Problem nr 1:
Low[c] to jest cena, więc zmienna d powinna być typu double. Jak masz tam int, to zamiast np. 1.5421 będziesz miał tam 1.

Problem nr 2:
Close[1] nie może być niższe od najniższej ceny z zakresu Low[1]:Low[30]
Współautor interaktywnego kursu MQL4 dla serwisu fxwatch

MŁA
Bywalec
Bywalec
Posty: 14
Rejestracja: 17 lis 2011, 19:56

Re: nie działający algorytm

Nieprzeczytany post autor: MŁA »

TesterForex pisze:Problem nr 1:
Low[c] to jest cena, więc zmienna d powinna być typu double. Jak masz tam int, to zamiast np. 1.5421 będziesz miał tam 1.

Problem nr 2:
Close[1] nie może być niższe od najniższej ceny z zakresu Low[1]:Low[30]
Sprawdzałem d nie musi być double natomiast wprowadziłem taką zmianę:
"c=iLowest(NULL,0,MODE_LOW,30,2);
d=Low[c];
if(Close[1]<d )"
i zaczęło to żyć, wiedziałem że gdzieś popełniłem prosty logiczny błąd którego po prostu nie widzę dzięki :)

ODPOWIEDZ