[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 222

 
smartemiy:

亲爱的专业人员!

我请求您的帮助!

我有一个交易机器人,每次做20-80笔交易。我不能理解这取决于经纪公司?

而不是一个--放100个。

启动功能在每个tick上执行,如果开单条件得到 满足,新的订单将在每个tick上打开。

对未结订单的最大数量或每条街的一个订单进行限制,等等。

 
splxgf:

启动函数在每个tick上执行,如果满足开单的条件,每个tick上都会有一个新的订单被打开。

对未结订单的最大数量或每条街的一个订单设置限制,等等。

非常感谢您的回复!

Splxgf ,我也在想这个问题。

int init()
{  RefreshRates();
   if (NumberOfOrders()>15) return(0); // если число открытых ордеров превышает число 15, тогда советние не торгует
   if (OpenStop()>30) return(0);       // если число отложеных ордеров превышает число 15, тогда советние не торгует
}

NumberOfOrders是一个f-from,计算未结订单的数量。OpenStop - f-op计算挂单的数量。

开单的条件得到满足,EA将任意数量的订单放在一排。

>splxgf:这是一个变种的代码,当超过交易数量时停止专家顾问。我如何写出当条件被触发时要下一个订单?

 

init只执行一次https://docs.mql4.com/ru/basis/functions/special

int MaxOpenOrders=15;

int start()
  { 
    //bla-bla
    if (((OrderOpenPrice()-pAsk) >= -60 || OrdersTotal()<MaxOpenOrders) //открываем новые если количество открытых и отложенных ордеров не превышает 15
    OrderSend...
  

事实上,在https://book.mql4.com/ru/,有一个教程。

如果你希望条件只被触发一次,那就更复杂了

 
先生们!那么谁能回答我关于上网本和3G调制解调器的问题(在第221 页)。 提前感谢。
 
splxgf:

init只执行一次https://docs.mql4.com/ru/basis/functions/special

事实上,在https://book.mql4.com/ru/,有一个教程。

如果你想让条件只被触发一次,那就更复杂了。

谢谢你!

我将研究一下!

 

我在数据库中搜索了一下,没有找到,但也许我找得不够仔细。

告诉我,亲爱的人们,你们是否有类似的东西。

该算法很简单:类似于网格,每隔n个点就开一个订单(买或卖,取决于价格方向)。订单被打开,直到有一个m点的利润。当达到这个值时,所有的订单都被关闭,一切重新开始。

提前感谢您的关注。

 
Zhunko:
任务是将下载的历史记录保存到历史文件中。在下载过程中,所有的历史记录都保存在内存中。关闭MT4窗口后,开始使用MT4工具保存到文件。这不是一个快速的过程。

瓦迪姆,我是这样解决保存问题的。

if(Bars<7000)
  {
    int handle, bar, wParam;
    handle=WindowHandle(Symbol(),Period());
    switch(Period())
            {
                  case PERIOD_M1:  wParam = 33137; break;
                  case PERIOD_H1:  wParam = 33135; break;
                  case PERIOD_D1:  wParam = 33134; break;
            }
    for(bar=1;bar<7000;bar=+100)
      {
        Comment(Bars);
        PostMessageA(handle,WM_KEYDOWN,VK_HOME,0); Comment(Bars); Sleep(10000); 
        PostMessageA(handle,WM_COMMAND,33135,0);  Comment(Bars); Sleep(10000); 
        PostMessageA(handle,WM_KEYDOWN,VK_HOME,0); Comment(Bars); Sleep(10000); 
        PostMessageA(handle,WM_COMMAND,33134,0);  Comment(Bars); Sleep(10000); 
        PostMessageA(handle,WM_KEYDOWN,VK_HOME,0); Comment(Bars); Sleep(10000); 
        PostMessageA(handle,WM_COMMAND,33137,0);  Comment(Bars); Sleep(10000); 
        bar=Bars;
        RefreshRates();
        if(Bars>=7000) {PostMessageA(handle,WM_KEYDOWN,VK_END,0); StartProfit();} //обязательный выход, иначе просто остается и подкачивает данные
        
      }
   }

由于时间段之间的跳转,历史记录被同时保存在几个时间段(在这种情况下是1分钟、1小时和1天)。因此,没有必要关闭终端,但加载速度不是很快,一个货币对的速度大约是1分钟(在这些条件下),即如果我们对许多货币启动,终端将挂起半小时。专家顾问开始使用历史数据,无需重新加载终端。

 
forexnew:

瓦迪姆,我是这样解决保存问题的。

由于时间段之间的跳转,历史记录同时被保存在几个时间段内(在这种情况下是1分钟,1小时和1天)。因此,不需要关闭终端,但加载速度不是很快,一个货币对的速度大约是1分钟(在这些条件下),也就是说,如果我们为许多货币启动它,终端将挂起半个小时。专家顾问开始使用历史数据,无需重新加载终端。

我也有同样的东西,只是比它可靠很多倍。当切换TF时,历史记录不会被保存到文件中。只有在卸下终端时。

有时,终端有时会自己保存历史记录,但这与Tfswitching没有关系。

 
Zhunko:

我也有同样的东西,只是比它可靠很多倍。当切换TF时,历史记录不会被保存到文件中。只有在终端卸载的情况下。

有时终端会自己开始保存历史记录,但这与TF切换无关。

我如何设置它只下载某些时间段(不是全部):分钟、1小时和天?

因此:字符串sTimeFrame = {"M1", "H1", "D1"}; // 列出扫描的TF的字符串。

它不会在一分钟内下载超过2000条,但我的专家顾问需要超过7000条。用这个脚本下载后,我的专家顾问将完成它。

是不是这样设计的,不是所有的酒吧都被下载?

 

你好,亲爱的社区。

我有这样一个问题。我在我的模板(iBands -https://docs.mql4.com/ru/indicators/iBands) 中使用 "布林线 "指标,它的一个参数 - 偏差 (标准偏差)被定义为int。 有没有可能改成双倍?在MT4的 "自定义指标 "部分,还有其他布林线(标记为 "Bands"),其中 偏差 被定义为 双倍 。但如何将其插入到MQL4中?它不包括在内置指标的标准组合中,是吗?我不知道如何在MQL4中使用它。

原因: