Guest jaet1989 Posted November 23, 2009 Report Share Posted November 23, 2009 Many Kudos for the coder :) #property copyright #property link extern string t = "Fixed Lot OR if Lot_size=0 >> AutoLot with Risk_percent!"; extern double Lot_size = 0.0; extern int Risk_percent = 5; extern int Distance = 50; extern string t1 = "Indicator Params"; extern int K = 5; extern int D = 3; extern int S = 3; extern int Length = 10; int gia_124[7] = {5, 3, 3, 0, 0, 10, 0}; int gi_128; int g_count_132; int g_count_136; int g_count_140; int g_count_144; int gi_148; int gi_152; int gi_156 = 100; int g_magic_160 = 20092009; double g_lots_164; string g_symbol_172; int gi_76; int gi_84; int g_file_88; int gia_92[]; double gda_96[]; double gda_100[]; int init() { double ld_4; double ld_12; double ld_20; switch (MarketInfo(Symbol(), MODE_LOTSTEP)) { case 0.01: gi_152 = 2; break; case 0.1: gi_152 = 1; break; default: gi_152 = 0; } g_symbol_172 = Symbol(); if (Digits > 4 || Digits == 3) { Distance = 10 * Distance; gi_156 = 1000; } gia_124[0] = K; gia_124[1] = D; gia_124[2] = S; gia_124[5] = Length; gi_128 = MarketInfo(g_symbol_172, MODE_STOPLEVEL) + MarketInfo(g_symbol_172, MODE_SPREAD); if (Distance < gi_128) Distance = gi_128; g_file_88 = FileOpenHistory(Symbol() + Period() + ".hst", FILE_BIN|FILE_READ); gi_76 = (FileSize(g_file_88) - 148) / 44; ArrayResize(gia_92, gi_76); ArrayResize(gda_96, gi_76); ArrayResize(gda_100, gi_76); FileSeek(g_file_88, 148, SEEK_SET); for (int l_index_0 = 0; l_index_0 < gi_76; l_index_0++) { gia_92[l_index_0] = FileReadInteger(g_file_88, LONG_VALUE); ld_4 = FileReadDouble(g_file_88, DOUBLE_VALUE); gda_100[l_index_0] = FileReadDouble(g_file_88, DOUBLE_VALUE); gda_96[l_index_0] = FileReadDouble(g_file_88, DOUBLE_VALUE); ld_12 = FileReadDouble(g_file_88, DOUBLE_VALUE); ld_20 = FileReadDouble(g_file_88, DOUBLE_VALUE); if (FileIsEnding(g_file_88)) break; } return (0); } int start() { int l_error_0; if (Bars < K + Length + 3) return (0); if (Time[0] > gi_148) { Check(); if (signal(gia_124) != 0) { if (MM(gi_156) == 0.0) return (0); if (gia_124[6] == 1 && g_count_132 + g_count_136 == 0) OrderSend(g_symbol_172, OP_BUYLIMIT, g_lots_164, Bid - Distance * Point, 3, 0, 0, "Fisherman", g_magic_160, 0, Lime); if (gia_124[6] == -1 && g_count_144 + g_count_140 == 0) OrderSend(g_symbol_172, OP_SELLLIMIT, g_lots_164, Bid + Distance * Point, 3, 0, 0, "Fisherman", g_magic_160, 0, Pink); l_error_0 = GetLastError(); } if (l_error_0 == 0 && Check(gia_124[6]) >= 0) { gi_148 = Time[0]; gia_124[6] = 0; } else Sleep(10000); } return (0); } double MM(double ad_0 = 100.0) { if (Lot_size > 0.0) g_lots_164 = Lot_size; else g_lots_164 = NormalizeDouble(Risk_percent / 100.0 * AccountEquity() / (MarketInfo(g_symbol_172, MODE_TICKVALUE) * ad_0), gi_152); if (g_lots_164 < MarketInfo(g_symbol_172, MODE_MINLOT) || g_lots_164 > AccountFreeMargin() / MarketInfo(g_symbol_172, MODE_MARGINREQUIRED)) { if (AccountFreeMarginCheck(g_symbol_172, OP_BUY, MarketInfo(g_symbol_172, MODE_MINLOT)) > 0.0) g_lots_164 = MarketInfo(g_symbol_172, MODE_MINLOT); else { Alert("No money!"); g_lots_164 = 0; } } if (g_lots_164 > MarketInfo(g_symbol_172, MODE_MAXLOT)) g_lots_164 = MarketInfo(g_symbol_172, MODE_MAXLOT); return (g_lots_164); } int Check(int ai_0 = 0) { g_count_132 = 0; g_count_144 = 0; g_count_136 = 0; g_count_140 = 0; for (int l_ord_total_4 = OrdersTotal(); l_ord_total_4 >= 0; l_ord_total_4--) { if (OrderSelect(l_ord_total_4, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == g_symbol_172 && OrderMagicNumber() == g_magic_160) { if (OrderType() == OP_BUY) { g_count_132++; if (!(ai_0 == -1 && OrderStopLoss() == 0.0)) continue; OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Distance * Point, Bid + Distance * Point, 0, Gold); continue; } if (OrderType() == OP_SELL) { g_count_144++; if (!(ai_0 == 1 && OrderStopLoss() == 0.0)) continue; OrderModify(OrderTicket(), OrderOpenPrice(), Bid + Distance * Point, Bid - Distance * Point, 0, Gold); continue; } if (OrderType() == OP_BUYLIMIT || OrderType() == OP_BUYSTOP) { g_count_136++; if (ai_0 != -1) continue; OrderDelete(OrderTicket(), Black); continue; } if (OrderType() == OP_SELLLIMIT || OrderType() == OP_SELLSTOP) { g_count_140++; if (ai_0 != 1) continue; OrderDelete(OrderTicket(), Black); continue; } } } if (GetLastError() > 0) return (-1); } return (g_count_132 + g_count_144 + g_count_136 + g_count_140); } int signal(int &aia_0[]) { int li_16; int li_20; int li_4 = aia_0[0] + aia_0[1] + aia_0[2] + aia_0[3] + aia_0[4] + aia_0[5]; if (li_4 < 10) li_4 = 10; int l_timeframe_8 = Period(); if (l_timeframe_8 < PERIOD_D1 && l_timeframe_8 > 0) li_4 = NormalizeDouble(li_4 * MathLog(4320 / l_timeframe_8), 0); for (int li_12 = gi_84; li_12 < gi_76; li_12++) { if (gia_92[li_12] >= Time[0]) { gi_84 = li_12; break; } } li_16 = ArrayMaximum(gda_96, 2 * li_4, MathMax(gi_84 - li_4, 0)); li_20 = ArrayMinimum(gda_100, li_4 * 2, MathMax(gi_84 - li_4, 0)); if (gi_84 == li_16 && gi_84 < gi_76 - 3) { aia_0[6] = -1; return (-1); } if (gi_84 == li_20 && gi_84 < gi_76 - 3) { aia_0[6] = 1; return (1); } double l_istochastic_24 = iStochastic(NULL, 0, aia_0[0], aia_0[1], aia_0[2], aia_0[3], aia_0[4], MODE_MAIN, 0); return (0); } Quote Link to comment Share on other sites More sharing options...
sunyc1982 Posted December 7, 2009 Report Share Posted December 7, 2009 Re: Coder needed to make this EA refresh I also want to. can somebody do it please Quote Link to comment Share on other sites More sharing options...
San4x Posted December 7, 2009 Report Share Posted December 7, 2009 Re: Coder needed to make this EA refresh What's the problem and what do you mean by "refresh"...? Quote Thanks for the kudos...much appreciated! Link to comment Share on other sites More sharing options...
Guest jaet1989 Posted December 7, 2009 Report Share Posted December 7, 2009 Re: Coder needed to make this EA refresh The EA does trade, and as I can gauge, in accordance with the backtest on m1 timeframe, but only when I start MetaTrader. I want the EA to trade constantly. Hope this helps. Quote Link to comment Share on other sites More sharing options...
San4x Posted December 7, 2009 Report Share Posted December 7, 2009 Re: Coder needed to make this EA refresh The EA does trade, and as I can gauge, in accordance with the backtest on m1 timeframe, but only when I start MetaTrader. I want the EA to trade constantly. Hope this helps. Not really, sorry. Metatrader needs to run constantly for the EA to run. Quote Thanks for the kudos...much appreciated! Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.