[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 453

 
VOLDEMAR:

你有什么想法吗?

也许我们应该制作足够的教科书?

也许做充分的教学?

也许把这些东西写在什么地方?

也许那时问题就会消失?

而且你也不必再回答100500个愚蠢的问题了!

如果有这样的问题,这不是学生的错,而是你的错!"。你没有在任何地方描述它!!。

帮助中没有写,没有写如何从int翻译成double。

但它说,如果你把双数类型赋给int,小数部分将被抹去。

一个正常人在逻辑上会得出这样的结论:如果int被赋值为double,只是一个带有给定数量的0的点将被添加......

所以它是这样的 ....

事实上,它是在研究书 中的! 它甚至被突出显示了!
 

大家好。我对编程相当陌生。我有一个非常简单的问题。

我需要一个EA在价格穿越MA时开启交易,不是在下一个蜡烛上,而是在同一时刻,不需要等待蜡烛的收盘,输出量并不重要。

预先谢谢你

 
VOLDEMAR:

你有什么想法吗?

也许我们应该制作足够的教科书?

也许做充分的教学?

也许把这些东西写在什么地方?

也许那时问题就会消失?

而且你也不必再回答100500个愚蠢的问题了!

如果有这样的问题,这不是学生的错,而是你的错!"。你没有在任何地方描述它!!。

帮助中没有写,没有写如何从int翻译成double。

但它说,如果你把双数类型赋给int,小数部分将被抹去。

一个正常人在逻辑上会得出这样的结论:如果int被赋值为double,只是一个带有给定数量的0的点将被添加......

所以它是这样的 ....

你现在在和谁说话?与公共版主Sergeev一起,与其他爱好者一起,专门为那些没有很好地阅读文档的人创建并填充了"论坛导航仪和常见问题的答案 " 主题?
在这种情况下,你的悲情似乎放错了地方。
 
Activict:

大家好。我对编程相当陌生。我有一个非常简单的问题。

我需要一个EA在价格穿越MA时开启交易,不是在下一个蜡烛上,而是在同一时刻,不需要等待蜡烛的收盘,输出量并不重要。

预先谢谢你

这不是一个问题,是一个声明。问题是什么?请提前告知。
 

谢谢你的及时报道,我正在工作,工作结束后,我的脑子里一片沸腾))我还没有学会如何编写简单的专家顾问,但现在我有一个想法,我需要一个代码片段,当价格穿越MA时开仓,并在穿越的那一刻开仓,但我只在下一个蜡烛上得到它。我想让他们给我看一段代码,我相信对于那些熟悉的人来说,可能只需要一行就可以了

 
Activict:

......我认为对于那些擅长的人来说,这是一个单线案件。

...或者对于那些知道有搜索的人来说,只需点击一下就可以了。
如何获得两个MAs的交叉点的信号?
 
Activict:

谢谢你的及时报道,我正在工作,工作结束后,我的脑子里一片沸腾))我还没有学会如何编写简单的专家顾问,但现在我有一个想法,我需要一个代码片段,当价格穿越MA时开仓,并在穿越的瞬间开仓,但我只在下一个蜡烛上得到它。我想让他们给我看一段代码,我相信对于那些熟悉的人来说,应该只需要1行就可以了

使用第0条的价格 - Close[0], ma[0], Ask, Bid - 从0开始编号的条。

最好阅读论坛:这个想法已经被测试过很多次了--你会得到很多错误的信号,那里没有鱼。但这是可以实践的。

 
ilunga:
正是

我稍微修改了一下脚本。

