Zwiększanie wielkości pozycji wraz ze wzrostem kapitału

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
Mustafa
Pasjonat
Pasjonat
Posty: 777
Rejestracja: 20 lip 2010, 10:54

Nieprzeczytany post autor: Mustafa »

AccountEquity() i co to ma dać zysk?

http://bossa.pl/index.jsp?layout=2&page ... at_id=1130

kolega chciał żeby;
po osiągnięciu zysku w wysokości 4000 dopiero wtedy podnosi wielkość pozycji do 0.02 lota.. itd.


Dodano po 8 minutach:

chodzi mi o to, że Equity to papierowe zyski
Nie chodzi o to czy masz rację czy nie, tylko o to, co robisz kiedy masz rację lub jak się zachowujesz jeżeli racji nie masz.

Awatar użytkownika
bbq
Pasjonat
Pasjonat
Posty: 604
Rejestracja: 10 maja 2011, 17:12

Nieprzeczytany post autor: bbq »

Moj błąd, coś mi się ubzdurało z OrderProfit, przepraszam. :oops:

Ribelo
Stały bywalec
Stały bywalec
Posty: 44
Rejestracja: 18 lut 2010, 20:28

Nieprzeczytany post autor: Ribelo »

To co dałem spełnia wszelkie wymogi

Awatar użytkownika
Mustafa
Pasjonat
Pasjonat
Posty: 777
Rejestracja: 20 lip 2010, 10:54

Nieprzeczytany post autor: Mustafa »

Ribelo pisze:

Kod: Zaznacz cały

extern double  lot = 0.00;
extern double  money.per.min.lot = 1000;
Masz teraz dwie opcje do wyboru. Albo podać lot na sztywno a momencie kiedy lot = 0, lot jest liczony według podanego kapitału na jaki ma przypaść najmniejsza wartość lota dostępna u brokera.
Ribelo pisze:To co dałem spełnia wszelkie wymogi
ale chciał;
FXNewsTrader pisze:po osiągnięciu zysku w wysokości 4000 dopiero wtedy podnosi wielkość pozycji do 0.02 lota.. itd.
a nie wpisywać lot na sztywno :wall:
a tak na marginesie zerznąłeś skądś ten kod i nawet nie wiesz co on dokładnie robi
Nie chodzi o to czy masz rację czy nie, tylko o to, co robisz kiedy masz rację lub jak się zachowujesz jeżeli racji nie masz.

Ribelo
Stały bywalec
Stały bywalec
Posty: 44
Rejestracja: 18 lut 2010, 20:28

Nieprzeczytany post autor: Ribelo »

hahaha

Zerżnąłem? Jestem programistą, wiec mnie nie rozśmieszaj. Jest to jedna z funkcji mojego robota.

Ale będe miły i Ci powiem. W momencie kiedy masz lot = 0.1, funkcja zwraca podany lot, ale w momencie kiedy dasz lot=0, wtedy lot jest obliczany w sposób

calculated.lot = AccountEquity() * ( 1 / ( money.per.min.lot ) );
calculated.lot = MathFloor ( calculated.lot ) / 100;
calculated.lot = NormalizeDouble ( calculated.lot, Decimal );

Czyli dla ludzi o małych rozumkach:

masz 1000$, chcesz mieć 0.01 na każde 100$ czyli wklepujesz
lot = 0;
money.per.mini.lot = 100

1000 * ( 1 / 100 ) = 10 minimalnych jednostek lota.

calculated.lot = MathFloor ( calculated.lot ) / 100; //mam miktoloty, więc dzielę przez 100, dziś zrobił bym zliczbę zależną od lot.step, ale kod ma juz trochę.

Otrzymyjemy więc 0.1 lota, czyli 10 mikrolotów.

calculated.lot = NormalizeDouble ( calculated.lot, Decimal ); //zaokrąglamy do lot.sep

MathFloor zaokrągla w dół, by nam zwiększał lota co zadeklarowaną liczbę kasy a nie po przekroczeniu 50

Jak ktoś coś zrobi nieszablonowo, to na pewno nie działa...

Później się dziwić, że wszyscy, co mają chęć pomóc i zaoferować coś od siebie spierdalają z tego forum na fora zagraniczne.

Awatar użytkownika
Mustafa
Pasjonat
Pasjonat
Posty: 777
Rejestracja: 20 lip 2010, 10:54

Nieprzeczytany post autor: Mustafa »

tęga głowa :mrgreen:

Dodano po 6 minutach:
Ribelo pisze:Właśnie w tym rzecz, że zerżnąłem to żywcem z innego wskaźnika. Tam działa, tu nie.
heh
Nie chodzi o to czy masz rację czy nie, tylko o to, co robisz kiedy masz rację lub jak się zachowujesz jeżeli racji nie masz.

ODPOWIEDZ