Cześć, jak uzyskać liczbę pipsów netto ze wszystkich otwartych zamówień znajdujących się obecnie w terminalu w mql4?
Cześć, jak uzyskać liczbę pipsów netto ze wszystkich otwartych zamówień znajdujących się obecnie w terminalu w mql4?
ok, to właściwie nie działało.. z jakiegoś powodu zawsze wyświetlało się 35.xx, chociaż wiem, że to nie jest prawidłowa liczba pływających pipsów.Zamieszczone przez ;
OrderSelect to wartość logiczna, więc #8220;==1#8221; jest#8217;nie jest potrzebny. Pomnóż przez 0,1, aby zamienić punkty na pipsy. A wspornik nie jest potrzebny, jeśli podąża za nim tylko jedna rzecz. Zawsze też odliczaj swoje zamówienia. Ale tak, miałem kilka literówekZamieszczone przez ;
robię to na moim telefonie. Właśnie go edytowałem.
Coś takiego: Wstawiony kod double sum=0; for(int o=OrdersTotal()-1;ogt;=0;o#8212 if(OrderSelect(o,SELECT_BY_POS,MODE_TRADES){ RefreshRates(); if(OrderType()==0)sum =Bid-OrderOpenPrice (); if(OrderType())sum =OrderOpenPrice()-Ask;} sum*=0.1; Print(#8220;Order Pip Sum=#8220; (string)sum);Zamieszczone przez ;
dlaczego mnożysz sumę przez 0,1? a co z twoimi nawiasami wydaje się, że brakuje ich w pętli for? Oto moja próba.... Wstawiony kod double calcNetPips() { double sum=0; for(int i=0; ilt;OrdersTotal; i ) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == 1) { RefreshRates(); if(OrderType==0) sum =Bid-OrderOpenPrice(); else sum =OrderOpenPrice()-Zapytaj; } } Zwróć sumę*=0,1; }Zamieszczone przez ;
Czy użyłeś swojego kodu, szczególnie #8220;else#8221;? Jeśli używasz #8220;else#8221; następujące #8220;if(OrderType()==0)#8221; wówczas w sumie uwzględni również zlecenia oczekujące. Wstawiony kod if(OrderType()==0)//zamówienie rynkowe kupna else {}//wszystkie inne zamówienia rynek oczekujące I#8217;nie jestem pewien, czy to jest twój problem, ale jeśli tak, musisz wyraźnie określić typ zamówienia indywidualnie. Wstawiony kod if(OrderType()==0)/kupić zlecenie rynkowe if(OrderType()==1)//sprzedać zlecenie rynkowe także if(OrderType())//zlecenie rynkowe sprzedać/może również używać warunków wyliczenia :/OP_BUY=0,OP_SELL=1 if(OrderType()==OP_BUY) if(OrderType()==OP_SELL) Również nie możesz zwrócić przypisania, więc: return sum*=0.1; nie będzie działać; należy najpierw wykonać mnożenie, a następnie zwrócić wartość: Wstawiona suma kodu*=0,1; suma zwrotu;/lub zwróć sumę*0.1;Zamieszczone przez ;