任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 752

 

如何在条形图或蜡烛图的收盘时关闭订单

int start()
  {
      if ((Time[0] == prevtime) && openbarspriceonly) {
      return(0);
      }
   
      if (! IsTradeAllowed()) {
      Comment("Trades disallow");
      return(0);
      }
   
      prevtime = Time[0];

    if (CountTrades() == 0)
    {
        open = iOpen(Symbol(), PERIOD_D1, 0);
        close = iClose(Symbol(), PERIOD_D1, 1);

     if (DayOfWeek()==1&& Ask >= open)
     { 
        ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, Slippage, 0, 0, NULL, Magic, 0, Blue);
        if (ticket>0)
        {
          Print("Ордер ошибка в Лонг: ", GetLastError());
        }
        else 
           Print("Ордер открыт успешно");
        if(OrderSelect( ticket, SELECT_BY_POS))
        {
          if(OrderClose(ticket, lots, close,Slippage,0))
          return(0);
        }
     }
     if (DayOfWeek()==5&& Bid <= open)
     {
        ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, Slippage, 0, 0, NULL, Magic, 0, Red);
        if (ticket>0)
        {
          Print("Ордер ошибка в Шорт ", GetLastError());
        }
        else 
           Print("Ордер открыт успешно");
        if(OrderSelect( ticket, SELECT_BY_POS))
        {
          if(OrderClose(ticket, lots, close,Slippage,0))
          return(0);
        }

     }
    }
    return(0);
  }
 
ikatsko:

策略测试器中,命令MarketInfo(Symbol(),MODE_TICKVALUE) = 0(!) 这种情况发生在,例如,工具是EURUSD,平衡货币是RUR....。和其他组合中。我的理解是,平衡货币必须与货币对中第二种货币的名称相同。否则,它将返回零值(在策略测试器中),这使得它无法用所需的组合进行测试。如何解决这个问题?

突出显示的内容不正确!我是用欧元兑美元、英镑兑美元等来计算的。只有在启用时,它才可能给出0,直到收到第一个数据,这就是为什么我在用TICKVALUE 计算之前放了一个条件,如果!=0。

在测试器中,MarketInfo() 可能不起作用,所以在知道一个tick的大致价格 后,我用IsTesting()||IsOptimization()||IsVisualMode()这个条件来设置它。

"知道蜱虫的大致价格 " ?我的解决方案如下:一个刻度的近似价格=10*CURRENCY(USDCurrencyBalance)。它在所有的参数中都有设置。当然,如果货币对(USDBalance货币)的汇率能够在终端自动获取,那就更好了。即知道余额的货币(AccountInfoString(ACCOUNT_CURRENCY)),例如RUR,形成一个字符名称字符串,例如USDRUR。看看终端中是否有这样的符号?也许有这样的符号,例如USDRUR_c ?获取终端中可用的货币对。

 
artmedia70:
Vista与此有什么关系?老鼠,老鼠已经在死去。它很快就会变质;)
我有一台没有鼠标的笔记本电脑,不像以前用大电脑时,鼠标让我的食指很疼!"。
 
ikatsko:

策略测试器中,命令MarketInfo(Symbol(),MODE_TICKVALUE) = 0(!) 这种情况发生在,例如,工具是EURUSD,平衡货币是RUR ....和其他组合中。我的理解是,平衡货币必须与货币对中第二种货币的名称相同。否则,它将返回零值(在策略测试器中),这使得它无法用所需的组合进行测试。如何解决这个问题?

突出显示的内容不正确!我是用欧元兑美元、英镑兑美元等来计算的。只有在开启时,它才可能在第一个数据之前给出0,这就是为什么我在用TICKVALUE 计算之前放了一个条件,如果!=0。

在测试器中,MarketInfo() 可能不起作用,所以在知道一个tick的大致价格 后,我用IsTesting()||IsOptimization()||IsVisualMode()这个条件来设置它。

"知道蜱虫的大致价格 " ?我的解决方案如下:一个刻度的近似价格=10*CURRENCY(USDCurrencyBalance)。它在所有的参数中都有设置。当然,如果货币对(USDBalance货币)的汇率能够在终端自动获取,那就更好了。即知道余额的货币(AccountInfoString(ACCOUNT_CURRENCY)),例如RUR,形成一个字符名称字符串,例如USDRUR。看看终端中是否有这样的符号?也许有这样的符号,例如USDRUR_c ?获取终端中可用的货币对。

我不需要它,因为在测试过程中,tick的价格没有变化,还有价差和许多其他东西。这就是为什么我总是把MarketInfo(Symbol(),MODE_TICKVALUE) 放在任何符号的图表上,由我使用的任何图表指标附加,并在测试前把它的值放在EA的代码里。
 
borilunad:
我有一台没有鼠标的笔记本电脑,不像我以前有一台大电脑,鼠标让我的食指很疼!"。

所以触摸板出现了故障。它上面也有按钮。

也许我的手指已经改变了......。:)但我不认为 "嗡嗡声 "是操作系统的原因。

 
artmedia70:

所以触摸板出现了故障。它上面也有按钮。

或者你的手指已经不对了......:)但我不认为 "响声 "是操作系统的原因。

我不善于使用术语,触摸板,"喋喋不休" ...虽然触摸板是在汽车倒下的时候?但我并不害怕,我没有车,也不需要。我喜欢在一个美丽的城市里散步,当我不得不这样做的时候,非常方便的公共交通,路况良好,没有交通堵塞!我喜欢这样的生活。:)
 
