[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 387

 
splxgf >>:

Michey25


когда я отвечал код был несколько другим;)

хотя есть некоторые вопросы, результат опен(0) сильно зависит от текущего тайфрейма. непонятно откуда берутся cn и какого они типа.

Сделать Alert(Open[0],cn1,Open[0]<cn1,a,(a-cn1)<0.0008) религия не позволяет?

До кучи вместо i=1 лучше юзать break, это сделает выход из цикла сразу, а не будет прогонять все команды до конца.

int i=0;
   double a, b;
   while ( i==0)
   {
     a=MarketInfo("USDCAD", MODE_ASK);
     b=MarketInfo("USDCAD", MODE_BID); 
     if((Open[0]< cn1)&&(( a- cn1)<0.0008))
      {
       OrderSend("USDCAD",OP_BUY,1, a,1, SL, cn2);
       i=1;
       }
     if((Open[0]> cn11)&&(( cn11- b)<0.0008))
      {
       OrderSend("USDCAD",OP_SELL,1, b,1, SL1, cn21);
       i=1;
      }  
   }

cn, sl, cn2...所有这些都是双倍的,都是输入参数,我在将EA附加到图表上时输入这些参数。警报与此有什么关系?

 
Rita >>:

В чем тут может быть причина, пож. подскажите ?

for(k = 0; k< iBars( Symbol_1,Period()); k++)

它在所有的条形图上运行一个循环,然后又有一个嵌入的循环,在第一次调用中,所有的条形图都被考虑在内,因为极限值又等于窗口中的条形图数量。我们通过条数的平方得到周期,对于这样一个简单的任务来说,这有点多余了。
 
Michey25 >>:

cn, sl, cn2... все типа double и являются входными параметрами, я их ввожу когда прикрепляю советник к графику. И причем здесь Alert?


你可以用警报来显示变量值和条件的结果,在每个条件之前添加一个if,然后看到结果。这是调试程序的常用方法,这样你就不必猜测和搜索。

 

谢谢你。所以在start()函数的开始,我必须做一些条件管理器,它定义了返回控制权给终端 的函数的调用,然后,当收到一个新的tick时,这个管理器将再次工作?嗯...我将不得不完全重新制定程序逻辑...


那么,测试失败是因为测试人员挂起了等待新的刻度线?它能实时工作吗?嗯...能够在历史上进行测试是很重要的。我将考虑一下。谢谢你。

 
Jahspear >>:

Спасибо. То есть надо сделать в начале функции start() некий диспетчер условий, которые определяют вызов соответствующих ситуации функций, каждая из которые возвращают управление терминалу и дальше по получению нового тика этот диспетчер снова отрабатывает? Мдаа... придется полностью переделывать логику программы...


То есть тест не проходит, потому что тестер зависает в ожидании нового тика? А в реалтайме работать будет? Гм... все-таки возможностьоттестировать на истории это важно. Буду думать. Спасибо.

它应该是实时工作的,专家顾问在一个单独的线程中运行,可以随意思考,而RefreshRates允许访问当前的报价。

 
ntmmm >>:

Добрый день!

Подскажите пожалуйчта, как написать простой индикатор, который бы выделял определенный бар (должно задаваться в опциях), например в 12.30 вертикальной линией и подписать дни недели на графике (скажем где-то над хаем каждого дня)?

Спасибо!

采取https://www.mql5.com/ru/articles/1382,并归档

 
splxgf >>:

В реалтайме работать должно, эксперт выполняется отдельным потоком и может думать сколько ему взблагорассудится, а RefreshRates позволяет получать доступ к актуальным котировкам.

谢谢你。我目前正在重新修改程序逻辑,使其没有循环。还有一个问题不是很清楚。

Sleep(100);


是以秒为单位的多长时间?

而且它可以在任何地方使用,而不仅仅是在循环中?

这样,当一个条件被满足时,你不会立即做出反应,而是等待一个设定的时间并再次检查,然后再执行。

而且它不会把测试者吊死吗?

 

ntmmm писал(а) >>

...你能告诉我如何写一个简单的指标,以突出某一个柱子(应该在选项中设置),例如在12.30用一条垂直线,并在图表上标明一周的日子(例如在每一天的亥时上方的某个地方)?

iTime指标集

 
Jahspear >>:

Это сколько по времени в секундах?

И может ли использоваться не только в циклах, а в любом месте?

Чтобы при выполнении условия не сразу реагировать, а подождать заданное время и снова проверить, а потом уже выполнять.

И не повесит ли это тестер?

1. 0.1(零点十分之一)。

2.可以在任何地方

3.不会自己悬挂,但如果你下定决心......:)

 
alsu >>:

谢谢你!

原因: