[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 641

 
Craft:

那该怎么办呢?我试过for(i=0;i<=PeriodS;i++) - 没有帮助。


正如你已经被告知的那样

   for(i=1;i<=PeriodB;i++)
{
   c1b[i]=iCCI(NULL,0,PeriodB,PRICE_TYPICAL,i);
}
   double c1b_1=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,i);
   double c1b_2=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,i+2);
   double c1b_3=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,i+3);

iMAOnArray是在循环外执行的(应该如此)。相应地,i+2 = PeriodB + 2。对于ArrayResize(c1b,PeriodB)。

而事实上......。把你的 "i+"换成0、2、3。

 
SergNF:


正如已经写给你的那样

iMAOnArray是在循环外执行的(应该如此)。相应地,i+2 = PeriodB + 2。对于ArrayResize(c1b,PeriodB)。

而事实上......。把你的 "i+"换成0,2,3。


谢谢你,我按你说的做了一切,但现在为什么没有下订单?

我既试过有规范化也试过没有规范化。

   double c1b[];
   for(i=1;i<=PeriodB;i++)
   {
   c1b[i]=iCCI(NULL,0,PeriodB,PRICE_TYPICAL,i);
   }
   double c1b_1=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,1);
   double c1b_2=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,2);
   double c1b_3=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,3);
   
   double c1s[];
   for(i=1;i<=PeriodS;i++)
   {
   c1s[i]=iCCI(NULL,0,PeriodS,PRICE_TYPICAL,i);
   }
   double c1s_1=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,1);
   double c1s_2=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,2);
   double c1s_3=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,3);

 //if (NormalizeDouble(c1s_1,4)>NormalizeDouble(c1s_2,4)&&NormalizeDouble(c1s_2,4)<NormalizeDouble(c1s_3,4))
 if (c1s_1>c1s_2&&c1s_2<c1s_3)
     {                                          // 
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
//if (NormalizeDouble(c1b_1,4)<NormalizeDouble(c1b_2,4)&&NormalizeDouble(c1b_2,4)>NormalizeDouble(c1b_3,4))
if (c1b_1<c1b_2&&c1b_2>c1b_3)
     {                                          // 
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }
 
gordeef:

对不起,我没有马上回答,我的笔记本完全坏了。我希望我的牙齿不再疼痛,这是件可怕的事情。我承认,我是在责怪Babon,他工作得很好,但故障指标NMAZZ,我不记得在哪里下载的,但在一个图表上它仍然工作,但我把它放在三个图表上(5M,30M,4H),所有,电脑完全冻结,或者说终端。我开始逐一从图表中删除指标,发现了这个错误。我不知道这个指标出了什么问题,但在开始时它工作得很好。关于反转或修正,是的,你是对的,它总是一个反转,但如果在30M、1H和4H的接力棒改变颜色,如果不是反转,那么修正是肯定的,我们可能会赚一些利润。
是的...牙齿酸痛有奇效无论你带着它去哪里...:)如果你喜欢一个指标并想用它来工作--要么是iCustom,要么是进入Expert Advisor的代码,我想。但是关于趋势TP--要小心,你可能会在移动的末端,也就是在反转之前买入它。然后,麋鹿就会悬在空中(就像我昨天的一颗坏牙......:))。我目前正在研究趋势衰竭的定义,我希望能分享我的成果。
 
Craft:


谢谢,按你说的做了一切,但现在为什么没有下订单?

既试过正常化,也试过不正常化。


那么只有在两个if之后进行 "unpriming",看看错误是否在这个块中(包括Opn_B和Cls_S),一行就可以知道一切。

我不知道,也许你事后重新分配了它们(Opn_B和Cls_S),或者在打开时使用完全不同的变量。

 
artmedia70:
是的...一颗坏牙可以创造奇迹...无论你带着它去哪里...:)

你还没有尝试过治疗。他们说这很有效。
 
Vinin:

你尝试过治疗吗?他们说这有帮助。
哦,是啊!活到老,学到老...;)只有在晚上,我们在Zakolyuchinsk找不到任何牙科医生......我不得不使用民间的补救措施...
 

伙计们,我明白奇迹不会发生,但我不能赢...我已经在看桌子下面了,看霍特比奇是否坐在那里......。:)

我试图在指标窗口中显示一些EA数据,并决定在同一窗口中显示趋势。 我用我的函数计算趋势,该函数返回int-1、0和+1值。据此,下降趋势=1,平坦=0,上升趋势=1。我注意到,箭头如愿以偿地出现,但在不同的TF上却没有出现趋势的方向。因此,我注释了很长一段时间的箭头,并用趋势函数返回的值的输出来代替它们。在代码的两个地方,我放置了这个函数返回的状态的输出。它正确地返回了自己的状态;在图表的左上角,在调用这个函数后直接显示了函数值。下面,在指示器窗口中,也显示了函数值。从数字上看是正确的,但该函数的第四个值,根据定义只返回三个数字,从某处取...因此,在这第四个值时,指标窗口显示 "去你的 "信息......好吧,我已经因愤怒而自己写了...:)

帮助我了解问题出在哪里?我不想相信哈桑-奥布杜拉赫曼-本-霍塔布...:):)

   ObjectCreate("trM15",OBJ_LABEL,1,0,0,0,0);
   ObjectSet("trM15",OBJPROP_XDISTANCE,x*10);
   ObjectSet("trM15",OBJPROP_YDISTANCE,y*10);
   
   ObjectCreate("ArrowM15",OBJ_LABEL,1,0,0,0,0);
   ObjectSet("ArrowM15",OBJPROP_XDISTANCE,x*17);
   ObjectSet("ArrowM15",OBJPROP_YDISTANCE,y*10);
   
   if (trM15==1)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",Lime);
