- Ocak 25, 2014
- Yayınlayan: Forex Wiki Ekibi
- Kategori: Ücretsiz Forex EA
İsim: |
|
||
Yazar: | Cassio J. Pagnoncelli, andrew d. Novais'den (2010.03.08 10:03) | ||
İndirildi: | 4828 | ||
İndirmek: |
|
||
Hi folks,
I've been learning and making EAs from 2 aylar, bu benim ilk mantıklı ve "neredeyse hatasız" robot. Sadece şort (şimdiye kadar uzun pozisyon yok), when short positions are clearly good a long position version will be cloned and attached to the EA. It was made for 15-minute chart (M15) because there are no many sell stop positions executed to place it on higher periods (M30, H1+) and no lower periods because the spread becomes more significantly. Entry is made by sell stop pending orders placed whenever the Ask price and two moving averages are comprised by the low period envelope bands, this order stands for 1h15min. Exits when three different Parabolic SAR points are under the Ask price and there is a crossover of moving averages (signal moving average crosses fast moving average from down to up). S/L and T/P are configurable and optional. Obviously there are ways to turn this system a great winner using Martingale strategy but the main idea now is to improve only the sell signals. After this, we will attach risk management modules, better exit ways, vesaire. I hope you don't mind code is in Portuguese. Some explanations of input parameters are below:
other input parameters are explained in "giriş parametresi" box in the tester and it's part of risk management, not about order placing. I hope you enjoy and whenever someone leave good idea(S) they will be implemented and be made available here. |
|||
3 yorumlar Yeni bir yorum göndermek için, Lütfen giriş yapmak veya kayıt olmak
I'm very thankful for your comments, I'll be adjusting the EA as soon as I have free time and translate to english version.
Ayrıca, lot size module is not good, some reasons: I'm working hard on risk management modules, soon I'll send you a enhanced version of the robot. Have a nice week, 31.03.2010 09:35 kimble9t
WHRoeder wrote:
için ( i=0; Ben<OrdersTotal(); i++ ) eğer ( OrderSelect(0, SELECT_BY_POS, MODE_TRADES) && OrderCloseTime() == 0 && Op == OrderType() ) OrderClose(OrderTicket(), With MODE_TRADES you only get open orders so OrderCloseTime will always be zero (unnecessary test) When you close an order higher numbered orders are renumbered, so the above code will close every other open order, not all orders. Always count DOWN when closing and modifying lot sizes (partial close.) MargemLivre/100000 tam_lote >= 0.01 Preco + Pips*Point Hard coded numbers means the EA fails on a mini account (get values from MarketInfo) Pips*Point fails on 5 digit brokers Pips*pips2dbl won't: //++++ These are adjusted for 5 haneli komisyoncular. double pips2points, // kayma 3 pips 3=points 30=points pips2dbl; // Kaybı durdurmak 15 tırtıl 0.0015 0.00150 int Digits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips) int init() { eğer (Digits == 5 || Digits == 3) { // Adjust for five (5) haneli komisyoncular. pips2dbl = Point*10; pips2points = 10; Digits.pips = 1; } else { pips2dbl = Point; pips2points = 1; Digits.pips = 0; }
Dear sir No orders are executed in my platform, but only shows the pending orders, don't know the reason why . In which place the above correction to be replaced in the EA ? Teşekkürler 10.03.2010 17:52 robert76
için ( i=0; Ben<OrdersTotal(); i++ ) eğer ( OrderSelect(0, SELECT_BY_POS, MODE_TRADES) && OrderCloseTime() == 0 && Op == OrderType() ) OrderClose(OrderTicket(), With MODE_TRADES you only get open orders so OrderCloseTime will always be zero (unnecessary test) When you close an order higher numbered orders are renumbered, so the above code will close every other open order, not all orders. Always count DOWN when closing and modifying lot sizes (partial close.) MargemLivre/100000 tam_lote >= 0.01 Preco + Pips*Point Hard coded numbers means the EA fails on a mini account (get values from MarketInfo) Pips*Point fails on 5 digit brokers Pips*pips2dbl won't: //++++ These are adjusted for 5 haneli komisyoncular. double pips2points, // kayma 3 pips 3=points 30=points pips2dbl; // Kaybı durdurmak 15 tırtıl 0.0015 0.00150 int Digits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips) int init() { eğer (Digits == 5 || Digits == 3) { // Adjust for five (5) haneli komisyoncular. pips2dbl = Point*10; pips2points = 10; Digits.pips = 1; } else { pips2dbl = Point; pips2points = 1; Digits.pips = 0; }
|