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

 
TarasBY:

像这样。

从当前时间到Time_Control的ZigZag极端值被收集在一个数组中。


void fGet_ExtremumsZZPrice (string fs_Symbol,           // инструмент
                            int fi_TF,                  // таймфрейм
                            datetime fdt_TimeControl,   // время, до которого ищем экстремумы
                            int fi_ExtDepth = 12,       // ExtDepth         
                            int fi_ExtDeviation = 5,    // ExtDeviation
                            int fi_ExtBackstep = 3)     // ExtBackstep
{
    double ld_Value, lda_Extremum[];
    int    li_size = iBarShift (fs_Symbol, fi_TF, fdt_TimeControl), li_IND = 0;
//---- 
    for (int li_Bar = 1; li_Bar < li_size; li_Bar++)
    {
        ld_Value = iCustom (fs_Symbol, fi_TF, "ZigZag", fi_ExtDepth, fi_ExtDeviation, fi_ExtBackstep, 0, li_Bar);
        if (ld_Value != 0.)
        {
            ArrayResize (lda_Extremum, li_IND + 1);
            lda_Extremum[li_IND] = ld_Value;
            li_IND++;
        }
    }
//---- 
}

你能告诉我如何计算所有的人字形,有多少个?

 

你好。

抱歉,提前说了语法问题 :/.我的问题是,如何重写报价历史(通过代码)?我想用MT4来分析另一个经纪商的数据。
 
berezhnuy:

你能告诉我如何计算所有的人字形,有多少个?




写在li_IND变量中,或者像这样
count=ArraySize(lda_Extremum);
 
berezhnuy:

你能告诉我如何计算所有的人字形,有多少个?

如果我们做以下工作。

int fGet_ExtremumsZZPrice (string fs_Symbol,           // инструмент
                           int fi_TF,                  // таймфрейм
                           datetime fdt_TimeControl,   // время, до которого ищем экстремумы
                           int fi_ExtDepth = 12,       // ExtDepth         
                           int fi_ExtDeviation = 5,    // ExtDeviation
                           int fi_ExtBackstep = 3)     // ExtBackstep
{
    double ld_Value, lda_Extremum[];
    int    li_size = iBarShift (fs_Symbol, fi_TF, fdt_TimeControl), li_IND = 0;
//---- 
    for (int li_Bar = 1; li_Bar < li_size; li_Bar++)
    {
        ld_Value = iCustom (fs_Symbol, fi_TF, "ZigZag", fi_ExtDepth, fi_ExtDeviation, fi_ExtBackstep, 0, li_Bar);
        if (ld_Value != 0.)
        {
            ArrayResize (lda_Extremum, li_IND + 1);
            lda_Extremum[li_IND] = ld_Value;
            li_IND++;
        }
    }
//----
    return (li_IND);
}
- 该函数将返回自fdt_TimeControl 以来发现的极值的数量。
 

谢谢你

 

你好。

是否可以在设置中输入一个固定权重为1:1的时间表?

如果有可能的话,请告诉我如何做。

我想事先感谢你。

 
请告诉我,我的烛台每隔几秒钟就会在图表上改变颜色,变成彩色的,然后又变成黑白的。这在以前从未发生过。有什么办法可以关闭它吗?
 

下午。

我写了代码,在a=true和b=true的条件下打开两个挂单(BuyStop和SellStop),一段时间后,EA关闭这两个订单,直到出现新的信号,但有时EA会在同一方向上打开两个挂单。为什么会发生这种情况,如何避免这种 "错误"?



如果(a=true && b=true)
{
int OrderCount = OrdersTotal();
if (OrderCount>)1) 返回(0);
ticket1=OrderSend(Symbol(), OP_BUYSTOP, getLot(), PriceOpen_Buy, slippage, PriceOpen_Sell,0,0,Green);
Sleep(1000);

ticket2=OrderSend(Symbol(), OP_SELLSTOP, getLot(), PriceOpen_Sell, slippage, PriceOpen_Buy,0,0,Green) 。

Sleep(1000*59*TimeFrame);

for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket());
if (OrderType()==OP_SELLSTOP ) OrderDelete(OrderTicket() );
如果(OrderType()==OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask,slipage);
如果(OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slipage);
}

return(0);

}


能否请你给我一个提示?

预先感谢你。

 
r772ra:



这些变量的值被储存在数组-raceboxes中。

我的意思是,你已经得到了它这样的.

条款和条件。

谢谢,我将尝试这种方式)
 
Shixan:

下午。

我写了代码,在a=true和b=true的条件下打开两个挂单(BuyStop和SellStop),一段时间后,EA关闭这两个订单,直到出现新的信号,但有时EA会在同一方向上打开两个挂单。为什么会发生这种情况,如何避免这种 "错误"?

请告知。

预先感谢你。

也许在这里。

if (OrderCount>0) return(0);

事实上,很多东西不是 "睡觉"--Sleep(1000*59*TimeFrame);--一个新的tick进来,你的代码开始,两个订单打开,然后暂停 "2小时"(有条件的),然后你试图关闭,如果突然有一个订单在2小时前的价格成为可销售的--原创的!!!。谁教你的?

你可以在一个全局变量 中固定开盘时间,并控制m³ TimeCurrent()与固定时间之间的差异。