任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 1056

 
ara66676:

请帮助我,我找不到一个简单问题的答案。

intTimeSeconds(,,,,,)返回从指定时间的分钟开始所经过的秒数

如果我在函数中插入酒吧开放时间

TimeSeconds(iTime(NULL,PERIOD_M5,0))

我怎么能知道在酒吧关闭前还有10秒?

那么,用这段时间内的秒数减去已过去的时间...

PeriodSeconds(PERIOD_M5) - TimeSeconds(iTime(_Symbol, PERIOD_M5, 0));



 
AlexeyVik:

因为你必须把文件全部读完。其中有一个例子

谢谢!在这个例子中,这个"ArrayResize"把我的头搞乱了。:)

在文档中,我认为这些大括号 "array[]"是不必要的,因为你可以从这个词本身理解它是一个数组。:)

int  ArrayInitialize( 
   int     array,     // инициализируемый массив 
   int     value        // значение, которое будет установлено 
   );
 
AlexeyVik:

所以从一个时期的秒数中减去已过的时间...



非常感谢,我使用mql4已经五年了,不知道有这样的功能,再次感谢))。

唉,它没有帮助,在第五次检查时,这个检查不起作用......(()。

 
if(id==CHARTEVENT_MOUSE_MOVE)
                                       {
                                       // получ и преобраз координ мыши
                                       ChartXYToTimePrice(0,lparam,dparam,huin,timeVline,priceVline);
                                       // переместить нa них линию
                                       ObjectSet(stockname+"timeVline",OBJPROP_TIME1,timeVline);                                     
                                              
                                        } 
这块是这样的。在一个真实的图表上,指标从头开始运行,它的工作原理是这样的。
我看不出有什么问题,但如果我在测试器中运行该指标,线在鼠标之后没有移动。
我也不知道我叫Huin 的变量是做什么的?
 
ara66676:

非常感谢,我使用mql4已经五年了,不知道有这样的功能,再次感谢))。

唉,它没有帮助,在第五次检查时,这个检查不起作用......(()。

所以你应该指定...原则是一样的。

TimeCurrent() - (datetime) SeriesInfoInteger(_Symbol, PERIOD_M5, SERIES_LASTBAR_DATE);


你也可以使用CopyTime()...


不...不是这样的。

(datetime) SeriesInfoInteger(_Symbol, PERIOD_M5, SERIES_LASTBAR_DATE) + PeriodSeconds(PERIOD_M5) - TimeCurrent():
 

GURUS TELL ME!!!!为什么卖出订单不能打开????

//+------------------------------------------------------------------+

//| 项目名称 |

//| Copyright 2012, CompanyName |

//| http://www.companyname.net |

//+------------------------------------------------------------------+

# 属性严格

//+------------------------------------------------------------------+

//|专家初始化功能|

//+------------------------------------------------------------------+


输入双L=0.01。

输入 int TakeProfit = 150;

输入 int StopLoss = 150;

输入int Magic = 0。

//+------------------------------------------------------------------+

int b=0。

int s=0。

//+------------------------------------------------------------------+

int OnInit()

{

return(0);

}

//+------------------------------------------------------------------+

//|专家打勾功能|

//+------------------------------------------------------------------+

空白的OnTick()

{

//+------------------------------------------------------------------+

//| 打开一个买入订单||

//+------------------------------------------------------------------+

如果(b==0)

{

b=My_Fun_b()。

}

//+------------------------------------------------------------------+

//| 打开一个卖出订单|

//+------------------------------------------------------------------+

如果(s==0)

{

double priceb=My_Fun_p()。

Comment("The price of Buy order",priceb);

if(priceb==Bid) /*NOT EXECUTED WHY*/.

{

s=My_Fun_s(priceb);/*NOT EXECUTED, WHY//

}

}

}

//+------------------------------------------------------------------+

//|专家去初始化功能|

//+------------------------------------------------------------------+

空白的OnDeinit(const int reason)。

{


}

//+------------------------------------------------------------------+

//|自定义函数,用于打开第一个订单(买入)|

//+------------------------------------------------------------------+

int My_Fun_b()

{

b=OrderSend(_Symbol,0,0.01,Ask,0,0,",414,0,clrBlue)。

返回(b)。

}

//+------------------------------------------------------------------+

//|用户定义的函数,用于确定第一笔订单的价格(买入)|

//+------------------------------------------------------------------+

double My_Fun_p()

{

double pb=0。

如果(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true)

如果(OrderMagicNumber()==414)

{

pb=OrderOpenPrice()。

}

return(pb)。

}

//+------------------------------------------------------------------+

//|自定义函数打开第一笔订单(卖出)。

//+------------------------------------------------------------------+

int My_Fun_s(double priceb)

{

s=OrderSend(_Symbol,1,0.01,priceb,0,0,",0,0,clrRed)。

返回(b)。

}

//+------------------------------------------------------------------+


附加的文件:
test.mq4  2 kb
 
AlexeyVik:

嗯,你应该指明...原理是一样的


你也可以使用CopyTime()...


不...这有一点不同。

谢谢你,它成功了。正确的变体。

(TimeCurrent() - (datetime) SeriesInfoInteger (NULL , PERIOD_M5 ,SERIES_LASTBAR_DATE)) >290

再次感谢,现在我们可以删除堆积如山的代码,使用这一行了!!。))

 
ara66676:

谢谢你,它成功了,它成功了。正确的变体 :

(TimeCurrent() - (datetime) SeriesInfoInteger (NULL , PERIOD_M5 , SERIES_LASTBAR_DATE)) >290

再次感谢,现在我们可以删除堆积如山的代码,使用这一行了!!。))

显然,从酒吧开业到结束的时间,或者到酒吧结束的时间,并不重要。这个变体将准确给出从小节开始的经过时间,而不是到小节结束的时间。

那么290号是什么呢?为什么我们需要检查290个以上?

 
AlexeyVik:

很显然,从单杠开始的时间或到单杠结束的时间并不重要。这个选项将准确给出从小节开始的经过时间,而不是到小节结束的时间。

290号是什么?为什么我们需要检查290个以上?

在这种情况下,数字290表明自酒吧开张以来已经过去了290多秒。抱歉,标题卡住了 ))))
 

编译错误(2):Magic - 未声明的标识符

请帮助我纠正

bool CheckExists(int Type)
{
bool Result = True;
for(int i = 0; i < OrdersTotal(); i++)
if(OrderSelect(i, SELECT_BY_POS))
if(OrderType() == Type && OrderMagicNumber() == Magic && OrderSymbol() == Symbol()
如果(OrderOpenTime() >= Time[0])
Result = False;
for(i = 0; i < OrdersHistoryTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
if(OrderType() == Type &&& OrderOpenTime() >= Time[0]
&& OrderMagicNumber() == Magic &&。OrderSymbol() == Symbol()
Result = False;
}

return(Result);
}