int start()
{
if (OrdersTotal()<1) //условие
{
OrderSend(Symbol(),OP_BUY,1,Ask,0,0,0,"Order BUY",0,0); //открытие ордера
}
OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);
int my_bar = iBarShift(NULL,PERIOD_M30,OrderOpenTime());
if (my_bar > 6) //если прошло 6 баров с момента открытия последнего ордера
{
OrderSend(Symbol(),OP_BUY,1,Ask,0,0,0,"Order BUY",0,0); //открываем новый ордер
}
return(0);
}
int start()
{
if (OrdersTotal()<1) //условие
{
OrderSend(Symbol(),OP_BUY,1,Ask,0,0,0,"Order BUY",0,0); //открытие ордера
}
else
{
OrderSelect (OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);
int my_bar = iBarShift (NULL,PERIOD_M30,OrderOpenTime());
if (my_bar >= 6) //если прошло 6 баров с момента открытия ордера
{OrderSend (Symbol(),OP_BUY,1,Ask,0,0,0,"Order BUY",0,0);} //открываем новый ордер
}
return(0);
}
我了解那里的情况。但不清楚为什么要这样实施。
每一个单独的库函数都是整体的一部分,而一个单独的库也是我整个复合库的一部分--没有这种意识,就不可能理解代码。
反正你不能以原始形式使用你的库,也就是说,你把所有东西都绑在那里了。每一个功能对他人的包...
而这正是你错的地方。你有没有想过 "平均 "EA的结构?使EA成为个体的是策略条件(即进入/退出条件),其他都是标准代码。我创建专家顾问的方式,包括那些基于订单的专家顾问:我采取一个模板(例如,SAR,如果需要一个网络EA),并连接到它一个额外的库,在其中写一个新策略的条件(我重新创建它)。
我不想通过任何方式来检查它。更有甚者,毫无疑问,一切都写得非常得力。我只是不大明白所有的事情,所以我说我不认为如此。我看,我想...但我并不是什么都明白。这就是为什么我问。
P.S. 对于bs_symbol我还是不明白。
朋友们!我需要帮助来微调一个EA。
有一些代码可以在某些条件 下打开一个订单。条件的执行可以在每一个刻度上进行,因为它被放在int start() 的主体中。
我们需要。
1.在条件执行后(和订单开仓),暂停新订单的开仓,暂停n 个小节。例如,如果EA的时间框架是M30,我需要暂停3个小时,那么暂停应该是6个柱子。
2.这个程序应该在策略测试器中工作。
需要什么代码?以及什么地方才是合适的地方。
函数iBarShift()将帮助你。首先,你需要找出最后一次开单的时间,并把它传给这个函数,然后通过与某个数字(在你的例子中是6)相比较来监控这个函数返回的值。
让我们一起解决这个问题 )
我们将最后一次开单的时间传递给这个函数,并获得返回的数字。这大约是。
好的,我们得到了酒吧的号码。现在我们如何暂停打开6条的订单?
让我们一起解决这个问题 )
我们把最后一次开单的时间传给函数,得到的返回数字是大约。
好了,我们得到了酒吧的号码。现在我们如何暂停打开6条的订单?
这是一种文盲的做法。
但由于它与本案没有直接关系,我们只是不关注它。该计划看起来像这样。
在逻辑上没有明显的错误。一步一步地打印代码。交易程序与票据变量的价值相联系。首先,追踪其变化。还要注意全局变量 "TRADECONTEXT "的值 - 其值必须为0。
谢谢你!我就是什么都不懂(((,在这些代码中我就像一只盲目的小猫(((......
谢谢你!但我什么都不懂(((),在这些代码中我就像一只盲目的小猫((()......
每一个单独的库函数都是整体的一部分,每一个单独的库都是我整个复合库的一部分--没有这种意识,就不可能理解代码。
我正在努力理解它,我碰到了各种各样的细微差别。这就是为什么我问你,因为你最了解。你是作者...
而这正是你错的地方。你有没有想过 "普通 "专家顾问的结构?使EA成为个体的是它的策略条件(即进入/退出条件),其他都是标准代码。我创建专家顾问的方式,包括那些基于订单的专家顾问:我采取一个模板(例如,SAR,如果需要一个网络EA),并连接到它一个额外的库,在其中写一个新策略的条件(我重新创建它)。
我明白这一点。我只是不想复制整个图书馆。你明白,建立一个基础是比较方便的,有了这个基础,个人工作就会很方便。
要理解实施,你需要理解初始数据。创建库时,可以使用任何工具(外汇),并在单货币和多货币模式下工作,因此,引入了全局变量bs_symbol,其中包含当前符号的值。
而这个变量在哪里被明确设置,如果它不是一个秘密?:)我在库中看到b-PSI@Base.mqh,它只被声明。
bs_Symbol, // текущий инструмент
但事实上并没有什么进一步的内容。无论如何,当前工具的值默认是通过Symbol() 返回的。那么,为什么我们在这里需要一个变量呢?
这是一种文盲的做法。
但是,由于它与本案没有直接关系,我们只是不关注它。而这个模式看起来是这样的。
:)但如果像现在这样将其引入专家顾问,一切都会开始不正确地工作。
据我所知,这是由于这个条目。
怎么了?
我们的代码现在可以工作了。在我的版本中,它是这样工作的。
:)只是,如果像现在这样在EA中实施,一切都开始不正确地工作。
因为这个条目,我明白了。
怎么了?
我只是勾画了一个方案,而你的任务是思考进一步的逻辑。