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

 
artmedia70:
你是想得到所有未结头寸的总利润,还是想在每个头寸的利润达到20点时设置止损?
如果你认为一次只开一个仓位,那么你应该在其利润上设置一个止损。
 

你好。有一种套利策略,它是否完美?也就是说,在上面亏损是不真实的,还是价格不一定达到合适的水平?

谢谢你

 
当利润达到20个点时,对每个止损点进行处理
 

我又做错了 :(

为什么不比较呢?

if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(230),10,"Wingdings",SymbolSellColor);
      Print("Ошибка при вызове sig_nal201 1:",GetLastError());}
   else if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(228),10,"Wingdings",SymbolBuyColor);
      Print("Ошибка при вызове sig_nal201 2:",GetLastError());}
   else {ObjectSetText("sig_nal201",CharToStr(224),10,"Wingdings",SymbolBasisColor);
      Print("Ошибка при вызове sig_nal201 3:",GetLastError());}
我已经评论了,我比较了2个值-- 总是画出 最后一个......
 
profitinvesting:
在达到20个点的利润时,每个人都要设置自己的止损。

Igor Kim有一个功能,可以在给定点数的Breakeven水平上设置止损(也可以设置)。

函数MovingInWL()

 
Abzasc:

我又做错了 :(

为什么不比较呢?

我已经注释了不必要的,我比较了2个值--总是最后一个被画出来...

有趣的是...ObjectFind(); 返回找到此对象的图表子窗口的编号。

搜索一个具有指定名称的对象。该函数返回该对象所属的窗口的索引。如果失败,该函数将返回-1。调用GetLastError() 函数以获得更多的错误信息。图表子窗口(如果图表中存在指标子窗口)的编号从1开始。主图表子窗口始终存在,其索引为0。

那你拿什么来比较呢?

(NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))

我发现这种结构有点奇怪。为什么要将子窗口数(int)归一化,而且要转换成双数 ,并由StrToDouble()函数处理?

 
Abzasc:

为什么不比较呢?

也许是因为我得到的是对象的名称,而不是值?那么我怎样才能正确地得到这个值呢?迷惑,似乎。
 
artmedia70:

这很有趣...ObjectFind(); 返回图表子窗口编号

:) 我也在看帮助 :)

有文本对象,我需要比较它们(数字)。如何?

一个指标画出一个表格,另一个则要进行计算。

 
Abzasc:
也许是因为我得到的是对象的名称,而不是值?那么我怎样才能正确地得到这个值呢?困惑,似乎是这样。
你是在比较绘制对象的子窗口编号。如果在其中,函数ObjectFind();返回该窗口的编号,对于被比较的两个值,它将是相同的。因此,你是在比较窗口数字。而最有可能的是与自己的同窗...
 
Abzasc:

:) 我也在看帮助 :)

有文本对象,我需要比较它们(数字)。如何?

什么的数字?你能说得更具体些吗?