int start()
{
double Price=iOpen (Symbol (),0,0);
double SL=NormalizeDouble (Price-3000*Point, Digits);
double TP=NormalizeDouble (Price+100*Point, Digits);
#include <MASSIV.mqh> //объявление массива типа double (неповторяющиеся значения цены с пятью знаками после точки)double value = Bid ;//параметру value функции ArrayBsearch присваивается значение цены последнего тикаint S = ArrayBsearch( massiv, value, WHOLE_ARRAY, 0, MODE_ASCEND);//функция возвращает индекс значения цены макс. близкой к цене последнего тика if( (NormalizeDouble (Bid-massiv[S],Digits) <=0))//если разница между значением массива возвращенным на последнем тике и ценой последнего тика отрицательная или = 0.00000
{
OrderSend(Symbol(),OP_BUY,0.1,Ask,1,SL,TP,"jfh",123 );//ордер открыть
}
}
我用了多少次自动点,但第一次就不灵了。
这里是Init()
我把它放在程序的任何地方(在这种情况下,甚至放在实验的开始部分)。
该函数返回到日志。
逻辑在哪里?
VladislavVG向我建议:因为在init()函数阶段你不能保证加载金融工具的数据。
所以,没有Init() 的变量Point 的值应该返回相同的值。
如果函数专门返回一个对象名称,为什么会有废话呢?
我用了多少次自动点,但第一次就不成功了。
逻辑在哪里?
像这样试试吧。
甚至不是像这样,而是像这样。
因为Digits 是一个内部变量,就像Piont 一样。
这应该是可行的 :)
所以,没有Init() 的Point 变量的值应该返回相同的值。
这不是一个事实...点 是MQL处理器的一个内部变量,它需要一些时间和一些初始化动作来更新它。所有这些通常只发生在处理器调用start()之前,在init()阶段,处理器的内部变量的值可能没有被设置。
"哭诉 "这件事。
这里是日志。
18:25:09 IndikatorZZ GBPJPY,Daily: F_CYF INIT: DownL = 0 UpL = 0
变量不可能是int?
我曾有几次被自己这样抓到过
变量有没有可能是int?
我已经发现自己有几次这样做了
不,双倍。我想知道,int有什么问题?
先生们,请给我一个提示!
我正试图实现一个简单的想法,在程序的注释中描述了这个想法。
程序在测试器中打开的订单与代码中指定的价格不一致。
例如,订单以0.86084的价格开仓,而数组中最接近的数值是0.85375。
差额是正数,而代码规定,如果差额<0.00000,即为负数,则开立订单。
请告知我们错误的位置。
谢谢你。