#property copyright "Copyright © 2009, Michael E Wilkinson DDS" #property link "mewddsltd@msn.com" #property show_inputs extern string Note1 = "+-Set to 0.0 when using mouse-+"; extern double StartPrice = 0.0; extern string Note2 = "+----Create Initial Order----+"; extern bool EnterLongNow = FALSE; extern bool EnterShortNow = FALSE; extern string Note3 = "+-------Stack Orders-------+"; extern bool StackLongNow = FALSE; extern bool StackShortNow = FALSE; extern bool AutoTakeProfit = TRUE; extern bool AutoStopLoss = TRUE; extern string Note4 = "+--------Stop Loss---------+"; extern int StopLoss = 49; extern string Note5 = "+------Lots per Order------+"; extern double Lots0 = 0.08; extern double Lots1 = 0.12; extern double Lots2 = 0.18; extern double Lots3 = 0.3; extern double Lots4 = 0.3; extern double Lots5 = 0.36; extern double Lots6 = 0.36; extern string Note6 = "+-------Stack Orders-------+"; int gi_216 = 1; extern int DuplicateOrders = 1; extern int Orders1 = 1; extern int Step1 = 10; extern int Orders2 = 1; extern int Step2 = 5; extern int Orders3 = 1; extern int Step3 = 5; extern int Orders4 = 0; extern int Step4 = 5; extern int Orders5 = 0; extern int Step5 = 5; extern int Orders6 = 0; extern int Step6 = 5; extern int FinalStep = 5; extern int slippage = 2; extern int ExpirationDays = 2; extern int MagicNumber = 194900; int gi_288 = 0; int gi_292 = 1; double gd_296 = 0.0; double gd_304 = 0.0; double gd_312 = 0.0; int AuthorizedDate() { bool li_ret_0; string ls_4 = "2009.12.31"; int l_str2time_12 = StrToTime(ls_4); if (TimeCurrent() <= l_str2time_12) li_ret_0 = TRUE; else li_ret_0 = FALSE; return (li_ret_0); } int AuthorizedAccount(int ai_0) { bool li_ret_4 = FALSE; if (ai_0 == 6025474 || ai_0 == 6048211 || ai_0 == 6048211 || ai_0 == 5569156 || ai_0 == 2088182226 || ai_0 == 2088203736 || ai_0 == 6046489 || ai_0 == 2368036 || ai_0 == 5661503 || ai_0 == 11201 || ai_0 == 1139824 || ai_0 == 6054916 || ai_0 == 5672146 || ai_0 == 6054298 || ai_0 == 6056548 || ai_0 == 2413999 || ai_0 == 1612010 || ai_0 == 1612012 || ai_0 == 1612015 || ai_0 == 1613288 || ai_0 == 1613289 || ai_0 == 1613290 || ai_0 == 1613292 || ai_0 == 1613293 || ai_0 == 1614331 || ai_0 == 5635503 || ai_0 == 2088200531) li_ret_4 = TRUE; else li_ret_4 = FALSE; return (li_ret_4); } int AuthorizedKey(int ai_0) { bool li_ret_4 = FALSE; int li_8 = 1 * StrToInteger(StringSubstr(DoubleToStr(ai_0, 0), 0, 2)); int li_12 = 3 * StrToInteger(StringSubstr(DoubleToStr(ai_0, 0), 2, 2)); int li_16 = 5 * StrToInteger(StringSubstr(DoubleToStr(ai_0, 0), 4, 2)); int li_20 = StrToInteger(StringSubstr(DoubleToStr(ai_0, 0), 6, 2)) * 2; int li_24 = StrToInteger(StringSubstr(DoubleToStr(ai_0, 0), 8, 2)) << 2; int li_28 = 6 * StrToInteger(StringSubstr(DoubleToStr(ai_0, 0), 10, 2)); int li_32 = li_8 + li_12 + li_16 + li_20 + li_24 + li_28; if (li_32 == 57 || li_32 == 61 || li_32 == 67 || li_32 == 76 || li_32 == 200 || li_32 == 204 || li_32 == 206 || li_32 == 211 || li_32 == 213 || li_32 == 225 || li_32 == 254 || li_32 == 311 || li_32 == 349 || li_32 == 354 || li_32 == 378 || li_32 == 383 || li_32 == 417 || li_32 == 456 || li_32 == 495 || li_32 == 514 || li_32 == 518 || li_32 == 522 || li_32 == 546 || li_32 == 576 || li_32 == 602 || li_32 == 689) li_ret_4 = TRUE; else li_ret_4 = FALSE; return (li_ret_4); } int GenerateMagicNumber(int ai_0, string as_unused_4, int ai_12) { int li_16 = 0; if (StringSubstr(Symbol(), 0, 6) == "AUDCAD") li_16 = 11; else { if (StringSubstr(Symbol(), 0, 6) == "AUDCHF") li_16 = 12; else { if (StringSubstr(Symbol(), 0, 6) == "AUDJPY") li_16 = 13; else { if (StringSubstr(Symbol(), 0, 6) == "AUDDKK") li_16 = 14; else { if (StringSubstr(Symbol(), 0, 6) == "AUDNZD") li_16 = 15; else { if (StringSubstr(Symbol(), 0, 6) == "AUDPLN") li_16 = 16; else { if (StringSubstr(Symbol(), 0, 6) == "AUDSGD") li_16 = 17; else { if (StringSubstr(Symbol(), 0, 6) == "AUDUSD") li_16 = 18; else { if (StringSubstr(Symbol(), 0, 6) == "CADCHF") li_16 = 19; else { if (StringSubstr(Symbol(), 0, 6) == "CADJPY") li_16 = 20; else { if (StringSubstr(Symbol(), 0, 6) == "CHFCAD") li_16 = 21; else { if (StringSubstr(Symbol(), 0, 6) == "CHFJPY") li_16 = 22; else { if (StringSubstr(Symbol(), 0, 6) == "CHFSGD") li_16 = 23; else { if (StringSubstr(Symbol(), 0, 6) == "EURAUD") li_16 = 24; else { if (StringSubstr(Symbol(), 0, 6) == "EURCAD") li_16 = 25; else { if (StringSubstr(Symbol(), 0, 6) == "EURCHF") li_16 = 26; else { if (StringSubstr(Symbol(), 0, 6) == "EURDKK") li_16 = 27; else { if (StringSubstr(Symbol(), 0, 6) == "EURGBP") li_16 = 28; else { if (StringSubstr(Symbol(), 0, 6) == "EURHKD") li_16 = 29; else { if (StringSubstr(Symbol(), 0, 6) == "EURHUF") li_16 = 30; else { if (StringSubstr(Symbol(), 0, 6) == "EURJPY") li_16 = 31; else { if (StringSubstr(Symbol(), 0, 6) == "EURLVL") li_16 = 32; else { if (StringSubstr(Symbol(), 0, 6) == "EURNOK") li_16 = 33; else { if (StringSubstr(Symbol(), 0, 6) == "EURNZD") li_16 = 34; else { if (StringSubstr(Symbol(), 0, 6) == "EURPLN") li_16 = 35; else { if (StringSubstr(Symbol(), 0, 6) == "EURSEK") li_16 = 36; else { if (StringSubstr(Symbol(), 0, 6) == "EURSGD") li_16 = 37; else { if (StringSubstr(Symbol(), 0, 6) == "EURSKK") li_16 = 38; else { if (StringSubstr(Symbol(), 0, 6) == "EURUSD") li_16 = 39; else { if (StringSubstr(Symbol(), 0, 6) == "EURZAR") li_16 = 40; else { if (StringSubstr(Symbol(), 0, 6) == "GBPAUD") li_16 = 41; else { if (StringSubstr(Symbol(), 0, 6) == "GBPCAD") li_16 = 42; else { if (StringSubstr(Symbol(), 0, 6) == "GBPCHF") li_16 = 43; else { if (StringSubstr(Symbol(), 0, 6) == "GBPDKK") li_16 = 44; else { if (StringSubstr(Symbol(), 0, 6) == "GBPJPY") li_16 = 45; else { if (StringSubstr(Symbol(), 0, 6) == "GBPNOK") li_16 = 46; else { if (StringSubstr(Symbol(), 0, 6) == "GBPNZD") li_16 = 47; else { if (StringSubstr(Symbol(), 0, 6) == "GBPSEK") li_16 = 48; else { if (StringSubstr(Symbol(), 0, 6) == "GBPSGD") li_16 = 49; else { if (StringSubstr(Symbol(), 0, 6) == "GBPUSD") li_16 = 50; else { if (StringSubstr(Symbol(), 0, 6) == "GBPZAR") li_16 = 51; else { if (StringSubstr(Symbol(), 0, 6) == "NZDCAD") li_16 = 52; else { if (StringSubstr(Symbol(), 0, 6) == "NZDCHF") li_16 = 53; else { if (StringSubstr(Symbol(), 0, 6) == "NZDJPY") li_16 = 54; else { if (StringSubstr(Symbol(), 0, 6) == "NZDSGD") li_16 = 55; else { if (StringSubstr(Symbol(), 0, 6) == "NZDUSD") li_16 = 56; else { if (StringSubstr(Symbol(), 0, 6) == "SGDJPY") li_16 = 57; else { if (StringSubstr(Symbol(), 0, 6) == "USDCAD") li_16 = 58; else { if (StringSubstr(Symbol(), 0, 6) == "USDCHF") li_16 = 59; else { if (StringSubstr(Symbol(), 0, 6) == "USDCCK") li_16 = 60; else { if (StringSubstr(Symbol(), 0, 6) == "USDDKK") li_16 = 61; else { if (StringSubstr(Symbol(), 0, 6) == "USDHKD") li_16 = 62; else { if (StringSubstr(Symbol(), 0, 6) == "USDHRK") li_16 = 63; else { if (StringSubstr(Symbol(), 0, 6) == "USDHUF") li_16 = 64; else { if (StringSubstr(Symbol(), 0, 6) == "USDJPY") li_16 = 65; else { if (StringSubstr(Symbol(), 0, 6) == "USDLVL") li_16 = 66; else { if (StringSubstr(Symbol(), 0, 6) == "USDLTL") li_16 = 67; else { if (StringSubstr(Symbol(), 0, 6) == "USDMXN") li_16 = 68; else { if (StringSubstr(Symbol(), 0, 6) == "USDNOK") li_16 = 69; else { if (StringSubstr(Symbol(), 0, 6) == "USDPLN") li_16 = 70; else { if (StringSubstr(Symbol(), 0, 6) == "USDSEK") li_16 = 71; else { if (StringSubstr(Symbol(), 0, 6) == "USDSGD") li_16 = 72; else { if (StringSubstr(Symbol(), 0, 6) == "USDSKK") li_16 = 73; else { if (StringSubstr(Symbol(), 0, 6) == "USDZAR") li_16 = 74; else { if (StringSubstr(Symbol(), 0, 6) == "#AA") li_16 = 75; else { if (StringSubstr(Symbol(), 0, 6) == "#AXP") li_16 = 76; else { if (StringSubstr(Symbol(), 0, 6) == "#BA") li_16 = 77; else { if (StringSubstr(Symbol(), 0, 6) == "#C") li_16 = 78; else { if (StringSubstr(Symbol(), 0, 6) == "#DD") li_16 = 79; else { if (StringSubstr(Symbol(), 0, 6) == "#DIS") li_16 = 80; else { if (StringSubstr(Symbol(), 0, 6) == "#AIG") li_16 = 81; else { if (StringSubstr(Symbol(), 0, 6) == "#GE") li_16 = 82; else { if (StringSubstr(Symbol(), 0, 6) == "#GM") li_16 = 83; else { if (StringSubstr(Symbol(), 0, 6) == "#HD") li_16 = 84; else { if (StringSubstr(Symbol(), 0, 6) == "#HON") li_16 = 85; else { if (StringSubstr(Symbol(), 0, 6) == "#HPQ") li_16 = 86; else { if (StringSubstr(Symbol(), 0, 6) == "#IBM") li_16 = 87; else { if (StringSubstr(Symbol(), 0, 6) == "#VZ") li_16 = 88; else { if (StringSubstr(Symbol(), 0, 6) == "#INTC") li_16 = 89; else { if (StringSubstr(Symbol(), 0, 6) == "#JNJ") li_16 = 90; else { if (StringSubstr(Symbol(), 0, 6) == "#JPM") li_16 = 91; else { if (StringSubstr(Symbol(), 0, 6) == "#KO") li_16 = 92; else { if (StringSubstr(Symbol(), 0, 6) == "#MCD") li_16 = 93; else { if (StringSubstr(Symbol(), 0, 6) == "#MMM") li_16 = 94; else { if (StringSubstr(Symbol(), 0, 6) == "#MO") li_16 = 95; else { if (StringSubstr(Symbol(), 0, 6) == "#MRK") li_16 = 96; else { if (StringSubstr(Symbol(), 0, 6) == "#MSFT") li_16 = 97; else { if (StringSubstr(Symbol(), 0, 6) == "#PG") li_16 = 98; else { if (StringSubstr(Symbol(), 0, 6) == "#T") li_16 = 99; else { if (StringSubstr(Symbol(), 0, 6) == "#PFE") li_16 = 100; else { if (StringSubstr(Symbol(), 0, 6) == "#UTX") li_16 = 101; else { if (StringSubstr(Symbol(), 0, 6) == "#WMT") li_16 = 102; else { if (StringSubstr(Symbol(), 0, 6) == "#XOM") li_16 = 103; else { if (StringSubstr(Symbol(), 0, 6) == "Gold") li_16 = 104; else { if (StringSubstr(Symbol(), 0, 6) == "Silver") li_16 = 105; else { if (StringSubstr(Symbol(), 0, 6) == "#EP") li_16 = 106; else { if (StringSubstr(Symbol(), 0, 6) == "#ENQ") li_16 = 107; else { if (StringSubstr(Symbol(), 0, 6) == "#YM") li_16 = 108; else { if (StringSubstr(Symbol(), 0, 6) == "#CL") li_16 = 109; else { if (StringSubstr(Symbol(), 0, 6) == "#NG") li_16 = 110; else { if (StringSubstr(Symbol(), 0, 6) == "#W") li_16 = 111; else { if (StringSubstr(Symbol(), 0, 6) == "#C") li_16 = 112; else { if (StringSubstr(Symbol(), 0, 6) == "#S") li_16 = 113; else li_16 = 114; } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } if (li_16 < 10) ai_0 = 10 * ai_0; return (StrToInteger(StringConcatenate(ai_0, li_16, ai_12))); } int init() { MagicNumber = GenerateMagicNumber(MagicNumber, Symbol(), Period()); if (Digits == 3 || Digits == 5) gi_292 = 10; Step1 = gi_292 * Step1; Step2 = gi_292 * Step2; Step3 = gi_292 * Step3; Step4 = gi_292 * Step4; Step5 = gi_292 * Step5; Step6 = gi_292 * Step6; FinalStep = gi_292 * FinalStep; StopLoss = gi_292 * StopLoss; gi_288 = Orders1 * Step1 + Orders2 * Step2 + Orders3 * Step3 + Orders4 * Step4 + Orders5 * Step5 + Orders6 * Step6 + FinalStep; gd_312 = NormalizeDouble(WindowPriceOnDropped(), Digits); return (0); } int start() { int l_datetime_0; bool li_4; bool li_8; int li_20; int li_28; int li_32; int li_36; int li_40; int li_44; int li_48; if (AuthorizedDate() && AuthorizedAccount(AccountNumber()) && AuthorizedKey(AccountNumber())) { if (StartPrice == 0.0 && gd_312 == 0.0) { gd_296 = Ask; gd_304 = Bid; } else { if (StartPrice == 0.0 && gd_312 != 0.0) { gd_296 = gd_312; gd_304 = gd_312; } else { if (StartPrice != 0.0 && gd_312 == 0.0) { gd_296 = StartPrice; gd_304 = StartPrice; } else { if (StartPrice != 0.0 && gd_312 != 0.0) { Alert("Script can only use StartPrice or mouse position to set starting point!"); return; } } } } l_datetime_0 = 0; if (AutoStopLoss) li_4 = TRUE; else li_4 = FALSE; if (AutoTakeProfit) li_8 = TRUE; else li_8 = FALSE; for (int l_count_12 = 0; l_count_12 < DuplicateOrders; l_count_12++) { if (EnterLongNow) OrderSend(Symbol(), OP_BUY, Lots0, Ask, slippage, li_4 * (Ask - StopLoss * Point), li_8 * (gd_296 + gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Blue); if (EnterShortNow) OrderSend(Symbol(), OP_SELL, Lots0, Bid, slippage, li_4 * (Bid + StopLoss * Point), li_8 * (Bid - gi_288 * Point), "mew_scr_stacker", MagicNumber, 0, Red); } for (int li_16 = 1; li_16 <= gi_216; li_16++) { li_20 = (li_16 - 1) * gi_288; for (l_count_12 = 0; l_count_12 < DuplicateOrders; l_count_12++) { li_28 = li_20; li_32 = Step1 * Orders1; li_36 = li_32 + Step2 * Orders2; li_40 = li_36 + Step3 * Orders3; li_44 = li_40 + Step4 * Orders4; li_48 = li_44 + Step5 * Orders5; if (ExpirationDays == 0) l_datetime_0 = 0; else l_datetime_0 = TimeCurrent() + 86400 * ExpirationDays; if (StackLongNow) { for (int li_24 = Orders1; li_24 > 0; li_24--) { li_28 += Step1; OrderSend(Symbol(), OP_BUYSTOP, Lots1, gd_296 + li_28 * Point, slippage, li_4 * (gd_296 + li_28 * Point - StopLoss * Point), li_8 * (gd_296 + gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Blue); } for (li_24 = Orders2; li_24 > 0; li_24--) { li_32 += Step2; OrderSend(Symbol(), OP_BUYSTOP, Lots2, gd_296 + li_32 * Point, slippage, li_4 * (gd_296 + li_28 * Point - StopLoss * Point), li_8 * (gd_296 + gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Blue); } for (li_24 = Orders3; li_24 > 0; li_24--) { li_36 += Step3; OrderSend(Symbol(), OP_BUYSTOP, Lots3, gd_296 + li_36 * Point, slippage, li_4 * (gd_296 + li_28 * Point - StopLoss * Point), li_8 * (gd_296 + gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Blue); } for (li_24 = Orders4; li_24 > 0; li_24--) { li_40 += Step4; OrderSend(Symbol(), OP_BUYSTOP, Lots4, gd_296 + li_40 * Point, slippage, li_4 * (gd_296 + li_28 * Point - StopLoss * Point), li_8 * (gd_296 + gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Blue); } for (li_24 = Orders5; li_24 > 0; li_24--) { li_44 += Step5; OrderSend(Symbol(), OP_BUYSTOP, Lots5, gd_296 + li_44 * Point, slippage, li_4 * (gd_296 + li_28 * Point - StopLoss * Point), li_8 * (gd_296 + gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Blue); } for (li_24 = Orders6; li_24 > 0; li_24--) { li_48 += Step6; OrderSend(Symbol(), OP_BUYSTOP, Lots6, gd_296 + li_48 * Point, slippage, li_4 * (gd_296 + li_28 * Point - StopLoss * Point), li_8 * (gd_296 + gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Blue); } } if (StackShortNow) { for (li_24 = Orders1; li_24 > 0; li_24--) { li_28 += Step1; OrderSend(Symbol(), OP_SELLSTOP, Lots1, gd_304 - li_28 * Point, slippage, li_4 * (gd_304 - li_28 * Point + StopLoss * Point), li_8 * (gd_304 - gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Red); } for (li_24 = Orders2; li_24 > 0; li_24--) { li_32 += Step2; OrderSend(Symbol(), OP_SELLSTOP, Lots2, gd_304 - li_32 * Point, slippage, li_4 * (gd_304 - li_28 * Point + StopLoss * Point), li_8 * (gd_304 - gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Red); } for (li_24 = Orders3; li_24 > 0; li_24--) { li_36 += Step3; OrderSend(Symbol(), OP_SELLSTOP, Lots3, gd_304 - li_36 * Point, slippage, li_4 * (gd_304 - li_28 * Point + StopLoss * Point), li_8 * (gd_304 - gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Red); } for (li_24 = Orders4; li_24 > 0; li_24--) { li_40 += Step4; OrderSend(Symbol(), OP_SELLSTOP, Lots4, gd_304 - li_40 * Point, slippage, li_4 * (gd_304 - li_28 * Point + StopLoss * Point), li_8 * (gd_304 - gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Red); } for (li_24 = Orders5; li_24 > 0; li_24--) { li_44 += Step5; OrderSend(Symbol(), OP_SELLSTOP, Lots5, gd_304 - li_44 * Point, slippage, li_4 * (gd_304 - li_28 * Point + StopLoss * Point), li_8 * (gd_304 - gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Red); } for (li_24 = Orders6; li_24 > 0; li_24--) { li_48 += Step6; OrderSend(Symbol(), OP_SELLSTOP, Lots6, gd_304 - li_48 * Point, slippage, li_4 * (gd_304 - li_28 * Point + StopLoss * Point), li_8 * (gd_304 - gi_288 * Point), "mew_scr_stacker", MagicNumber, l_datetime_0, Red); } } } } return (0); } Alert("Use of this script is not authorized on this account!"); return (-1); }