比特币通信协议 - 币圈消息

比特币通信协议篇11、二、TURN简介。在典型的情况下,TURN客户端连接到内网中,并且通过一个或者多个NAT到 详细

希望万能版主和编程高手解析一下这个指标

  [复制链接]
975 14
冷眼观局_笑而不 发表于 2018-1-11 16:39:54 | 只看该作者 |阅读模式 打印 上一主题 下一主题
我自学编程一段时间了   一些简单的指标   都能看懂  而且会编一些简单的工具。 但是菜鸟碰到老鸟写的指标就一头雾水了。希望高手给这个指标做一些注解。这个指标代码比较复杂。
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Fuchsia
#property indicator_color2 Fuchsia
#property indicator_color3 Fuchsia
#property indicator_color4 Fuchsia
#property indicator_color5 Fuchsia
#property indicator_color6 Fuchsia
#property indicator_color7 Fuchsia
#property indicator_color8 Fuchsia
extern int FindLen = 100;
extern int RSIPeriod = 14;
extern int ibars=1000;
extern bool AlertFlag = TRUE;
double G_ibuf_84[];
double G_ibuf_88[];
double G_ibuf_92[];
double G_ibuf_96[];
double G_ibuf_100[];
double G_ibuf_104[];
double G_ibuf_108[];
double G_ibuf_112[];
int Gia_116[];
int Gi_120 = 0;
int Gia_124[];
int Gi_128 = 0;
int Gia_132[];
int Gia_136[];
int Gi_140 = 0;
int Gia_144[];
int Gia_148[];
int Gi_152 = 0;
int ii = 0;
int iii = 0;
int init()
{
   IndicatorBuffers(8);
   SetIndexStyle(0, DRAW_LINE);
   SetIndexBuffer(0, G_ibuf_84);
   SetIndexStyle(1, DRAW_LINE);
   SetIndexBuffer(1, G_ibuf_88);
   SetIndexStyle(2, DRAW_LINE);
   SetIndexBuffer(2, G_ibuf_92);
   SetIndexStyle(3, DRAW_LINE);
   SetIndexBuffer(3, G_ibuf_96);
   SetIndexStyle(4, DRAW_LINE);
   SetIndexBuffer(4, G_ibuf_100);
   SetIndexStyle(5, DRAW_LINE);
   SetIndexBuffer(5, G_ibuf_104);
   SetIndexStyle(6, DRAW_ARROW);
   SetIndexBuffer(6, G_ibuf_108);
   SetIndexArrow(6, 218);
   SetIndexStyle(7, DRAW_ARROW);
   SetIndexBuffer(7, G_ibuf_112);
   SetIndexArrow(7, 217);
   SetIndexEmptyValue(0, 0.0);
   SetIndexEmptyValue(1, 0.0);
   SetIndexEmptyValue(2, 0.0);
   SetIndexEmptyValue(3, 0.0);
   SetIndexEmptyValue(4, 0.0);
   SetIndexEmptyValue(5, 0.0);
   SetIndexEmptyValue(6, 0.0);
   SetIndexEmptyValue(7, 0.0);
   return (0);
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
int start()
{
   int Li_4;
   int Li_8;
   int Li_12;
   double Ld_20;
   CalculateData();
   ArrayInitialize(G_ibuf_84, 0.0);
   ArrayInitialize(G_ibuf_88, 0.0);
   ArrayInitialize(G_ibuf_92, 0.0);
   ArrayInitialize(G_ibuf_96, 0.0);
   ArrayInitialize(G_ibuf_100, 0.0);
   ArrayInitialize(G_ibuf_104, 0.0);
   ArrayInitialize(G_ibuf_108, 0.0);
   ArrayInitialize(G_ibuf_112, 0.0);
   for (int index_0 = 0; index_0 = Li_8; Li_16--)
      {
         if (Li_12 == 1 && G_ibuf_84[Li_16] != 0.0) Li_12 = 2;
         if (Li_12 == 2 && G_ibuf_88[Li_16] != 0.0) Li_12 = 3;
         if (Li_12 == 3 && G_ibuf_92[Li_16] != 0.0) Li_12 = 4;
         if (Li_12 == 4 && G_ibuf_96[Li_16] != 0.0) Li_12 = 5;
         if (Li_12 == 5 && G_ibuf_100[Li_16] != 0.0) Li_12 = 6;
         if (Li_12 == 6 && G_ibuf_104[Li_16] != 0.0) Li_12 = -1;
      }
      Ld_20 = (High[Li_8] - High[Li_4]) / (Li_4 - Li_8);
      switch (Li_12)
       {
      case 1:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_84[Li_16] = High[Li_4] + (Li_4 - Li_16) * Ld_20;
         break;
      case 2:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_88[Li_16] = High[Li_4] + (Li_4 - Li_16) * Ld_20;
         break;
      case 3:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_92[Li_16] = High[Li_4] + (Li_4 - Li_16) * Ld_20;
         break;
      case 4:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_96[Li_16] = High[Li_4] + (Li_4 - Li_16) * Ld_20;
         break;
      case 5:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_100[Li_16] = High[Li_4] + (Li_4 - Li_16) * Ld_20;
         break;
      case 6:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_104[Li_16] = High[Li_4] + (Li_4 - Li_16) * Ld_20;
      }
      G_ibuf_108[Li_8] = High[Li_8];
      if (AlertFlag)
         {
            if(Li_16 == 0 && ii == FALSE)
            {
               Alert(Symbol() + " " + Period() + " RSI背离"  "!" );
               ii = TRUE;
               iii = FALSE;
            }
         }
   }
   for (index_0 = 0; index_0 = Li_8; Li_16--)
       {
         if (Li_12 == 1 && G_ibuf_84[Li_16] != 0.0) Li_12 = 2;
         if (Li_12 == 2 && G_ibuf_88[Li_16] != 0.0) Li_12 = 3;
         if (Li_12 == 3 && G_ibuf_92[Li_16] != 0.0) Li_12 = 4;
         if (Li_12 == 4 && G_ibuf_96[Li_16] != 0.0) Li_12 = 5;
         if (Li_12 == 5 && G_ibuf_100[Li_16] != 0.0) Li_12 = 6;
         if (Li_12 == 6 && G_ibuf_104[Li_16] != 0.0) Li_12 = -1;
      }
      Ld_20 = (Low[Li_8] - Low[Li_4]) / (Li_4 - Li_8);
      switch (Li_12)
      {
      case 1:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_84[Li_16] = Low[Li_4] + (Li_4 - Li_16) * Ld_20;
         break;
      case 2:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_88[Li_16] = Low[Li_4] + (Li_4 - Li_16) * Ld_20;
         break;
      case 3:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_92[Li_16] = Low[Li_4] + (Li_4 - Li_16) * Ld_20;
         break;
      case 4:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_96[Li_16] = Low[Li_4] + (Li_4 - Li_16) * Ld_20;
         break;
      case 5:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_100[Li_16] = Low[Li_4] + (Li_4 - Li_16) * Ld_20;
         break;
      case 6:
         for (Li_16 = Li_4; Li_16 >= Li_8; Li_16--)
         G_ibuf_104[Li_16] = Low[Li_4] + (Li_4 - Li_16) * Ld_20;
      }
      G_ibuf_112[Li_8] = Low[Li_8];
      if (AlertFlag)
         {
            if(Li_16== 0 && iii == FALSE)
            {
               Alert(Symbol() + " " + Period() + " RSI背离"  "!" );
               iii = TRUE;
               ii = FALSE;
            }
         }
   }
   return (0);
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
void CalculateData()
{
   int count_4;
   int Lia_20[10];
   int Lia_24[10];
   bool Li_28;
   double Ld_32;
   double Ld_40;
   double Ld_48;
//  int Li_16 = 2;
   bool Li_56 = FALSE;
   Gi_120 = 0;
   Gi_128 = 0;
   Gi_140 = 0;
   Gi_152 = 0;
   for (int Li_0 = ibars- 1; Li_0 >= -1; Li_0--)
    {
      Ld_40 = (iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_0) - 50.0) / 100.0;
      if (Ld_32 * Ld_40 = 2 * 2 + 1 || Li_0 == -1) Li_56 = TRUE;
         if (Li_56 == TRUE)
         {
            if (Ld_32 > 0.0)
            {
               for (int Li_8 = Li_0 + count_4 + 1; Li_8 > Li_0; Li_8--)
               {
                  for (int Li_12 = 0; Li_12 = Li_8 - 2; Li_12--)
                     if (Ld_48  Li_0; Li_8--)
                  {
                     for (Li_12 = 0; Li_12 = (iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_12) - 50.0) / 100.0)
                        Lia_20[Li_12 - Li_8 - 1] = 0;
                     for (Li_12 = Li_8 - 1; Li_12 >= Li_8 - 2; Li_12--)
                        if (Ld_48 >= (iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_12) - 50.0) / 100.0)
                        Lia_24[StrToInteger(DoubleToStr(MathAbs(Li_12 - Li_8 + 1), 0))] = 0;
                     for (Li_12 = 0; Li_12  High[Li_16] && (iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_20) - 50.0) / 100.0 = Li_20 + 1; Li_12--)
            {
               Ld_32 = (iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_16) - 50.0) / 100.0 + (Li_16 - Li_12) * Ld_24;
               if (Ld_32 + 0.018  (iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_16) - 50.0) / 100.0)
         {
            Ld_24 = ((iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_20) - 50.0) / 100.0 - (iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_16) - 50.0) / 100.0) / (Li_16 - Li_20);
            Ld_40 = 1;
            for (Li_12 = Li_16 - 1; Li_12 >= Li_20 + 1; Li_12--)
             {
               Ld_32 = (iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_16) - 50.0) / 100.0 + (Li_16 - Li_12) * Ld_24;
               if (Ld_32 - 0.018 > (iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_12) - 50.0) / 100.0) Ld_40 = 0;
            }
            if (Ld_40 == 1.0)
            {
               Gi_152++;
               ArrayResize(Gia_144, Gi_152);
               ArrayResize(Gia_148, Gi_152);
               Gia_144[Gi_152 - 1] = Li_16;
               Gia_148[Gi_152 - 1] = Li_20;
            }
         }
      }
   }
}
收藏
收藏0
转播
转播
分享
分享
分享
淘帖0

精彩评论14

跳转到指定楼层
沙发
 楼主| 冷眼观局_笑而不 发表于 2018-1-11 17:39:40 | 只看该作者
注解越详细越好。  这个框架我能看懂  但是里面处理 问题的哪些方法逻辑  不懂。  还有就是我对 ArrayResize(Gia_144, Gi_152);和 ArrayInitialize(G_ibuf_84, 0.0); 这两句话  不太懂   看了命令帮助文件了  也不懂 上面说的太专业。
板凳
熙羽 发表于 2018-1-11 19:15:47 | 只看该作者
苦力活!我想没多少人愿意,你还是自己一步一个脚印的来吧。
地板
 楼主| 冷眼观局_笑而不 发表于 2018-1-11 20:14:36 | 只看该作者


                 for (Li_12 = Li_8 + 1; Li_12 = (iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_12) - 50.0) / 100.0)
                        Lia_20[Li_12 - Li_8 - 1] = 0;
                     for (Li_12 = Li_8 - 1; Li_12 >= Li_8 - 2; Li_12--)
                        if (Ld_48 >= (iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_12) - 50.0) / 100.0)
                        Lia_24[StrToInteger(DoubleToStr(MathAbs(Li_12 - Li_8 + 1), 0))] = 0;
为什么这两个for语句后面 连个大括号都没有  而且还不能屏蔽?  有什么作用?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
5#
yangsluo 发表于 2018-1-11 20:47:47 | 只看该作者
一看就是**文件。。
6#
digit 发表于 2018-1-11 21:54:52 | 只看该作者

而且还是反编译的...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
7#
digit 发表于 2018-1-11 22:58:52 | 只看该作者

谁说 for 语句一定要大括号

8#
 楼主| 冷眼观局_笑而不 发表于 2018-1-12 00:17:50 | 只看该作者

那有什么作用?   10天学会mql4 上没讲呀。
9#
ayng 发表于 2018-1-12 00:49:30 | 只看该作者
闲来无事看看
10#
暘光bingosy 发表于 2018-1-12 01:18:46 | 只看该作者
支持楼主 顶

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by 顺水鱼MT4外汇EA网! X3.2© 2001-2017 顺水MT4外汇EA公司.( 陕ICP备17014341号-1