//+------------------------------------------------------------------------------------------+
//|                                                                     ArraySetAsSeries.mq4 |
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
//------------------------------------ НАЧАЛО START -------------------------------------- 1 -
int start()                                                              //функция start
  {                                                                      //начало start
   double Timestart=GetTickCount();                                      //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения скрипта
   double array1[][6];                                                   //объявляем массив-источник (массив, из к-о будут скопированы данные)
   double array2[][6];                                                   //объявляем массив-приемник (массив, куда будут скопированы данные), к-й на
                                                                         //момент объявления заполнен некоторыми данными
   int element_1=ArrayCopyRates(array1);                                 //копируем данные баров текущего графика в массив array1 
   int element_2=ArrayCopy(array2,array1,0,0,WHOLE_ARRAY);               //копируем данные всех баров в пользовательский массив
   bool element_3=ArrayGetAsSeries(array2);                              //проверка: является ли массив array1 массивом-таймсерией
   bool try_1=ArraySetAsSeries(array2,false);                            //устанавливаем НАПРАВЛЕНИЕ индексирования массива  
   bool element_4=ArrayGetAsSeries(array2);                              //проверка: является ли массив array2 массивом-таймсерией
   double element=array2[0][1];                                          //получаем значение цены открытия нулевого бара
//----------------------------------------------------------------------------------------- 2 -
   Comment("\nФункция ArrayCopyRates(array1) вернула: ",element_1,
           "\nФункция ArrayCopy(array2,array1,0,WHOLE_ARRAY) вернула: ",element_2,
           "\nФункция ArrayGetAsSeries(array2) вернула: ",element_3,
           "\nФункция ArraySetAsSeries(array2;false) вернула: ",try_1,
           "\nФункция ArrayGetAsSeries(array2) вернула: ",element_4,
           "\nЦена открытия нулевого бара (т.е. бара с ИНДЕКСОМ 0) равна: ",element,
           "\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",
           MathFloor((GetTickCount()-Timestart)/1000)," секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000,
           " миллисекунд");//печать сообщения на экран
//----------------------------------------------------------------------------------------- 3 -
   return(0);                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 4 -

结果如下。


一个问题自然而然地出现了:在这种情况下,我使用ArrayCopyRates(array1)函数将当前图表的条形数据复制到一个二维数组array1中。然后在下一行用函数ArrayCopy(array2,array1,0,0,WHOLE_ARRAY)我把array1的数据复制到array2中。然后,使用ArrayGetAsSeries函数,我检查了array2是否是一个数组-时间序列。结果发现(正如你从截图中看到的),这个数组是一个时间序列数组,尽管我之前没有用ArraySetAsSeries函数来 "处理 "它。

问题:为什么在第一种情况下(上一个问题)我需要使用ArraySetAsSeries函数(使我的数组被组织成一个时间序列数组),而在这种情况下我不需要这样的处理。

P.S. 抱歉我的坚持,我只是想完全了解它,这样就不会留下 "历史的空白"。感谢之前所有的回复。

 
VladislavVG:

弗拉基米尔,你将有权向你购买的终端的技术支持部门表达所有这些歇斯底里的想法。在你使用免费的时候,要感谢那些自己想通了的爱好者,以及像你这样的懒人,甚至不想花时间在网站上搜索材料,仍然回答了一百遍的东西。没有人欠你什么。他们正试图靠自己的力量去做。如果你想让他们打扰你,那就雇一个教官,把他的脑袋搞乱。他将给你一个假人和一个围嘴。

恕我直言,弗拉迪斯拉夫:如果你不想回答,就不要回答,如果你想回答,那就用实质内容回答。

你需要参加一个关于沟通的课程或心理学课程,因为答案是"每天读3次文件,读4-5小时然后才用手鼓跳。" 你已经说了很多... ...

"你已经从我这里看到了很多。谢谢你的帮助,无论如何....

 
VOLDEMAR:

恕我直言,弗拉迪斯拉夫:如果你不想回答,就不要回答,如果你想回答,那就直接说重点。

你需要参加一个更好的沟通课程或心理学课程,因为这些答案"每天读3次文件,4-5小时然后才用手鼓跳。" 你已经说了很多... ...

"你已经给了我很多。谢谢你的帮助,无论如何....

只是从你这边看来,好像整个论坛都有义务无条件地教育你。但这里没有人欠别人什么,也没有人有义务做什么。阅读文档总是一个好主意。更有理由保持它的方便和必要。