20 errors in simple function
20 errors in simple function
10 Mar 2016, 19:53
While compiling a cbot, i've fall upon a group of errors i can't go over with myself. All of them are found in a simple function, calculating trailing stop loss:
public void LiczStopLoss() { foreach (var pozycja in Positions) { if (pozycja.Label == "NNet") { //var pozycja = Positions.Find("NNet"); private double SL; if (pozycja.TradeType == TradeType.Buy) { if (Symbol.Bid > pozycja.StopLoss) { if ((pozycja.Pips*Symbol.PipValue)>10) { SL = Symbol.Bid-0.5*(Symbol.Bid-pozycja.EntryPrice); if (SL > pozycja.StopLoss) ModifyPosition(pozycja, SL); } } } if (pozycja.TradeType == TradeType.Sell) { if (Symbol.Ask < pozycja.StopLoss) { if ((pozycja.Pips*Symbol.PipValue)>10) { SL = Symbol.Ask+0.5*(pozycja.EntryPrice-Symbol.Ask); if (SL < pozycja.StopLoss) ModifyPosition(pozycja, SL); } } } } } }
I've tried using switch command:
public void LiczStopLoss() { if (Trade.IsExecuting) { var pozycja = Positions.Find("NNet"); private double SL; switch (pozycja.TradeType) { case TradeType.Buy: if (Symbol.Bid > pozycja.StopLoss) { if ((pozycja.Pips*Symbol.PipValue)>10) { SL = Symbol.Bid-0.5*(Symbol.Bid-pozycja.EntryPrice); if (SL > pozycja.StopLoss) ModifyPosition(pozycja, SL); } } break; case TradeType.Sell: if (Symbol.Ask < pozycja.StopLoss) { if ((pozycja.Pips*Symbol.PipValue)>10) { SL = Symbol.Ask+0.5*(pozycja.EntryPrice-Symbol.Ask); if (SL < pozycja.StopLoss) ModifyPosition(pozycja, SL); } } break; } } }
With same results (one error less).
Could you help me, please, and tell what am i missing all the time?
Replies
mardahl
10 Mar 2016, 21:36
I've found my error - i had to change the type of all variables from double to var.
I still don't know why is it so - it shouldn't compile either (but it does).
public void LiczStopLoss() { foreach (var pozycja in Positions) { if (pozycja.Label == "NNet") { //var pozycja = Positions.Find("NNet"); var SL; var v = pozycja.Pips*Symbol.PipValue/10; if (pozycja.TradeType == TradeType.Buy) { if (Symbol.Bid > pozycja.StopLoss) { if ((pozycja.Pips*Symbol.PipValue)>10) { v = pozycja.Pips*Symbol.PipValue/10; v = sigmoid(v); if (v > 0.9) v = 0.9; SL = Symbol.Bid-sigmoid(v)*(Symbol.Bid-pozycja.EntryPrice); if (SL > pozycja.StopLoss) ModifyPosition(pozycja, SL); } } } if (pozycja.TradeType == TradeType.Sell) { if (Symbol.Ask < pozycja.StopLoss) { if ((pozycja.Pips*Symbol.PipValue)>10) { v = pozycja.Pips*Symbol.PipValue/10; v = sigmoid(v); if (v > 0.9) v = 0.9; SL = Symbol.Ask+v*(pozycja.EntryPrice-Symbol.Ask); if (SL < pozycja.StopLoss) ModifyPosition(pozycja, SL); } } } } } }
@mardahl
mardahl
10 Mar 2016, 21:39
RE: cBots examples
mindbreaker said:
Hej, tutaj sobie zerknij:
https://github.com/breakermind/cAlgoRobotsIndicators/blob/master/oooDBoo
a tutaj inne roboty
https://github.com/breakermind/cAlgoRobotsIndicators
Aczkolwiek czasu lepiej nie marnuj i "jepnij" pendingi co 100 Pips od 500 pips levels i czekaj :) ( maksymalnie 0.01 z 100$ najlepiej bez stop losów się gra jak stawiasz stop losa i dotego jeszcze małego to murowana strata) (z "ujem" nie wygrasz jak będziesz się ganiał po 50 pipsów a tak coś zarobisz)
lub
pozycja nad lub pod week open price level i czekaj do końca tygodnia (popatrz ile jest pipsów od startu do końca tygodnia)
Week open wskaźnik https://github.com/breakermind/cAlgoRobotsIndicators/blob/master/_WeekOpen500_100Pips_Indicator.cs
Wskaźniki do cAlgo, mt4, jforex (po lewej stronie link)
https://twitter.com/fxstarforex
Miłego marnowania czasu
Hej, dzięki za materiały. ;)
Znalazłem błąd.
Pomarnuję jeszcze czas bo docelowo ten bot ma "uczyć się" i zmieniać wartości tych SL - ale na pewno wezmę pod uwagę to co napisałeś.
@mardahl
mindbreaker
11 Mar 2016, 09:40
cBots examples
Hej,
raczej nic lepszego niż pozycje oczekujące co n pips od tygodniówki w górę lub w dół nie wymyślisz :) (chyba za słaba platforma "może na dobrym klastrze", nie wspominając o A.I. Artificial Intelligence) na parach gdzie w tygodniu jest kilka setek (DJI, GBPJPY, GBPAUD ... nawet po stracie jest szansa na odegranie się w tygodniu)
Aczkolwiek próbować zawsze można ;)
Pozdrawiam i powodzenia.
P.s co do wskazówek nie ma przymusu korzystać :)
@mindbreaker
solark
28 Mar 2016, 22:36
RE:
The accessibility modified "private" in
private double SL;
doesn't make sense in this context. It makes sense when defining methods/properties/fields ('top level' definitions like 'LiczStopLoss'), not in the case of local variables (as in this case).
mardahl said:
I've found my error - i had to change the type of all variables from double to var.
I still don't know why is it so - it shouldn't compile either (but it does).
@solark
mindbreaker
10 Mar 2016, 21:35
cBots examples
Hej, tutaj sobie zerknij:
https://github.com/breakermind/cAlgoRobotsIndicators/blob/master/oooDBoo
a tutaj inne roboty
https://github.com/breakermind/cAlgoRobotsIndicators
Aczkolwiek czasu lepiej nie marnuj i "jepnij" pendingi co 100 Pips od 500 pips levels i czekaj :) ( maksymalnie 0.01 z 100$ najlepiej bez stop losów się gra jak stawiasz stop losa i dotego jeszcze małego to murowana strata) (z "ujem" nie wygrasz jak będziesz się ganiał po 50 pipsów a tak coś zarobisz)
lub
pozycja nad lub pod week open price level i czekaj do końca tygodnia (popatrz ile jest pipsów od startu do końca tygodnia)
Week open wskaźnik https://github.com/breakermind/cAlgoRobotsIndicators/blob/master/_WeekOpen500_100Pips_Indicator.cs
Wskaźniki do cAlgo, mt4, jforex (po lewej stronie link)
https://twitter.com/fxstarforex
Miłego marnowania czasu
@mindbreaker