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

 
Roger:


显示函数本身。

如果是void ClosePartPosBySelect(double Part),则改成

空白的ClosePartPosBySelect()。

但是,你怎么能把一个参数传给这个函数呢?假设:
if (x==2 && y==4) Part=0.5;
else Part=2;

ClosePartPosBySelect(Part);

Kim的ClosePosBySelect()函数被改变,因此它需要一个双倍类型的 传递参数,也就是Part变量

 
keekkenen:

两种方式

1.在改变数值的函数中,添加一个安培号。

例如,void function( double& Part){}。

那么,当函数中的一个值被改变时,新的值将返回到调用的地方。

2.从函数的参数列表中删除该变量,因为该变量是全局定义的,它的值可以在代码的任何地方改变,而不需要把它作为一个参数传递...

第一种变体更好,因为可以有一个以上的全局声明的变量(在一个函数里面)...


我浏览了一下帖子,事实上答案已经给出了......

谢谢,我可以试试...
 
zelek:

亲爱的专业人士,你们好。

我真的想写一个EA,可以同时开出两个卖出和买入的订单。

然后在一定数量的点数(参数lim)之后,亏损的订单将被关闭。

而当价格跌破开仓以来的最高价时,盈利的订单将被关闭。

(一种虚拟的追踪止损)。

在痛苦中,我创造了这个,但它不起作用......不起作用

请提出一些建议

你认为你将如何决定它是回调还是反转?还是在每次回调时开两个仓位?这是个失败的例子...
 
artmedia70:
那么你如何向这个函数传递一个参数呢?


如果参数是全局声明的,你不需要传递它,直接分配所需的值。只有这样,它才不需要在函数中被重写。
 
这很有趣...

这是2009年全年的情况...只有动量读数被用于输入。
在TF H1上,我们寻找动量运动突破的时刻,而在TF M5上,我们找到进入市场的确切时刻。在开仓时,我们会检查上一次开仓的时间,以免在进场信号出现时开出全部存款...
Demarker在TF M5和M15的超买/超卖区的位置证实了进入市场的时间...
...顺便说一下,没有储物柜也是积极的。

...即使我疏忽地只用Demarker进行测试,仍然得到了有趣的结果。

在某个地方是这样的。

//---------------------------------------------------------
   MomML_0   =iMomentum(NULL,PERIOD_M5,14,PRICE_CLOSE,0);
   MomML_1   =iMomentum(NULL,PERIOD_M5,14,PRICE_CLOSE,1);
   MomML_2   =iMomentum(NULL,PERIOD_M5,14,PRICE_CLOSE,2);
   
   MomST_0  =iMomentum(NULL,PERIOD_H1,14,PRICE_CLOSE,0);
   MomST_1  =iMomentum(NULL,PERIOD_H1,14,PRICE_CLOSE,1);
   MomST_2  =iMomentum(NULL,PERIOD_H1,14,PRICE_CLOSE,2);
   
   DeM5     =iDeMarker(NULL,PERIOD_M5, 14,0);
   DeM15    =iDeMarker(NULL,PERIOD_M15,14,0);

//---------------------------------------------------------
//==============================================================================================
   // Поиск пересечений
//==============================================================================================  
//----------------------- Проверка условий для старшего ТФ --------------------    
// ---------- Покупка --------
   MomBuy56M15=false;
   if (
         MomST_0<100 && 
         MomST_1<100 && 
         MomST_2<100 &&
         MomST_0>MomST_1 &&
         MomST_1<MomST_2 &&
         DeM15<0.3
      )                                
         {   
            MomBuy56M15=true;
         }

// ---------- Продажа --------
   MomSell56M15=false;
   if (
         MomST_0>100 && 
         MomST_1>100 && 
         MomST_2>100 &&
         MomST_0<MomST_1 &&
         MomST_1>MomST_2 &&
         DeM15>0.7
      )                                
         {   
            MomSell56M15=true;
         }
//----------------------- Проверка условий для младшего ТФ ---------------------    
// ---------- Покупка --------
   MomBuy56M5=false;
   if (
         MomML_0<100 && 
         MomML_1<100 && 
         MomML_2<100 &&
         MomML_0>MomML_1 &&
         MomML_1<MomML_2 &&
         DeM5<0.3   
      )                                
         {   
            MomBuy56M5=true;
         }

// ---------- Продажа --------
   MomSell56M5=false;
   if (
         MomML_0>100 && 
         MomML_1>100 && 
         MomML_2>100 &&
         MomML_0<MomML_1 &&
         MomML_1>MomML_2 &&
         DeM5>0.7   // ... и тут ...
      )                                
         {   
            MomSell56M5=true;
         }      

//==============================================================================================
   // Вычисление основных торговых критериев
//====================================================================  
   if (
         MomBuy56M15==true &&
         MomBuy56M5 ==true
      )
      
      return(106);                       // Открытие Buy по стратегии 6 
 //====================================================================   
 
   if (
         MomSell56M15==true &&
         MomSell56M5 ==true
      )
      
      return(206);                       // Открытие Sell по стратегии 6 
 //====================================================================   

我想知道,如果结果相似,那么为什么要使用动量,因为动量很好(如他们所说),可以显示趋势耗尽的时刻(结束)?当势头突破时,价格不断上升,在每次新的势头突破时都会开仓...因此,我决定锁定的是早期的条目...
你怎么看这个问题?

 

你不能在测试器中使用零条,原因很简单,尽管它只是正在形成(测试器的刻度),但测试器有关于这个条的价格的完整信息,因为它(条)是一个既成事实,测试器从报价历史数据中展望未来,而不是用刻度生成的数据......向左移动一个条,考虑1,2,3的动量,而不是0,1,2和演示1,而不是0。

只使用当前的M5和乘以时期的旧价格也是有意义的。14 *PERIOD_H1/ Period() 和 14 * PERIOD_M15 / Period()

 
keekkenen:

你不能在测试器中使用零条,原因很简单,尽管它只是正在形成(测试器的刻度),但测试器有关于这个条的价格的完整信息,因为它(条)是一个既成事实,测试器从报价历史数据中展望未来,而不是用刻度生成的数据......向左移动一个条,考虑1,2,3的动量,而不是0,1,2和演示1,而不是0。

只使用当前的M5和乘以时期的旧价格也是有意义的。14 * PERIOD_H1 / Period() 和 14 * PERIOD_M15 / Period()

为什么如果我们在测试器中打印零条的每一个收盘价,那么在每一个刻度上的价格都是不同的?在更高的时间框架上也是如此,没有可视化也是如此。那么,视觉化在哪里呢?
 
好吧,如果结果(动态)与使用零杆获得的结果没有很大的不同,可能就没有偷看,但最好是防止错觉......
 

我已经绞尽脑汁了 :)- 问题就在这里。

EA在半自动模式下工作--它的输入是我的头寸输出,但我想不明白--如何让EA在我下达下一个指令之前只做一次交易,即我在图表上没有启动/开始按钮 :) 。我的init()部分很忙,而且我不能禁用我的EA--它的计算需要正确的拖网。

 
keekkenen:
好吧,如果结果(动态)与使用零条获得的结果没有很大的不同,可能就没有偷看,但最好是防止错觉......。
所有的幻想都可能是幻觉,但到2008年底,所有被触发的限制的大兄弟,忠实地增加depo,不能应付缩减,由使用不安全的信号打开的头寸形成,在这里,期待已久的科利亚叔叔的电话......:)

如何可能解决这样的问题?


也许有一些方法可以减少这种滑坡?你的想法是什么?

原因: