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

 
kara100 >>:

Здравствуйте, все! Подскажите, плз, как вытащить из индикатора +МР, сами значения уровней для использования в советнике?

你可以尝试使用ObjectGet()。注意线条 DrawVLine(onp + "hz", hz, Red, 1, STYLE_DOT, false)。

 
Necron писал(а)>>

你可以尝试使用ObjectGet()。注意DrawVLine(onp + "hz", hz, Red, 1, STYLE_DOT, false)线。

谢谢

 
Andrew_Filinsky >>:

Здравствуйте. Я начинающий трейдер, придумал торговую стратегию, написал советника, при его работе на демосчёте возникла следующая проблема:

Советник иногда зависает во время выполнения операции OrderSend(). Выглядит это так: в вечером запустил советник, утром обнаруживаю, что советник завис в 3 часа ночи. В логе присутствует сообщение "Выполнение команды началось ...", сообщения "... Выполнение команды закончилось" нет. Терминал MT4 работает, получение котировок происходит, котировки отображаются на графике инструмента, на котором работает советник, советник висит. Ситуация возникает неоднократно, после перезапуска терминала ошибка может повториться через несколько часов.

Вопросы:

В чём причина зависания советника? Как устранить зависание?

Вот фрагмент соответствующего кода:

Дополнительная информация: использую GPRS-модем, включён круглосуточно, обрывов связи с потерей коннекта в течение работы советника не наблюдается, программ для анализа сетевого трафика специально не устанавливал, работает только стандартный брандмауэр WinXP.

Поискал по форуму, подходящего описания такой проблемы, её причин и способов их устранения не нашёл.

( Такое ощущение, что проблема возникла на ровном месте. Вообще не представляю, как такие фундаментальные вещи могут не работать )

试着运行一个与EA平行的循环脚本,如果有错误,它将以3000次滑动(3秒)的频率刷新。

我认为这个问题可以通过一个常规的请求来解决(不管刻度线)。

如果有勾,你就刷新,但如果有勾,为什么要刷新?

所以只有循环的脚本可以帮助。

int start()
{//+----------------------------------------------+
 while(!IsStopped())
   {if(!IsConnected())RefreshRates();
    Sleep(3000);
   }
return(0);
}//+----------------------------------------------+

我直接在Mozilla中写的,没有检查它是否有效)。

 
Rover82 >>:

вот.

检查,我的指标没有显示(那里需要有一个.csv)。标签的设置应该是真实的

附加的文件:
optlev_1.mq4  15 kb
 
Necron >>:

Проверьте, у меня не отображается индикатор (там .csv нужен какой-то). В настройках labels должно быть true

Necron,非常感谢你,它的工作...是的,我知道该指标本身需要外部数据....。

 
我有3个买入订单,一个信号出来后,关闭了一个买入头寸,我开的最后一个订单也关闭了,但我需要关闭第一个订单(最早的那个),非常感谢!
 

在MT4中,每个货币对都有两个横向打开的窗口(在不同的时间段)。

- 有什么方法可以将它们联系起来吗?- 当我按下一个,第二个就会和第一个一起上升。

(我听说有一些程序允许链接窗口,但我不知道它们是否与MT一起工作)

 
splxgf писал(а)>>

最好改用ADSL或其他类型的连接。我不明白你怎么能在gprs上工作。

在OrderSend()过程中,顾问有时会挂 起 ...

...我使用GPRS调制解调器,每天24小时开机,在EA工作期间没有连接中断,没有失去连接,我没有安装任何软件来分析网络流量,只有标准的WinXP防火墙。

[事实上,每天10MB的流量和每秒0.8(原文如此)千比特的流量,比gprs 10级带宽少50倍,足以在六个主要货币对上在线工作。重要的是,没有中断的连接,以及与经纪人之间的低数据包延迟。从手机上通过GPRS,带宽是足够的,但有中断的情况。现在通过固定的GPRS/EDGE调制解调器,我的连接可以持续24小时不间断,MT4终端的带宽甚至更好。[歌词结束]

我通过实验找到并修复了问题的根源。源头只是WinXP防火墙,它似乎干扰了从MT终端到DC服务器的数据传输过程并使之失真。有趣的是,头寸是手动打开、关闭和修改的,但专家顾问的脚本 - 噗。将MetaTrader添加到WinXP防火墙例外列表后,挂起的问题就解决了。

谢谢大家,谢谢你们的潜在帮助。

 
Советник иногда зависает во время выполнения операции OrderSend().

Urain 写道 :>>

试着运行与EA平行的循环脚本,在不提交的情况下以3000次的频率(3秒)刷新。我认为这个问题可以通过一个常规的请求来解决(不管刻度线)。

谢谢,我已经找到了问题的原因,也找到了解决办法。事实上,连接并没有消失,几天来一直很稳定,没有中断过。结果发现问题是由WinXP防火墙活动引起的,把MetaEditor加入其例外列表就解决了。

 
大家晚上好!谁能告诉我如何关闭一个订单,选择第一个订单并关闭它?
while(true)                                  // Цикл закрытия орд.
     {
      if ( Tip==0 && Cls_B==true)                // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert("Попытка закрыть Buy ", Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         
         Ans=OrderClose( Ticket, Lot,Bid,2);      // Закрытие Buy
         if ( Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Buy ", Ticket);
            break;                              // Выход из цикла закр
           }
         if ( Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }