Forex programozás › Fórum › Kérdések az MQL4 programozási nyelvvel kapcsolatban › Ciklusból kilépés probléma
3 bejegyzés megtekintése - 1-3 / 3
-
SzerzőBejegyzés
-
Szia Radu!
Az a gondom, hogy a mellékelt függvényben a ciklus meg kéne, hogy szakadjon, ha az FR értéke <0, és azt utána már ne változtassa, hanem küldje vissza FRAM értékeként, ehelyett folyamatosan változik. Valamit nagyon benézek, de órák óta képtelen vagyok rájönni, hogy mit!
Megköszönném, ha ránéznél: Koszadouble FRAM() { double FRAM; double FR; int cnt= OrdersTotal(); int i; if((LastLoLot()>ShLot()&&ShLot()!=0)||(LastShLot()>LoLot()&&LoLot()!=0)) { for(i=0; i<cnt; i++) { if(FR<0)break; FR=100*(AccountEquity()/EquityStart-1); } if(FR<0)FRAM=FR; } return FRAM; }
Mindig használj kapcsos zárójeleket, így borzasztó szívástól óvod meg magad hosszabb távon. Nem tudom, hogy a kódod megjavul-e, de átírtam, adjuk meg neki az esélyt.
A következőkre mindig figyelj oda:
- használj kapcsos zárójelet *mindig*
- adj alapértéket a változóidnak
- ha break-et használsz, előtte tégy meg minden szükséges teendőt – így nem kell többször ugyanazt a feltételt vizsgálnod
double FRAM() { double FRAM = 0, FR = 0; int cnt = OrdersTotal(), i; if((LastLoLot()>ShLot()&&ShLot()!=0)||(LastShLot()>LoLot()&&LoLot()!=0)) { for (i=0; i < cnt; i++) { if (FR < 0) { FRAM=FR; break; } FR=100*(AccountEquity()/EquityStart-1); } } return(FRAM); }
Azért ellenőrizd a többi eljárásodat is, nehogy végül más okozza a problémát.
-
SzerzőBejegyzés
3 bejegyzés megtekintése - 1-3 / 3
- Be kell jelentkezni a hozzászóláshoz.