borilunad:
我不太懂术语,触摸板、"响声"......。虽然触摸板是当汽车掉下来的?但我没有这方面的危险,我没有车,也不需要车。我喜欢在一个美丽的城市里散步,当我不得不这样做的时候,非常方便的公共交通,有良好的道路,没有交通堵塞!我喜欢这样的生活。:)

你被谷歌禁言了吗?

触摸板touchpad),触摸板是一种指向性输入设备;本发明涉及自动化和计算机工程,可用于读取并向计算机输入信息,如符号,以及触摸板表面磁性材料制成的元素和部件的位置坐标信息触摸板包含一包印刷电路板。在每块印刷电路板的层上都有扁平的螺旋式电感电容元件,沿着矩阵的行和列串联成链。所有印刷电路板的矩阵都是相互对齐的。在相邻的PCB表面之间放置一个绝缘层。i-印刷板的行(列)的输出与(i+1)-印刷板的行(列)的输入相连,包内第一块印刷电路板的矩阵的行和列的输入是触摸板的输入,其输出是包内最后一块印刷电路板的矩阵的行和列的输出。像其他指向性设备一样,触摸板通常 用于通过在设备表面移动手指控制一个 "指针"。触摸垫有各种尺寸,但一般都小于50cm²的尺寸。形状最常见的是长方形,但也有圆形模型。

 

你们能告诉我今天发生的故障可能是什么原因造成的吗?

该EA有一个选项是在周五收市前15分钟停止交易。

当新的一天出现时,EA检查是否是星期五,那么今天我们在StringToTime("23:59")-15*60停止交易。

datetime FinishInFriday;
void OnTick()   {
   datetime cur=TimeCurrent();
   if(PrevDay!=Day()) {                               // при наступлении нового дня
      PrevDay =Day();
      
       if(TimeDayOfWeek(cur)==5) {                    // если сегодня пятница
         FinishInFriday=StringToTime("23:59")-15*60;    // время окончания торговли
         Print("Finish In Friday = ",FinishInFriday);   
       }
   }
   if(TimeDayOfWeek(cur)==5)
      if(cur>FinishInFriday) 
         return;
}

策略测试器中,这个功能运行正常。 然而,在实际交易中,我看到了完全不同的情况--当星期五到来时,专家顾问在第一个刻度上停止交易。

以下是专家顾问杂志上的印刷品。

1号经纪人,演示。

0 05:59:47.731 Scalper GBPAUDpt,M1: Finish In Friday = 2014.10.23 23:44:00

经纪人2,真实。

0 03:00:11.999 Scalper EURUSD,M1: Finish In Friday = 2014.10.23 23:44:00

也就是说,当今天的日线出现(10月24日,星期五)的第一个刻度时,EA

将把 "23:59 "一行转换为昨天的时间,而不是指定今天的时间。

但如果EA在周五的中午重新启动,它将正确地确定完成的时间。

 
tuner:

你们能告诉我今天发生的故障可能是什么原因造成的吗?

该EA有一个选项是在周五收市前15分钟停止交易。

当新的一天出现时,EA检查是否是星期五,那么今天我们在StringToTime("23:59")-15*60停止交易。

在策略测试器中,这个功能运行正常。 然而,在实际交易中,我看到了完全不同的情况--当星期五到来时,专家顾问在第一个刻度上停止交易。

以下是专家顾问杂志上的印刷品。

1号经纪人,演示。

0 05:59:47.731 Scalper GBPAUDpt,M1: Finish In Friday = 2014.10.23 23:44:00

经纪人2,真实。

0 03:00:11.999 Scalper EURUSD,M1: Finish In Friday = 2014.10.23 23:44:00

也就是说,当今天的日线出现(10月24日,星期五)的第一个刻度时,EA

将把 "23:59 "一行转换成昨天的时间,而不是指定今天的时间。

但如果EA在周五中午重新启动,它将正确地确定完成的时间。

仔细看一下。

如果昨天的日子不等于今天的日子...

你每天只能进入这个单元一次。

不知何故,我怀疑它在测试器中也会正确工作。

看看文档中的MqlDateTime 和TimeToStruct。

这是一个简单的结构,比起这种日期和时间的转换,它在工作上要方便得多。

 
Vinin:

你被谷歌禁言了吗?

触摸板touchpad),触摸板是一种指向性输入设备;本发明涉及自动化和计算机工程,可用于读取并向计算机输入信息,如符号,以及触摸板表面磁性材料制成的元素和部件的位置坐标信息触摸板包含一包印刷电路板。在每块印刷电路板的层上都有扁平的螺旋式电感电容元件,沿着矩阵的行和列串联成链。所有印刷电路板的矩阵都是相互对齐的。在相邻的PCB表面之间放置一个绝缘层。i-印刷板的行(列)的输出与(i+1)-印刷板的行(列)的输入相连,包内第一块印刷电路板的矩阵的行和列的输入是触摸板的输入,其输出是包内最后一块印刷电路板的矩阵的行和列的输出。与其他指向性设备一样,触摸板通常 用于通过在设备表面移动手指控制一个 "指针"。触摸垫有各种尺寸,但一般都小于50cm²的尺寸。形状最常见的是长方形,但也有圆形模型。

就像我在Vista上,以及在我的新8-ka上的矩形,它的滑稽行为让我失望,它不可能安静地工作,突然一切都飞走了,这一定是手机的一种时尚,他们认为整个世界只为娱乐而活!"。谢谢你提供的信息(你就不能开个玩笑吗?)