📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    请教我想用iCustom调用一个参数的值应该怎么做呢?

    avesd LV3
    2011-10-14 · 5743 阅读
    请教我想用iCustom调用XP Moving Average这个参数的值应该怎么做呢?
      以下是代码:

    • #property indicator_chart_window
    • #property indicator_buffers 4
    • #property indicator_color1 Yellow
    • #property indicator_color2 FireBrick
    • #property indicator_color3 Green
    • #property indicator_color4 Black

    • extern bool Alert_On = FALSE;
    • extern bool Arrows_On = FALSE;
    • extern bool Email_Alert = FALSE;
    • int gi_88 = 159;
    • int gi_92 = 159;
    • int g_color_96 = Lime;
    • int g_color_100 = Red;
    • int gi_unused_104 = 1;
    • int g_width_108 = 1;
    • string gs_112 = \"\";
    • string gs_120 = \"\";
    • double g_ibuf_128[];
    • double g_ibuf_132[];
    • double g_ibuf_136[];
    • double g_ibuf_140[];
    • double g_ibuf_144[];
    • double g_ibuf_148[];
    • double g_ibuf_152[];
    • int gi_156;
    • int g_bars_160 = 0;
    • int g_bars_164 = 0;
    • int g_bars_168 = 0;
    • int g_bars_172 = 0;
    • int gi_176 = 0;
    • int g_bars_180 = 0;
    • int g_bars_184 = 0;
    • int g_bars_188 = 0;
    • int g_bars_192 = 0;
    • int g_bars_196 = 0;
    • int g_bars_200 = 0;
    • int g_bars_204 = 0;
    • int g_bars_208 = 0;

    • int init() {
    •    DeleteStamp();
    •    gs_120 = GenVer();
    •    DeleteAllObjects();
    •    IndicatorBuffers(7);
    •    SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 1);
    •    SetIndexBuffer(2, g_ibuf_128);
    •    SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1);
    •    SetIndexBuffer(1, g_ibuf_132);
    •    SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 1);
    •    SetIndexBuffer(0, g_ibuf_136);
    •    SetIndexBuffer(3, g_ibuf_152);
    •    SetIndexBuffer(4, g_ibuf_140);
    •    SetIndexBuffer(5, g_ibuf_144);
    •    SetIndexBuffer(6, g_ibuf_148);
    •    SetIndexLabel(0, \"XP Moving Average\");
    •    SetIndexLabel(1, \"DownBuffer\");
    •    SetIndexLabel(2, \"UpBuffer\");
    •    SetIndexLabel(3, \"Signal\");
    •    switch (Period()) {
    •    case PERIOD_M1:
    •       gi_156 = 5;
    •       break;
    •    case PERIOD_M5:
    •       gi_156 = 7;
    •       break;
    •    case PERIOD_M15:
    •       gi_156 = 10;
    •       break;
    •    case PERIOD_M30:
    •       gi_156 = 15;
    •       break;
    •    case PERIOD_H1:
    •       gi_156 = 20;
    •       break;
    •    case PERIOD_H4:
    •       gi_156 = 30;
    •       break;
    •    case PERIOD_D1:
    •       gi_156 = 80;
    •       break;
    •    case PERIOD_W1:
    •       gi_156 = 150;
    •       break;
    •    case PERIOD_MN1:
    •       gi_156 = 250;
    •    }
    •    return (0);
    • }

    • int deinit() {
    •    DeleteStamp();
    •    DeleteAllObjects();
    •    return (0);
    • }

    • void start() {
    •    int li_0;
    •    double ld_20;
    •    StampVersion(gs_112, gs_120, 5, 20);
    •    int li_4 = 0;
    •    int li_8 = IndicatorCounted();
    •    if (li_8 >= 0) {
    •       if (li_8 > 0) li_8--;
    •       li_0 = Bars - li_8;
    •       switch (6) {
    •       case 0:
    •       case 1:
    •       case 2:
    •       case 3:
    •          for (li_4 = 0; li_4 < li_0; li_4++) g_ibuf_140[li_4] = iMA(NULL, 0, 55, 0, 6, PRICE_CLOSE, li_4);
    •          break;
    •       case 4:
    •          for (li_4 = 0; li_4 < li_0; li_4++) g_ibuf_144[li_4] = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, li_4);
    •          for (li_4 = 0; li_4 < li_0; li_4++) g_ibuf_148[li_4] = iMAOnArray(g_ibuf_144, 0, 55, 0, MODE_EMA, li_4);
    •          for (li_4 = 0; li_4 < li_0; li_4++) g_ibuf_140[li_4] = iMAOnArray(g_ibuf_148, 0, 55, 0, MODE_EMA, li_4);
    •          break;
    •       case 5:
    •          for (li_4 = 0; li_4 < li_0; li_4++) g_ibuf_144[li_4] = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, li_4);
    •          for (li_4 = 0; li_4 < li_0; li_4++) g_ibuf_140[li_4] = iMAOnArray(g_ibuf_144, 0, 55, 0, MODE_EMA, li_4);
    •          break;
    •       case 6:
    •          for (li_4 = 0; li_4 < li_0; li_4++) g_ibuf_140[li_4] = iCustom(NULL, 0, \"THV3 T3\", 55, 0.3, 0, li_4);
    •          break;
    •       case 7:
    •          for (li_4 = 0; li_4 < li_0; li_4++) g_ibuf_140[li_4] = iCustom(NULL, 0, \"JMA\", 55, 0, 0, li_4);
    •          break;
    •       case 8:
    •          for (li_4 = 0; li_4 < li_0; li_4++) g_ibuf_140[li_4] = iCustom(NULL, 0, \"HMA\", 55, 0, li_4);
    •          break;
    •       case 9:
    •          for (li_4 = 0; li_4 < li_0; li_4++) g_ibuf_140[li_4] = iCustom(NULL, 0, \"DECEMA_v1\", 55, 0, 0, li_4);
    •          break;
    •       case 10:
    •          for (li_4 = 0; li_4 < li_0; li_4++) g_ibuf_140[li_4] = iCustom(NULL, 0, \"SATL\", 0, li_4);
    •       }
    •       for (int l_index_16 = 0; l_index_16 < li_0; l_index_16++) {
    •          g_ibuf_128[l_index_16] = g_ibuf_140[l_index_16];
    •          g_ibuf_132[l_index_16] = g_ibuf_140[l_index_16];
    •          g_ibuf_136[l_index_16] = g_ibuf_140[l_index_16];
    •       }
    •       for (l_index_16 = 0; l_index_16 < li_0; l_index_16++) {
    •          ld_20 = 0;
    •          for (int li_28 = l_index_16 + 1; li_28  ld_20) g_ibuf_132[l_index_16] = EMPTY_VALUE;
    •             else {
    •                g_ibuf_128[l_index_16] = EMPTY_VALUE;
    •                g_ibuf_132[l_index_16] = EMPTY_VALUE;
    •             }
    •          }
    •       }
    •       for (l_index_16 = 0; l_index_16 < li_0; l_index_16++) {
    •          g_ibuf_152[l_index_16] = 0;
    •          if (g_ibuf_128[l_index_16 + 1] == EMPTY_VALUE && g_ibuf_128[l_index_16] != EMPTY_VALUE && g_ibuf_136[l_index_16 + 1] != g_ibuf_128[l_index_16]) {
    •             if (Arrows_On && l_index_16 != 0) DrawObject(1, l_index_16, g_ibuf_140[l_index_16] - gi_156 * Point);
    •             if (Arrows_On && l_index_16 == 0) DrawOnce(1, l_index_16, g_ibuf_140[l_index_16] - gi_156 * Point, 1);
    •             g_ibuf_152[l_index_16] = 1;
    •          }
    •          if (g_ibuf_132[l_index_16 + 1] == EMPTY_VALUE && g_ibuf_132[l_index_16] != EMPTY_VALUE && g_ibuf_136[l_index_16 + 1] != g_ibuf_132[l_index_16]) {
    •             if (Arrows_On && l_index_16 != 0) DrawObject(2, l_index_16, g_ibuf_140[l_index_16] + gi_156 * Point);
    •             if (Arrows_On && l_index_16 == 0) DrawOnce(2, l_index_16, g_ibuf_140[l_index_16] + gi_156 * Point, 2);
    •             g_ibuf_152[l_index_16] = -1;
    •          }
    •       }
    •       if (Alert_On) {
    •          if (g_ibuf_128[1] == EMPTY_VALUE && g_ibuf_128[0] != EMPTY_VALUE && g_ibuf_136[1] != g_ibuf_128[0]) AlertOnce(Symbol() + \":\" + PeriodToText() + \"Coral Signal Buy\", 1);
    •          if (g_ibuf_132[1] == EMPTY_VALUE && g_ibuf_132[0] != EMPTY_VALUE && g_ibuf_136[1] != g_ibuf_132[0]) AlertOnce(Symbol() + \":\" + PeriodToText() + \"Coral Signal Sell\", 2);
    •       }
    •       if (Email_Alert) {
    •          if (g_ibuf_128[1] == EMPTY_VALUE && g_ibuf_128[0] != EMPTY_VALUE && g_ibuf_136[1] != g_ibuf_128[0]) SendMailOnce(\"Coral Signal\", Symbol() + \":\" + PeriodToText() + \"Coral Signal Buy\", 1);
    •          if (g_ibuf_132[1] == EMPTY_VALUE && g_ibuf_132[0] != EMPTY_VALUE && g_ibuf_136[1] != g_ibuf_132[0]) SendMailOnce(\"Coral Signal\", Symbol() + \":\" + PeriodToText() + \" Coral Signal Sell\", 2);
    •       }
    •    }
    • }

    • int DrawOnce(int ai_0, int ai_4, double ad_8, int ai_16) {
    •    switch (ai_16) {
    •    case 1:
    •       if (g_bars_160 == 0 || g_bars_160 < Bars) {
    •          DrawObject(ai_0, ai_4, ad_8);
    •          g_bars_160 = Bars;
    •          return (1);
    •       }
    •    case 2:
    •       if (g_bars_164 == 0 || g_bars_164 < Bars) {
    •          DrawObject(ai_0, ai_4, ad_8);
    •          g_bars_164 = Bars;
    •          return (1);
    •       }
    •    case 3:
    •       if (g_bars_168 == 0 || g_bars_168 < Bars) {
    •          DrawObject(ai_0, ai_4, ad_8);
    •          g_bars_168 = Bars;
    •          return (1);
    •       }
    •    case 4:
    •       if (g_bars_172 == 0 || g_bars_172 < Bars) {
    •          DrawObject(ai_0, ai_4, ad_8);
    •          g_bars_172 = Bars;
    •          return (1);
    •       }
    •    }
    •    return (0);
    • }

    • void DrawObject(int ai_0, int ai_4, double a_price_8) {
    •    gi_176++;
    •    string l_name_16 = \"\";
    •    if (ai_0 == 1) {
    •       l_name_16 = \"Buy Option\" + DoubleToStr(gi_176, 0);
    •       ObjectCreate(l_name_16, OBJ_ARROW, 0, Time[ai_4], a_price_8);
    •       ObjectSet(l_name_16, OBJPROP_COLOR, g_color_96);
    •       ObjectSet(l_name_16, OBJPROP_ARROWCODE, gi_88);
    •       ObjectSet(l_name_16, OBJPROP_WIDTH, g_width_108);
    •    }
    •    if (ai_0 == 2) {
    •       l_name_16 = \"Sell Option\" + DoubleToStr(gi_176, 0);
    •       ObjectCreate(l_name_16, OBJ_ARROW, 0, Time[ai_4], a_price_8);
    •       ObjectSet(l_name_16, OBJPROP_COLOR, g_color_100);
    •       ObjectSet(l_name_16, OBJPROP_ARROWCODE, gi_92);
    •       ObjectSet(l_name_16, OBJPROP_WIDTH, g_width_108);
    •    }
    •    ObjectsRedraw();
    • }

    • void DeleteAllObjects() {
    •    string l_name_4;
    •    int l_objs_total_0 = ObjectsTotal();
    •    for (int li_12 = ObjectsTotal() - 1; li_12 >= 0; li_12--) {
    •       l_name_4 = ObjectName(li_12);
    •       if (StringFind(l_name_4, \"Option\", 0) > -1) ObjectDelete(l_name_4);
    •       ObjectsRedraw();
    •    }
    • }

    • int AlertOnce(string as_0, int ai_8) {
    •    switch (ai_8) {
    •    case 1:
    •       if (g_bars_180 == 0 || g_bars_180 < Bars) {
    •          Alert(as_0);
    •          g_bars_180 = Bars;
    •          return (1);
    •       }
    •       break;
    •    case 2:
    •       if (g_bars_184 == 0 || g_bars_184 < Bars) {
    •          Alert(as_0);
    •          g_bars_184 = Bars;
    •          return (1);
    •       }
    •       break;
    •    case 3:
    •       if (g_bars_188 == 0 || g_bars_188 < Bars) {
    •          Alert(as_0);
    •          g_bars_188 = Bars;
    •          return (1);
    •       }
    •       break;
    •    case 4:
    •       if (g_bars_192 == 0 || g_bars_192 < Bars) {
    •          Alert(as_0);
    •          g_bars_192 = Bars;
    •          return (1);
    •       }
    •       break;
    •    }
    •    return (0);
    • }

    • int SendMailOnce(string as_0, string as_8, int ai_16) {
    •    switch (ai_16) {
    •    case 1:
    •       if (g_bars_196 == 0 || g_bars_196 < Bars) {
    •          SendMail(as_0, as_8);
    •          g_bars_196 = Bars;
    •          return (1);
    •       }
    •       break;
    •    case 2:
    •       if (g_bars_200 == 0 || g_bars_200 < Bars) {
    •          SendMail(as_0, as_8);
    •          g_bars_200 = Bars;
    •          return (1);
    •       }
    •       break;
    •    case 3:
    •       if (g_bars_204 == 0 || g_bars_204 < Bars) {
    •          SendMail(as_0, as_8);
    •          g_bars_204 = Bars;
    •          return (1);
    •       }
    •       break;
    •    case 4:
    •       if (g_bars_208 == 0 || g_bars_208 < Bars) {
    •          SendMail(as_0, as_8);
    •          g_bars_208 = Bars;
    •          return (1);
    •       }
    •       break;
    •    }
    •    return (0);
    • }

    • void TakeScreenShot(int ai_0 = -1) {
    •    int li_4 = 1;
    •    if (!GlobalVariableCheck(\"ssc\")) {
    •       GlobalVariableSet(\"ssc\", 1);
    •       li_4 = 1;
    •    } else {
    •       li_4 = GlobalVariableGet(\"ssc\") + 1.0;
    •       GlobalVariableSet(\"ssc\", li_4);
    •    }
    •    if (ai_0 > 0 && li_4 > ai_0) return;
    •    string ls_8 = \"xpMA\" + \"xpMA_\" + Symbol() + \"_\" + DoubleToStr(li_4, 0) + \".jpg\";
    •    WindowScreenShot(ls_8, 320, 480);
    • }

    • string PeriodToText() {
    •    switch (Period()) {
    •    case PERIOD_M1:
    •       return (\"M1\");
    •    case PERIOD_M5:
    •       return (\"M5\");
    •    case PERIOD_M15:
    •       return (\"M15\");
    •    case PERIOD_M30:
    •       return (\"M30\");
    •    case PERIOD_H1:
    •       return (\"H1\");
    •    case PERIOD_H4:
    •       return (\"H4\");
    •    case PERIOD_D1:
    •       return (\"D1\");
    •    case PERIOD_W1:
    •       return (\"W1\");
    •    case PERIOD_MN1:
    •       return (\"MN1\");
    •    }
    •    return (\"\");
    • }

    • void StampVersion(string as_0, string as_8, int a_x_16, int a_y_20) {
    •    string l_name_36;
    •    string ls_24 = \"Stamp_\" + as_0;
    •    int l_objs_total_32 = ObjectsTotal();
    •    for (int li_44 = 0; li_44 < ObjectsTotal(); li_44++) {
    •       l_name_36 = ObjectName(li_44);
    •       if (StringFind(l_name_36, ls_24, 0) > -1) {
    •          ObjectSet(ls_24, OBJPROP_XDISTANCE, a_x_16);
    •          ObjectSet(ls_24, OBJPROP_YDISTANCE, a_y_20);
    •          ObjectsRedraw();
    •       } else {
    •          ObjectCreate(ls_24, OBJ_LABEL, 0, 0, 0);
    •          ObjectSetText(ls_24, as_0 + \"  \" + as_8, 6, \"arial\", DarkGreen);
    •          ObjectSet(ls_24, OBJPROP_XDISTANCE, a_x_16);
    •          ObjectSet(ls_24, OBJPROP_YDISTANCE, a_y_20);
    •          ObjectsRedraw();
    •       }
    •    }
    •    if (ObjectsTotal() == 0) {
    •       ObjectCreate(ls_24, OBJ_LABEL, 0, 0, 0);
    •       ObjectSetText(ls_24, as_0 + \"  \" + as_8, 6, \"arial\", DarkGreen);
    •       ObjectSet(ls_24, OBJPROP_XDISTANCE, a_x_16);
    •       ObjectSet(ls_24, OBJPROP_YDISTANCE, a_y_20);
    •       ObjectsRedraw();
    •    }
    • }

    • void DeleteStamp() {
    •    string l_name_4;
    •    int l_objs_total_0 = ObjectsTotal();
    •    for (int li_12 = ObjectsTotal() - 1; li_12 >= 0; li_12--) {
    •       l_name_4 = ObjectName(li_12);
    •       if (StringFind(l_name_4, \"Stamp\", 0) > -1) ObjectDelete(l_name_4);
    •       ObjectsRedraw();
    •    }
    • }

    • string GenVer() {
    •    string ls_0 = \"BS\";
    •    return (ls_0 + \"(\" + 10 + \")\");}

    复制代码
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 11 个

    晕了我呀 LV4

    发表于 2012-11-25 16:39:06 | 显示全部楼层

    支持你一下下。。  

    beyond LV4

    发表于 2012-11-25 16:39:06 | 显示全部楼层

    顶也~  

    阳光小虾 LV5

    发表于 2012-11-25 16:39:06 | 显示全部楼层

    必须顶  

    陈陈美妆 LV5

    发表于 2012-11-25 16:39:06 | 显示全部楼层

    加油站加油  

    小飞鱼常春 LV6

    发表于 2012-11-25 16:39:06 | 显示全部楼层

    都是那么过来的  

    操盘手 LV9

    发表于 2012-11-25 16:39:06 | 显示全部楼层

    加油啊!!!!顶哦!!!!!  

    叶子悄悄 LV3

    发表于 2014-11-15 13:32:12 | 显示全部楼层

    研究研究

    wbshh LV3

    发表于 2014-11-22 23:47:41 | 显示全部楼层

    赚钱,赚积分。顶....

    你那么耀眼 LV3

    发表于 2014-11-23 05:51:45 | 显示全部楼层

    路过。。看下先。
    12下一页
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服