文章 "作为创建自动化交易系统新方法的自动机编程" - 页 3

 
Rorschach:

"3.我很好奇,想听听真正的蜱虫白噪声,并使用 WaveLab 6.0 软件做到了这一点"。

嘻。原来我不是唯一一个这样的疯子)))))。这就是 我的成果。我是通过 Adobe Audience 做的。

你是如何将价格正常化的?

像往常一样,通过切掉长尾,将超出 3*sko 的所有内容都归为这个值。
 

一车的情绪

1) 很多 bukaf 什么都没有......

2) 看到这里,你开始明白为什么美国人现在在火星而不是我们了。

3) 剩下的我宁愿保持沉默(因为只有情绪)。

 

我很喜欢这篇文章,尤其是关于计划制定和文件编制的现代做法。事实就是如此。

当然,文章至少应该展示基于自动机方法的最简单的智能交易系统。还是计划在下一篇文章中介绍?

在我看来,自动机方法还有一个大问题。对于真正的智能交易系统来说,不可能明确定义状态。Expert Advisor 的状态由用户计算机上的一些内部变量和服务器上的仓位状态(当前汇率、净值、订单执行情况)决定。内部状态是明确确定的,但服务器上的头寸状态可能是未知的,可能是延迟知道的,也可能处于不明确的状态(有些订单和请求被执行,有些没有被执行,谁也不知道为什么)。

由于不知道顾问的当前状态,订单和请求也不会被执行,因此不可能建立一个清晰的自动机逻辑。在现实中,我们会得到这样的算法:

计算器:给我买几百欧元,服务器。

服务器:去你妈的,comp,你请求中的止损点是错的。

客户:为什么错了?

服务器:所以价格跳涨了。

comp: well, then buy without stops.

服务器沉默

comp: well, what did you buy?

服务器沉默

comp: well, fuck you.我们小睡八分钟吧。

八分钟后:怎么样?

服务员:我买了欧元,但买的时候价格变了。

服务员:我买了欧巴克,但在买的时候价格去了别的地方。我们再睡一个小时吧。

以此类推。

 
进化是在兜圈子--是时候回到(非)有限自动机了,然后我们将制造图灵机。
 
Virty:

...

在我看来,自动机方法还有一个大问题。对于真正的智能交易系统来说,不可能明确定义状态。智能交易系统的状态由用户电脑上的一些内部变量和服务器上的仓位状态(当前汇率、净值、订单执行情况)决定。内部状态是明确确定的,但服务器上的头寸状态可能是未知的,可能是延迟知道的,也可能是不明确的(有些订单和请求被执行了,有些没有,鬼知道为什么)。

好吧,既然不知道 EA 的当前状态,也 不执行命令和请求,那么就不可能建立一个清晰的自动机逻辑。

...

这是新鲜事物。任何 TS(无一例外)都是基于对 TS 状态的分析和清晰理解。最简单的状态: 开仓/平仓/修改订单等信号的处理,等等。

如果 "不清楚 EA 的当前状态",那么它肯定不是 EA,也肯定不是程序,与 EA 有关的 "算法 "一词应被划掉,永远忘记。

 

感慨万千。

好吧,我提议把讨论转向实际的方向。让我们来分析一种基于有限自动机理论的具体算法。让我们来讨论它的优缺点。我本人并不使用这种方法写作,但我对这个问题和算法略有了解,所以现在我将简要介绍这种控制的一般原理:

//СХЕМА + ПСВЕДОКОД
enum eTradeState {NoTradeRegim, BuyRegim, SellRegim, WaitRegim};
eTradeState TradeState = eTradeState.NoTradeRegim;
int Trade()
{
   switch (TradeState)
   {
       case eTradeState.NoTradeRegim:
          NoTradeRegim();
          break;
       case eTradeState.WaitRegim:
          WaitRegim();
          break;
       case eTradeState.SellRegim:
          SellRegim();
          break;
       case eTradeState.BuyRegim:
          BuyRegim();
          break;
   }
}
// 在此,我们将描述 Expert Advisor 开始交易的条件。例如
void NoTradeRgim()
{
   //Further pseudocode follows. 
   if(CurrentDay == WorksDays && Market.Enable = true)
      TradeState = eTradeState.WaitRegim;
}
// 在这里,我们捕捉进入多头或空头仓位的信号。
void WaitRegim()
{
   if(CheckForNoTrade() == true)
   {
      TradeState = eTradeState.NoTradeRegim;
   }
   if(CheckForBuy() == true)
   {
      BuyAtStop(...)
      TradeState = eTradeState.BuyRegim;
   }
   if(CheckForSell() == true)
   {
      SellAtStop(...);
      TradeState = eTradeState.SellRegim;
   }
}
// 在这个函数中,我们伴随着一个长交易
void BuyRegim()
{
   //在此写入关闭交易、更改止损或其他参数等的条件。
   if(StopLossChanged() == true)
      NewStop = ...;
   if(profit >= takeprofit)
   {
      CloseDeal(...);
      TradeState = eTradeState.WaitRegim;
   }

}
// 在该函数中,我们伴随着空头交易
void SellRegim()
{
   //在此写入交易关闭或移动止损等的条件。
   if(StopLossChanged() == true)
      NewStop = ...;
   if(profit >= takeprofit)
   {
      CloseDeal(...);
      TradeState = eTradeState.WaitRegim;
   }

}

虽然是示意性描述,但我认为基本思路是清晰的。在每个时刻,Expert Advisor 只有一种状态(非市场模式、信号等待模式、买入模式、卖出模式)。在每种状态下,都有一组特定的操作和条件,在这些操作和条件下,将从当前状态过渡到另一种状态。我们的想法是明确控制每种状态,因此内部逻辑是严格本地化的,不会出现关闭不存在或已关闭的交易这样的逻辑错误。

我自己并不使用这种技术,我认为它并不适合所有算法。但它还是比传统方法更好地解决了某些任务。

专家们对此有何看法?

 
C-4:
...

我自己并不使用这种技术,我认为它并不适合所有算法。但它还是比传统方法更好地解决了一些问题。

专家们对此有何看法?

请问您说的 "经典方法 "是什么意思?

因为每个人都有自己对现实的理解。

 
Urain:

请问您所说的 "经典方法 "是什么意思?

因为每个人都有自己对现实的反映。

我一定是说错了。当然,每个人都有自己的写作方式。我指的是系统每一步的状态没有明确定义时的大多数方法。这不仅需要在执行 智能交易系统时确定。最简单的例子就是在一个代码块 OnTick() 中编写的代码。没有对模式进行分析。解决方案的选择是在块分支 if(...) 的基础上进行的。
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
C-4:
我指的是在每一步的系统状态没有明确定义时的 大多数方法。这需要在执行 EA 确定

如果状态 "未明确定义",那么如何定义 "未明确定义 "的内容?在处理订单/头寸的情况下,EA 是否没有必要在每个刻度点了解其所处的状态?还是说 EA 在每个刻度都处于 "未定义状态"?什么样的 EA 才会在每个刻度都不知道该做什么?

 

这篇文章完全没有涉及这个话题,只是说有一个开关。它是否存在并不重要,它可以通过 if 进行切换。

有一次,我在写一个 EA,其中有一个非常复杂的订单系统。我必须认真分析,并列出一个状态列表:无订单、一个挂单、一个市场订单、两个挂单、一个挂单和一个市场订单,等等。只有这样,我才能克服它。但事实证明,它是一种通用的、可快速重新编程的东西。这倒是个写文章的好题材。