Ten wskaźnik pokazuje aktualny profit z danej pary po prawej stronie na linii Bid
czy ktoś z was był by wstanie go dopracować tak aby z pokazywanego profitu odejmował wartość spredu , prowizji i swapu , tak by pokazywał prawdziwy profit.
Wskaźnik pokazujący profit na Bid - wymaga dopracowania
Wskaźnik pokazujący profit na Bid - wymaga dopracowania
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Re: Wskaźnik pokazujący profit na Bid - wymaga dopracowania
Linię: if((OrderSymbol() == Symbol())) Profit = Profit + OrderProfit(); zmień na: if((OrderSymbol() == Symbol())) Profit = Profit + OrderProfit()+OrderCommission()+OrderSwap();
Re: Wskaźnik pokazujący profit na Bid - wymaga dopracowania
Joł. Właśnie też to zacząłem sprawdzać i funkcja OrderProfit() zawiera już w sobie koszt spreadu, bogrzegrzyw pisze:Linię: if((OrderSymbol() == Symbol())) Profit = Profit + OrderProfit(); zmień na: if((OrderSymbol() == Symbol())) Profit = Profit + OrderProfit()+OrderCommission()+OrderSwap();
Kod: Zaznacz cały
double spread_value = (MarketInfo(Symbol(),MODE_SPREAD) * MarketInfo(Symbol(), MODE_TICKVALUE));
if((OrderSymbol() == Symbol())) Profit = Profit + (OrderProfit()+OrderCommission()+OrderSwap()) +/- spread_value;
...
Czyli odpowiedź grzegrzyw jest rozwiązaniem.
...
Ewentualnie trzeba zrobić osobą funkcje która zsumuje swap, prowizje coś w tym stylu... i wywołać to zamiast OrderCommision() albo wpuścić jako argument OrderCommision() do tej funkcji zsumować i zwrócić return x, następnie wywołać calc_commision() zamiast OrderCommision().
Kod: Zaznacz cały
double calc_commision() {
int x = 0;
for(int i=0; i<=OrdersTotal(); i++) {
if(OrderSelect(i, SELECT_BY_POS)==true) {
if (OrderType() == 1) {
x = x + OrderCommision();
}
}
}
return x;
}
Re: Wskaźnik pokazujący profit na Bid - wymaga dopracowania
ok dzięki za pomocgrzegrzyw pisze:Linię: if((OrderSymbol() == Symbol())) Profit = Profit + OrderProfit(); zmień na: if((OrderSymbol() == Symbol())) Profit = Profit + OrderProfit()+OrderCommission()+OrderSwap();
-- Dodano: 09 paź 2018, 21:40 --
-rookie- pisze:Joł. Właśnie też to zacząłem sprawdzać i funkcja OrderProfit() zawiera już w sobie koszt spreadu, bogrzegrzyw pisze:Linię: if((OrderSymbol() == Symbol())) Profit = Profit + OrderProfit(); zmień na: if((OrderSymbol() == Symbol())) Profit = Profit + OrderProfit()+OrderCommission()+OrderSwap();spread_value zwraca koszt spreadu i po odjęciu tego albo dodaniu wychodzi zły wynik, czyli trzeba by policzyć po swojemu OrderProfit() tylko po co skoro już ma spread w kosztach...Kod: Zaznacz cały
double spread_value = (MarketInfo(Symbol(),MODE_SPREAD) * MarketInfo(Symbol(), MODE_TICKVALUE)); if((OrderSymbol() == Symbol())) Profit = Profit + (OrderProfit()+OrderCommission()+OrderSwap()) +/- spread_value;
...
Czyli odpowiedź grzegrzyw jest rozwiązaniem.
...
Ewentualnie trzeba zrobić osobą funkcje która zsumuje swap, prowizje coś w tym stylu... i wywołać to zamiast OrderCommision() albo wpuścić jako argument OrderCommision() do tej funkcji zsumować i zwrócić return x, następnie wywołać calc_commision() zamiast OrderCommision().Kod: Zaznacz cały
double calc_commision() { int x = 0; for(int i=0; i<=OrdersTotal(); i++) { if(OrderSelect(i, SELECT_BY_POS)==true) { if (OrderType() == 1) { x = x + OrderCommision(); } } } return x; }
ok dzięki za pomoc