//         ObjectSetText("ArrowM15",CharToStr(241),10,"Wingdings",Lime);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",Lime);
      }
   if (trM15==-1)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",OrangeRed);
//         ObjectSetText("ArrowM15",CharToStr(242),10,"Wingdings",OrangeRed);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",OrangeRed);
      }
   if (trM15==0)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",OrangeRed);
//         ObjectSetText("ArrowM15",CharToStr(240),10,"Wingdings",OrangeRed);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",OrangeRed);
      }
   else
      {
         ObjectSetText("trM15","Хрен вам",9,"Tahoma",LightGray);
//         ObjectSetText("ArrowM15",CharToStr(240),10,"Wingdings",LightGray);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",LightGray);
      }

在这里,我已经尝试检查所有四个状态,而不仅仅是-1、1和else...

这就是它对我的产出--别的

trM15是一个变量,它被分配了一个由趋势函数返回的值

在图片中你可以看到,值被正确地返回,但 "有趣的题词 "被打印出来,这只是如果别的

我的头已经在缝隙中了......

 
artmedia70:

伙计们,我明白奇迹不会发生,但我不能赢...我已经在看桌子下面了,看霍特比奇是否坐在那里......。:)

我试图在指标窗口中显示一些EA数据,并决定在同一窗口中显示趋势。 我用我的函数计算趋势,该函数返回int-1、0和+1值。据此,下降趋势=1,平坦=0,上升趋势=1。我注意到,箭头如愿以偿地出现,但在不同的TF上却没有出现趋势的方向。因此,我注释了很长一段时间的箭头,并用趋势函数返回的值的输出来代替它们。在代码的两个地方,我把这个函数所返回的状态的输出放在了一起。它正确地返回了自己的状态;在图表的左上角,在调用这个函数后直接显示了函数值。下面,在指示器窗口中,也显示了函数值。从数字上看是正确的,但该函数的第四个值,根据定义只返回三个数字,从某处取...因此,在这第四个值时,指标窗口显示 "去你的 "信息......好吧,我已经因愤怒而自己写了...:)

帮助我了解问题出在哪里?我不想相信哈桑-奥布杜拉赫曼-本-霍塔布...:):)

在这里,我已经尝试检查所有四个状态,而不仅仅是-1、1和else...

这就是它对我的产出--别的

trM15是一个变量,它被分配了一个由趋势函数返回的值

在图片中,你可以看到值被正确地返回,而 "有趣的题词 "则显示,只有当 else

我的头已经在缝隙中了......



这就对了。

ObjectCreate("trM15",OBJ_LABEL,1,0,0,0,0);
   ObjectSet("trM15",OBJPROP_XDISTANCE,x*10);
   ObjectSet("trM15",OBJPROP_YDISTANCE,y*10);
   
   ObjectCreate("ArrowM15",OBJ_LABEL,1,0,0,0,0);
   ObjectSet("ArrowM15",OBJPROP_XDISTANCE,x*17);
   ObjectSet("ArrowM15",OBJPROP_YDISTANCE,y*10);
   
   if (trM15==1)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",Lime);
//         ObjectSetText("ArrowM15",CharToStr(241),10,"Wingdings",Lime);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",Lime);
      }
   else if (trM15==-1)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",OrangeRed);
//         ObjectSetText("ArrowM15",CharToStr(242),10,"Wingdings",OrangeRed);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",OrangeRed);
      }
   else if (trM15==0)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",OrangeRed);
//         ObjectSetText("ArrowM15",CharToStr(240),10,"Wingdings",OrangeRed);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",OrangeRed);
      }
   else
      {
         ObjectSetText("trM15","Хрен вам",9,"Tahoma",LightGray);
//         ObjectSetText("ArrowM15",CharToStr(240),10,"Wingdings",LightGray);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",LightGray);
      }

你可以试试这个变体

 
Vinin:


这就对了。

你可以试试这个

好的。谢谢你,维克多。到目前为止,它的工作是正确的。到目前为止,因为我已经很久没有关注它了,但以前从来没有过它向我输出趋势。就是现在。


我知道总有一个更强大的巫师-巫师为一个巫师-崇拜者服务......。:)

当然,这都是一个笑话,但...维克多,我不只是想复制正确的解决方案,而是想找出并了解 问题所在,这种难以理解的代码行为的原因是什么?

 
artmedia70:
是的...一颗坏牙可以创造奇迹...无论你带着它去哪里...:)如果你喜欢一个指标并想用它来工作--我想,要么是iCustom,要么是EA代码。但是关于趋势TP--要小心,你可能会在移动的末端,也就是在反转之前买入它。然后,麋鹿就会悬在空中(就像我昨天的一颗坏牙......:))。我目前正在研究趋势衰竭的定义,我希望能分享结果。

是的,我正努力对逆转和修正持谨慎态度,因为它是。但是关于趋势耗尽,我也很感兴趣,我在论坛上闲逛,也看了CodeBase,但没有遇到任何关于这个主题的指数。阅读你的结果会很有趣。我还有一个问题,他们给我发了一个控制我的损失和利润的EA,就像图片中的那样,它应该可以工作,但问题是,它有15点的利润,我看到价格可能会更高,如果我在一个或另一个交易中增加利润,可能会破坏EA的一般计算和操作?