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

 

为什么订单没有打开!?

请告诉我为什么这段代码不起作用。

我特别选择了2000年图表中的一个时期(当时各地的第五符号都是0),其中有一根蜡烛的开盘价出现在数组的数值中。

根据我的想法--在他们开盘时应该触发一个订单--但它并没有发生 ......P O M U ????


int start()



{

 double Price=iOpen (Symbol (),0,0);        
 double SL=NormalizeDouble (Price-3000*Point, Digits);         
 double TP=NormalizeDouble (Price+100*Point, Digits);
 
 double massiv [4]={0.85370,0.85690,    0.85970 ,0.86170};//объявление и инициализация массива


 double value =  Bid ;// параметру value функции ArrayBsearch присваивается значение текущей цены
 int S = ArrayBsearch(  massiv[4],  value, WHOLE_ARRAY,  0, MODE_ASCEND); //функция ищет самое близкое к текущей цене значение
 if (Bid == massiv[S])//если текущая цена равна значению возвращенному  функцией .
 if (Bid==Price  )// и данная цена есть цена открытия нового бара
 OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123 );//открыть ордер       
}
 
solnce600:

有100个值,第一个字符后有一个逗号(即价格)。

突出显示某一行

主页 - 查找和替换

将所有的逗号改为点号--成功。

现在我需要在这些值之间加上逗号

现在做以下工作:文件--保存为--选择CSV文件类型(分隔符--逗号)。保存。作为一个输出,我们有一个必要格式的文本文件...

 
solnce600:

为什么订单没有打开!?

请告诉我为什么这段代码不起作用。

我特别选择了2000年图表中的一个时期(当时各地的第五符号都是0),其中有一根蜡烛的开盘价出现在数组的数值中。

在我心目中--在他们的开场顺序应该是有效的--但它并没有发生 ......P O M U????



int S = ArrayBsearch(  massiv,  value, WHOLE_ARRAY,  0, MODE_ASCEND); //функция ищет самое близкое к текущей цене значение

Massiv[4]是指数组 massiv 第4个元素,我需要把一个数组传到函数中,以进行搜索...

 
alsu:

现在:文件-保存为-选择CSV文件类型(逗号分隔符)。保存。我们的输出是一个必要格式的文本文件...



我明白了,非常感谢你。 你能不能告诉我为什么我的功能不能工作(上面的帖子)。

非常感谢你。如果我学会了编程......,那将是由于你.....!

 
solnce600:

为什么订单没有打开!?

请告诉我为什么这段代码不起作用。

我特别选择了2000年图表中的一个时期(当时各地的第五符号都是0),其中有一根蜡烛的开盘价出现在数组的数值中。

在我心目中--在他们的开场顺序应该是有效的--但它并没有发生......P O M U ????


如果在比较双数时,我们可以写出以下内容,那就更好了

 if (Bid == massiv[S])

像这样。

 if (NormalizeDouble (Bid-massiv[S],Digits)==0)
 
alsu:

massiv[4]指的是数组massiv的第4个元素,你需要将数组本身传入函数来进行搜索...

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

为什么订单没有打开!?

请告诉我为什么这段代码不起作用。

我特别选择了2000年图表中的一个时期(当时各地的第五符号都是0),其中有一根蜡烛的开盘价出现在数组的数值中。

根据我的想法--在他们开盘时,订单应该是有效的--但它没有发生 ......P O M U ????

已经是时候转向 "长大 "的方法了!!!。- 用你的代码进行实验以获得结果。

提示:习惯于通过将变量的差异正常化来进行比较。

    double ld_Delta = 10. * Point;
    if (NormalizeDouble (MathAbs (Bid - Price), Digits) <= ld_Delta)// и данная цена есть цена открытия нового бара
    {OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123);}//открыть ордер       

对于我提到的实验,用ld_Delta "玩玩"。

 
solnce600:

我明白了,非常感谢你,请你告诉我为什么我的功能不能工作(上面的帖子)?

非常感谢。如果我学会了如何编程......,那将是对你的感谢.....。


如果你学会了,那将是因为你的勤奋和努力工作。我的作用是非常谦虚的,和自私的目标(帮助你,训练自己快速发现bug和错误的能力,这减少了自己花在编程上的时间,同时也让我的大脑得到调适。此外,如果一些有价值的想法溜走了怎么办?我会把它偷出来:)))
 
包括
alsu:

如果你学会了,这要归功于你的勤奋和努力工作。我的作用是非常谦虚的,目标是自我服务(帮助你,训练你自己快速发现bug和错误的能力,这减少了你自己花在编程上的时间,但同时也让我的大脑得到调适。此外,如果一些有价值的想法溜走了怎么办?我会把它偷出来:)))

自己找一个问题的答案可能需要很长时间(因为你不知道该往哪方面找)。

有什么其他提示吗?

我想在一个include文件中声明并初始化一个数组

呼叫了巫师。

选择 - Bibliotek的功能。

分配了一个名称。

删除了所有东西,声明并初始化了数组。

我把文件保存在 incluide 文件夹中,扩展名为 mq4,而不是 mqh。

我在代码中插入了一行调用该文件并指定了扩展名mqh。

但编译器给出了一个错误

'UYTR.mqh' - 无法打开程序文件 C:\Program Files\Alpari NZ MT4(2)\expertshhhh.mq4 (12, 2)

int start()



{

 double Price=iOpen (Symbol (),0,0);        
 double SL=NormalizeDouble (Price-3000*Point, Digits);         
 double TP=NormalizeDouble (Price+100*Point, Digits);
 
 #include <UYTR.mqh> 


 double value =  Bid ;// параметру value функции ArrayBsearch присваивается значение текущей цены
 int S = ArrayBsearch(  massiv,  value, WHOLE_ARRAY,  0, MODE_ASCEND); //функция ищет самое близкое к текущей цене значение
 if (Bid == massiv[S])//если текущая цена равна значению возвращенному  функцией .
 if (Bid==Price  )// и данная цена есть цена открытия нового бара
 OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123 );//открыть ордер       
}

也许,问题在于代码调用中的文件和 incluide 文件夹中的文件的扩展名不同。

请告诉我在这种情况下该怎么做。

谢谢你。

 
solnce600:
包括

自己找一个问题的答案可能需要很长时间(因为你不知道该往哪方面找)。

有什么其他提示吗?

我想在一个include文件中声明并初始化一个数组。

呼叫了巫师。

选择 - Bibliotek的功能。

分配了一个名称。

我清理了一切,声明并初始化了数组。

我把文件保存在 incluide 文件夹中,扩展名为 mq4,而不是 mqh。

我在代码中插入了一行调用该文件并指定了扩展名mqh。

但编译器一直在崩溃。

'UYTR.mqh' - 无法打开程序文件 C:\Program Files\Alpari NZ MT4(2)\expertshhhh.mq4 (12, 2)

可能是代码调用中的文件和 incluide 文件夹中的文件在扩展名上的差异。

请告知在这种情况下该怎么做。

谢谢你。


如果你使用向导,你可以直接创建一个include文件,它将以mqh为扩展名保存在include文件夹中。在这之后,你可以通过#include <>将其添加到任何程序中。


就是说
不选择 - 功能的书目。
一个MQH头文件