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

 
solnce600:

我想我已经做了所有正确的事情 ....仍然无法打开(在测试器中)。

在日志中也没有错误信息 http://clip2net.com/s/5aLodh

我想不明白--怎么了?

我们需要使价格正常化。

double Price=NormalizeDouble(0.9022, Digits);
 
PapaYozh:

我们需要使价格正常化。

爸爸!非常感谢你.....,还有一个小问题....。

我想在以下情况下才开立一个订单

1.蜡烛N30的开盘价和蜡烛 N1的最高价之间的距离 超过150P。


2.蜡烛 N30开启时间 等于--任何 时间,任何 日期,但分钟的值必须等于15(0:15;1:15;....23:15)。

如果((High[1]-Open[30])>1500*Point) &&(??????????????????)

//开放订单

我想用Time [30] 函数来创建第二个条件 ,但这个函数不仅返回以分钟为单位的值,而且还返回以小时、天和年为单位的值。

为我需要的蜡烛。Minute( ) 函数也不适合我,因为它只返回零烛台的分钟值。

请告知如何最好地对这一点进行编码。



 
solnce600:

爸爸!非常感谢你.....,还有一个小问题....。

我想在以下情况下才开立一个订单

1.蜡烛N30的开盘价和蜡烛 N1的最高价之间的距离 超过150P。


2.蜡烛 N30的开盘时间 等于--任何 时间,任何 日期,但分钟的数值必须等于15(即 0:15;1:15;....23:15)。

如果((High[1]-Open[30])>1500*Point) &&(??????????????????)

//开放订单

我想用Time [30] 函数来创建第二个条件 ,但这个函数不仅返回以分钟为单位的值,而且还返回以小时、天和年为单位的值。

为我需要的蜡烛。Minute( ) 函数也不适合我,因为它只返回零蜡烛的分钟值。

请告知如何更好地进行编码。

https://docs.mql4.com/ru/dateandtime/TimeMinute

 
PapaYozh:

我们需要使价格正常化。

正常化了,还是打不开...

尽管其他代码在打开时没有规范化....

int start()
 {
 double Price=NormalizeDouble(0.9022, Digits); 
 if  ((iTime( NULL,0, 0) )== D'14.08.2000 14 00')
 if (Bid == Price)
if(NormalizeDouble (MathAbs (Bid - Price ), Digits) <= 0.0005)  
 int Ticket= OrderSend(Symbol(),OP_SELL,0.1,Bid,1,Ask+1490*Point,Ask-110*Point,"jfh",123 );
}
return(0);
 
 
solnce600:

正常化了,还是打不开...

虽然其他代码打开时没有规范化....

使用Print(),看看哪个条件失败。
 
大家下午好。请看一下这个指标。是否有可能让它正常工作。
当价格向下移动时,除了红线外,已经有一条蓝线(红线是加的,见附件)。然后改变了趋势,这里一切都正确--只有蓝色。

预先感谢


/* 反编译后删除/*


 
solnce600:

爸爸!非常感谢你.....,还有一个小问题....。

我想在以下情况下才开立一个订单

1.蜡烛N30的开盘价和蜡烛 N1的最高价之间的距离 超过150P。


2.蜡烛 N30的开启时间 等于--任何 时间,任何 日期,但分钟的值必须等于15(0:15;1:15;....23:15)。

如果((High[1]-Open[30])>1500*Point) &&(??????????????????)

//开放订单

我想用Time [30] 函数来创建第二个条件 ,但这个函数不仅返回以分钟为单位的值,而且还返回以小时、天和年为单位的值。

为我需要的蜡烛。函数Minute( ) 也不适合我,因为它只返回零蜡烛的分钟值。

请告诉我对这一点进行编码的最佳方法。

为了固定(包括在计算中)从(任何蜡烛)开始的时间,使用iBarShift(Symbol(), 1, 振荡点)是很方便的。震荡点是被跟踪的周期的条形图的开始。在你的情况下。

    if (iBarShift (Symbol(), 1, iOpen (Symbol(), PERIOD_M30, 0)) == 15) //что-то делаем

瞥了一眼你的一段代码,我可以看出你根本没有考虑过你在写什么。试着想一想(摘录)。

if((Minute( ) ==45)&&(Minute( ) <50))

...

 
TarasBY:


在瞥见你的一段代码后,我可以说,你根本就没有考虑过你在写什么。试着想一想(片段)。

...


谢谢你的回答,对不起,我把你的代码发给你,但没有注释。

你认为没有意义的事情却有意义,而且很有效

如果(Bid==Price) //如果时间等于 蜡烛的开启时间。形成一个新的蜡烛图

if((Minute( ) ==45)&&(Minute( ) <50))// 如果新蜡烛开盘时的分钟值 45和50之间(问题是,有些蜡烛在45分钟开盘,而不是正好在45分钟。所以我用 &&(Minute( )<50)来避免错过 45 分钟开盘 但实际上在1,2,3,4分钟后开盘的 烛台 )

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+150*Point, "jfh",123 );

}

返回。

因此,订单在每个15分钟或5分钟或1分钟的蜡烛图开始时打开,技术上是 在45分钟打开(+不超过4分钟,即有延迟)。
 
solnce600:

我是想让你明白一个小 问题。非常重要的 一点是:"你想开的药 "和 "你开的药 "是完全不同的两件事如果在这个条件下。

if((Minute( ) ==45)&&(Minute( ) <50))

Minute() == 46,那么GENERAL条件就不工作了!!。这样吧。

if ((Minute() >= 45) && (Minute() < 50))

???:-[