[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 282

 
Zhunko:

你必须从虱子中形成。周期转换器从分钟开始做最小值。


科瓦列夫的是正确的。我把你没有的东西用红色标注出来了。

明白了,非常感谢你。
 
MauzerVII:

伙计们,帮帮我吧。

我不明白为什么这行

结果:2013.04.12 17 13 Print_v4 EURUSD,M15: SL == 1.3068

给出了四个小数位?

我知道DoubleToStr



如果你意识到了这一点,那还有什么问题,我不明白。

 

关于kodobase中tick collector代码 的问题。某种奇怪的检查,用于检查在代码中没有进一步变化的布尔变量的标题中分配的条件。我不明白它是如何运作的。

//в шапке
           bool tick.time.local        =               false;
           bool tick.chart.update      =                true;
//в init()
   if(tick.chart.update == true)
     {
     if(MT4InternalMsg == 0)  
            {
            MT4InternalMsg = RegisterWindowMessageA("MetaTrader4_Internal_Message"); 
            }   
     }  
//в start()
     if(tick.time.local == true)//где менялось, я вообще не понял
       {
       time = TimeLocal();
       }
       else{
       time = TimeCurrent();
       }
//--------------------------------
       if(tick.chart.update == true)
         {
                   hwnd = WindowHandle(sn, 1);
         if(PostMessageA(hwnd, WM_COMMAND, 0x822c, 0) == false)
           {
           hwnd = 0;
           return;
           }
           PostMessageA(hwnd, MT4InternalMsg, 2, 1);             
           }                 
         } 

指定的布尔变量的值在条件中的任何地方都不会改变(以及进一步在代码中)。此外,start()根本没有检查分配变量的反向值。但它是有效的。如何?

 

还是说这只是未经优化的代码?GetLastError()是在标题中声明的

#import "ntdll.dll"
 int RtlGetLastWin32Error();
 int RtlSetLastWin32Error (int dwErrCode);

而且这些NaiveAPI函数在代码的其他地方没有使用...

 

各位程序员,请告诉我如何解决一个 "简单 "的问题。

例如,我需要删除一个CSV文件的第二行。我在文档中找不到任何关于如何做的信息。

例子。

12:30;1;1.34818;12:32;3;3;100;1.34939;18:45\r\n

14:00;1;1.32219;14:26;6;6;100;0.0000;00:00\r\n

19:00;0;1.35828;19:12;12;6;600;1.37939;19:59\r\n

 
tuner:


我想,但我没有时间去考虑其他事情,对不起。

关于他们被改变的地方的问题。我的猜测是,它们是调试标志,程序员在编写指标 时使用了这些标志,并留在代码中用于调试,如果有人需要它们。

 

底线很简单。快挥杆与慢挥杆相交。然后价格滚回快速的,然后专家顾问应该打开一个订单。

目前,我已经写好了修复回撤的函数,如下所示。

//+-------------------------------------------------------------------------------------+
//| Получение значений МА на указанном баре                                             |
//+-------------------------------------------------------------------------------------+
double GetMA(int index, int maPeriod)
{
   return (iMA(NULL, i_TF, maPeriod, 0, MODE_EMA, MODE_CLOSE, index));
}
//+-------------------------------------------------------------------------------------+
//| Имеет ли место отскок?                                                              |
//+-------------------------------------------------------------------------------------+
void IsRebound(int crossDir[], bool& returnSign[])
{
   for (int i = 0; i < 4; i++)
   {
      if (crossDir[i] == CROSS_NO)
         continue;

      returnSign[i] = false;
      double ema = GetMA(1, g_maPeriod[i]);

      if (crossDir[i] == CROSS_UP)
      {
         if (ND(MathAbs(ema - Ask)) <= i_thresholdFromMa * pt) // ..зазор между ценой покупки и машки, <= i_thresholdFromMa..
         {
            returnSign[i] = true;
            Alert("CROSS_UP");
         }
      }
      if (crossDir[i] == CROSS_DN)
      {
         if (ND(MathAbs(ema - Bid)) <= i_thresholdFromMa * pt) // ..зазор между ценой покупки и машки, <= i_thresholdFromMa..
         {
            returnSign[i] = true;
            Alert("CROSS_DN");
         }
      }
   }
}

这是否正确?还是应该以不同的方式进行?

crossDir[] 数组存储有关交叉点存在的数值。 如果存在,它检查当前买入或卖出价格与掩码值之间的差距。 由于某些原因,该条件根本没有得到满足。

这是我需要的东西。

回溯

在任何腕带越过365之后,只要价格回滚到越过365的相应腕带,就买入。我怎样才能释放这个?

 

为你想要的东西画出某种逻辑图。为了你自己。

一年大约由250个日条组成。

 
难道没有人实施这个吗。我不认为这很复杂。我只是还没有太多的经验,我不太明白如何将这一点正式化 ...
 
hoz:
难道没有人做过吗。我不认为这是非常困难的。我只是还没有太多的经验,我不太明白如何将这一点正式化 ...

你可以用一个流程图来做。你可以做别的事情,但要以非常彻底和明确的方式。这样,我就不会因为想法与描述的不一致而踢你。

我不会这样做。