int i,orders_total=OrdersTotal();
bool order_on_last_bar=false;
if(orders_total>0) //если есть ордера
{
for(i=orders_total-1;i>=0;i--) //перебираем их все
{
OrderSelect(i,SELECT_BY_POS);
if(iBarShift(OrderOpenTime())==0) //если номер бара, соответствующего сремени открытия, равен 0
order_on_last_bar=true; //фиксируем этот факт
}
}
if(order_on_last_bar==false) // на нулевом баре нет открытых ордеров
{
//делаем то что нам нужно
}
int start()
{
int
Total, // Количество ордеров в окне
...
// Учёт ордеров
Symb=Symbol(); // Название фин.инстр.
Total=0; // Количество ордеровfor(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:if (OrderSymbol()!=Symb)continue; // Не наш фин. инструмif (OrderType()>1) // Попался отложенный
{
Alert("Обнаружен отложенный ордер. Эксперт не работает.");
return; // Выход из start()
}
Total++; // Счётчик рыночн. ордif (Total>1) // Не более одного орд
{
Alert("Несколько рыночных ордеров. Эксперт не работает.");
return; // Выход из start()
}
Ticket=OrderTicket(); // Номер выбранн. орд.
Tip =OrderType(); // Тип выбранного орд.
Price =OrderOpenPrice(); // Цена выбранн. орд.
SL =OrderStopLoss(); // SL выбранного орд.
TP =OrderTakeProfit(); // TP выбранного орд.
Lot =OrderLots(); // Количество лотов
}
}
脚本与EA没有区别...。
有时,脚本使用# 属性show_inputs,来显示一个带有参数的对话框,就像在EA中一样(它理所当然地存在),但很难区分......
你能否建议一种算法...我们需要在低位时间段找到高位时间段和低位时间段的时间。
你能否建议一种算法...你需要在低位时间段找到高位时间段和低位时间段的时间。
记住或立即使用i--找到的索引。
而iTime(NULL,TF2,i)将是时间。
没能坚持到早上。情况稍有好转,但顺序开花摆放的情况无法避免。我怎样才能在所需的条件下设置一个单一的订单?你提到:不,那是行不通的。 只有通过分析订单历史--我们应该如何做,或者还有什么合适的?
像这样
我以前问过这个问题,但现在我又需要这个问题,以计算开仓的最大成交量。我是这样写的。
但Max_lots一直等于0...我不知道,也许有人知道更多关于这种东西的计算能力?
像这样
我填写了所有的iBarShift函数 值(之前的编译导致了错误),上面已经声明了int i。 为了实验,我试着删除这个重放,用j代替,但是没有成功--我在一些柱子上得到了多个订单的打开/关闭。下面是带有开放条件的代码,也许我弄错了什么。我们还能做什么?
我填充了所有的iBarShift函数值(之前的编译导致了错误),上面已经声明了int i;我试着删除这个重放,用j代替它来做清洁实验;这没有用--我在一些柱子上得到了多个订单的开仓/平仓。下面是带有开放条件的代码,也许我弄错了什么。我们还能做什么?
1.什么是 "总数 "变量,它的值分配在哪里?
2.最好把else放在第二个if(Total==0 if(
1.什么是 "总数 "变量,其数值分配在哪里?
这是基于《简单专家:https://book.mql4.com/ru/samples/expert》一文中的例子。
alsu:
2.在第二个if(Total==0)之前,最好加上else if(.
它没有帮助。阿尔苏, 抱歉打扰了你,但我真的想搞清楚(把它结束)。
没什么大不了的。
尝试提交/* */简单EA中的一段代码,并将Total替换为orders_total--一个我们自己声明的变量。