void analyzeFilledOrder(ulong orderTicket,double volume)
{
bool isFindOrder=false;
string fullComment;
ENUM_ORDER_TYPE orderType;
if(getIsOrderOfExpert(orderTicket,true)) //Если ордер из сделки уже в истории
{
fullComment=HistoryOrderGetString(orderTicket,ORDER_COMMENT);
orderType=ENUM_ORDER_TYPE(HistoryOrderGetInteger(orderTicket,ORDER_TYPE));
isFindOrder=true; //локальная переменная, если нашли в истории
}
if(!isFindOrder && getIsOrderOfExpert(orderTicket,false)) //Если не нашли ордер в истории и ордер есть не в истории
{
fullComment=OrderGetString(ORDER_COMMENT);
orderType=ENUM_ORDER_TYPE(OrderGetInteger(ORDER_TYPE));
isFindOrder=true; //локальная переменная, если нашли не в истории
}
if(isFindOrder) //если хоть где-то нашли, то выставляем отложенные стоп ордера
{
//выставляем стоп ордера
有时交易的顺序如下 TRADE_TRANSACTION_ORDER_DELETE, then TRADE_TRANSACTION_DEAL_AD, then TRADE_TRANSACTION_HISTORY_AD。在这种情况下,止损单往往不会在交易执行后下达。我想这是因为该订单已经被删除,但还没有被添加到历史中。这意味着我们无法在历史或终端中找到该交易的订单。虽然这很值得怀疑,但事实是没有下止损单,因为机器人在所有维度搜索订单后没有找到它(isFindOrder=false)。交易的顺序可能是正确的,但订单仍然无处可寻。 在所有情况下,机器人都能正确检测到交易,但没有进入下单阶段。然而,它也偶尔会正确工作,下单。
从01:35和03:35看这个视频。
为什么我需要你自制的东西?你让我感到惊讶。以这样的编程知识,你无法理解OnTradeTransaction 处理程序
为什么我需要你自制的东西?你让我感到惊讶。以这样的编程知识,你无法理解OnTradeTransaction 处理程序
和一个连任务都无法想象的人谈话是很难的。
那么,是没有位置,还是用倒逗号?
这是很正常的情况,在净值方面--没有头寸(即总头寸==0.0)。
而从两个EA的角度来看--每个EA都有自己的开放位置。
一个符号上可能有一个以上的专家顾问。另外,有些交易可能是通过手来完成的。
这是很正常的情况,在净值方面--没有头寸(即总头寸==0.0)。
而从两个顾问的角度来看--每个人都有自己的公开立场。
一个符号上可能有一个以上的专家顾问。另外,有些交易可能是通过手工完成的。
妻子拿着床头柜里的钱,买了一台电视。丈夫拿着电视,卖了它,把钱放在床头柜里。在净值化方面,没有电视。而根据你的逻辑,妻子拥有电视和床头柜里的钱。因此,他们决定是买另一台电视还是花这笔钱。
还是他们每人都有一台电视?毕竟,他们每个人都曾把它握在手中。夸大其词。
如果一个顾问开仓,另一个顾问平仓,它就会消失...忘记他们...没有任何立场。
妻子拿着床头柜里的钱,买了一台电视。丈夫拿着电视,卖了它,把钱放在床头柜里。在净值化方面,没有电视。而根据你的逻辑,妻子拥有电视和床头柜里的钱。因此,他们决定是买另一台电视还是花这笔钱。
还是他们每个人都有一台电视机?毕竟,他们中的每一个人都曾在他们手中握过一个。我夸大其词。
如果一个顾问开仓,另一个顾问平仓,它就会消失...忘记他们...没有任何立场。
没有任何立场。
但在其逻辑中--每个EA都持有不同的立场。例如,一个人--"长线 "将坐等损失,而另一个人--"黄牛 "将同时在反趋势上采取自己的行动。
没有任何立场。
但在他们的逻辑限度内--每个EA都持有自己的立场。例如,一个--"长线 "将等待损失,而另一个--"黄牛 "将去寻找反趋势。
显然,你是想把两种对冲策略的逻辑应用于净值化。更符合逻辑的顺序是如下。
在反趋势中的黄牛党关闭了一个头寸,并为他的假想头寸在预期的TP价格上设置了一个限价单。而如果这个限位开关起作用,位置就会全部恢复,但是!!!用不同的票。因此,将其视为该封闭头寸 的延续是不绝对正确的,长期的EA将无法将其确定为自己的。
另一件事是,黄牛党是否会在较小的体积下工作。那么,尽管开盘价会发生变化,但票价将保持不变。一般来说,不要试图简单地将策略转移到净值化套期保值,不会有什么好结果。这个比喻会起作用,但行动应该是不同的。应考虑到净值化的具体内容。
显然,你是想把两种对冲策略的逻辑应用于净值化。一个更符合逻辑的顺序是如下。
在反趋势中的黄牛会平仓,并在预期的TP价格上为他的假想仓设置限价单。而如果这个限位开关起作用,位置就会全部恢复,但是!!!用不同的票。因此,将其视为该封闭头寸 的延续是不绝对正确的,长期的EA将无法将其确定为自己的。
如果黄牛党用较小的数值工作,则是另一回事。那么,尽管开盘价发生了变化,但门票将保持不变。一般来说,不要试图简单地将净值化策略转移到套期保值,不会有什么好结果。这个比喻会起作用,但行动应该是不同的。应考虑到净值化的具体内容。
这只是一个黄牛和多头的例子,在这个符号上可能有很多EA,它们可能有不同的手数。
"黄牛党在逆势中平仓,并在其假想头寸的预期TP的价格上设置限价开关"。- 但是,黄牛党为自己假设他有一个 "假想的位置"。
而事实上,总头寸已经改变了票面--所以长线顾问不需要它,他已经知道他有自己的头寸,这与总头寸没有关系。
因此,每一个EA的工作都不考虑谁在这个符号上和它一起工作,而不知道或不希望知道任何有关的事情。
是的,我并不是要为套期保值转移策略,因为我马上就开始使用MT5、FORTS和净值。我只是想让几个机器人能够在这个符号上进行交易,并且仍然能够在不干扰他们的情况下进行交易手。
JRandomTrader:
但对他自己来说,挥霍者认为他有一个 "假想的位置"。
这就是我要说的,你必须建立一个不同的网状结构逻辑。不应该有假想的 立场。我这样说只是因为我找不到另一个词来让你理解我。如果有补仓,那么就会考虑到头寸的总成交量和开仓的 新价格,如果有部分平仓,也会考虑到价格和成交量。
这就是我要说的:你必须建立一个不同的网状结构逻辑。不应该有假想的 立场。我这么说只是因为我找不到另一个词来让你理解我。如果出现补仓,那么就会考虑到头寸的总成交量和新的开盘价;如果出现部分平仓,那么也是如此,就会考虑到总的价格和成交量。
然后,我们将不得不在机器人之间建立一些互动,并考虑到 "邻居 "的行动,他们今天是一样的,明天可能是不同的。而且目前还不清楚这将带来什么好处。
从机器人算法的角度来看,需要一个假想的位置:如果它已经打开,就应该关闭它。
然后,我必须在机器人之间建立某种互动,并考虑到 "邻居",今天是一个,明天可能是另一个。而且目前还不清楚这将带来什么好处。
从机器人算法的角度来看,需要一个假想的位置:如果它打开了,就应该关闭它。
为了简化事情,是的。我同意。
那么 "运输经理 "还没有完全阐明问题和他的行动。
关于交易、自动交易系统和策略测试的论坛
在贸易交易中的处理
Ilya Child, 2019.02.07 20:08
晚上好。
伙计们,请帮助解决这个问题。这个问题可能并不新鲜,但我还没有找到任何明确的解决方案(无论是在实践中,还是在论坛上)。
我在终端中对2个不同的仪器运行2个不同的机器人。各地的魔法是不同的。机器人放置待定限额,程序OnTradeTransaction 允许我检测一个交易,并使用该交易放置待定止损单。
以下是贸易交易的代码
这是检查该交易是否属于机器人的函数的代码
这是待定止损单的程序代码
这是搜索历史中的订单和历史外的订单的函数代码
我把传入的交易信息按照终端收到的顺序放在日志中。现在我有一个问题,我在用模拟账户交易时遇到过。
有时交易的顺序如下 TRADE_TRANSACTION_ORDER_DELETE, then TRADE_TRANSACTION_DEAL_AD, then TRADE_TRANSACTION_HISTORY_AD。在这种情况下,止损单往往不会在交易执行后下达。我想这是因为该订单已经被删除,但还没有被添加到历史中。这意味着我们无法在历史或终端中找到该交易的订单。虽然这很值得怀疑,但事实是没有下止损单,因为机器人在所有维度搜索订单后没有找到它(isFindOrder=false)。交易的顺序可能是正确的,但订单仍然无处可寻。 在所有情况下,机器人都能正确检测到交易,但没有进入下单阶段。然而,它也偶尔会正确工作,下单。
我已经尝试了不同的方法,没有任何效果。我现在考虑在待定下单程序开始时增加一个1秒钟的间隔。我不知道还有什么地方可以挖掘。
请分享你的经验和想法。