if(Maximum>0 && Flag) {
signal = Maximum - Bid;
if (signal > 0.005 ) { // к примеру если ниже максимума на 12 пунктов, в этом случае откроем SELL
Opn_S = true;
tickett= Opn_S;
t=Time[0];
if(tickett>=0) Flag=false;// Ордер открылся, сегодня больше не открываем.
}
}
if(tickett>=0)
{
double stop = iHigh(Symbol(),Period(),0) - iHigh(Symbol(),Period(),1);
if (stop > 0.0012)
{
if (Time[0]>t)
{
Cls_S=true;
tickett=-1;
}
}
}
卖出停止工作。
它是有效的,但它是循环的。
#define magic 123456789
StartHour=14;
StartMinute=1;// Время 08:01
StopHour=16;
StopMinute=30; // Время 23:58
StartTime=StartHour*60+StartMinute;
StopTime=StopHour*60+StopMinute;
staticint tickett=-1;
staticdouble Maximum=-1;
staticdatetime t;
if(StopTime<=StartTime) {Print("ERROR: Неправильные времена"); return(0);}
CurrentMinutesFromDayStart=Hour()*60+Minute();// Текущее время в минутах от начала дняdatetime td=iTime(Symbol(),PERIOD_D1,0);// Время открытия дневного бара в секундах от 01.01.1970if(CurrentMinutesFromDayStart<StartTime) {Maximum=-1;Flag=true;}// Если StartTime еще не настало, то после StopTime нужно пересчитать Maximum и можно открывать ордерif(CurrentMinutesFromDayStart>StopTime && Maximum<0) {// если максимум ещё не посчитанdatetime ts=td+StartTime*60;// начало временного диапазона в секундах от 01.01.1970
start= iBarShift(Symbol(),PERIOD_M1,ts,false);// смещение бара, которому принадлежит ts
ts=td+StopTime*60;// конец временного диапазона в секундах от 01.01.1970
count= iBarShift(Symbol(),PERIOD_M1,ts,false);// смещение бара, которому принадлежит ts
count=start-count;// Сколко баров длится временной интервал
Maximum=iHigh(Symbol(),PERIOD_M1,iHighest(Symbol(),PERIOD_M1,MODE_HIGH,count,start));//Находим максимум на заданном временном интервале
}
if(Maximum>0 && Flag) {
signal = Maximum - Bid;
if (signal > 0.005 ) { // к примеру если ниже максимума на 12 пунктов, в этом случае откроем SELL
Opn_S = true;
tickett= Opn_S;
if(tickett>=0) Flag=false;// Ордер открылся, сегодня больше не открываем.
}
}
if(tickett>=0)
{
double stop = iHigh(Symbol(),Period(),0) - iHigh(Symbol(),Period(),1);
if (stop > 0.0012)
{
Cls_S=true;
tickett=-1;
}
}
你 能告诉我是否有办法在订单上设置默认评论?
什么样的"秩序"?它是用来做什么的?哪里需要评论,为什么需要评论?
我有东西在一个简单的点上,一个头痛的问题。有一个搜索订单的功能。
t - 所有订单的计数器。
p - 待处理订单的计数器。
我从一开始就叫它。
事实上,当我们打开它时,即使没有订单,我们也会看到这样的情况(即使没有订单,也会打印成有订单的样子...)。
这怎么可能呢?
你有没有想过,订单的类型也可以超过五个?具体来说是六个。这是一个非交易性的存款变化。
就这样吧...
你有没有想过,订单的类型也可以超过五个?具体来说是六个。这是一个非交易性的存款变化。
不,这是我第一次听说。它在哪里说的?
存款=6型
嗯,订单类型=存款!?那是什么?
就这样吧...
你有没有想过,订单的类型也可以超过五个?具体来说是六个。这是一个非交易性的存款变化。
而为什么是6,因为订单的 大小或数量 可以在专家顾问中独立设置。
嗯,订单类型=存款!?这是什么?
所有的提款和存款都在这个数字之下
而为什么是6,因为订单的大小或数量可以写进EA。
我们在谈论什么?我们不是在谈论订单的数量,而是在谈论订单的类型。所以:6型的订单是对存款的非交易性修改。
不,这是我第一次听说。它在哪里说的?
这是无记载的数据。
所有提款和存款都在这个数字之下。
嗯,这个数字又怎么会影响到订单统计的收集?
这是无记载的数据。
那很好啊!最有趣的是有人知道这件事,很奇怪。怎么会有人猜到呢?
我们在谈论什么?这不是关于订单的数量,而是关于订单的类型。所以:第6种类型的订单是一种非交易性的存款变更。
如果在演示中测试了猫头鹰,这个顺序怎么算?也就是说,最初在演示中给出的余额--它将是......所追求的一个?而在现实中--这就是我们所提取和存放的东西,对吗?
这应该是可行的,我还没有亲自测试,因为到目前为止,终端正忙于优化另一个EA。
你好!
我试着把你的代码粘贴到教程中的模板上。我必须只开一个位置,但模板只有一个位置。
票据变量有另一个名字,因为模板已经有了一个,并使其成为静态的,所以如果头寸在第二天仍然存在,提款的标准将从它那里接收数据。
一切都很好,但出现了一个循环的问题。例如,在策略测试器中,专家顾问在获利或收盘 时退出头寸 卖出,而进入的标准仍然是活跃的,所以事实证明,EA不断地开仓和平仓。
这个问题早先是通过添加一个静态日期时间变量t来解决的,但现在
卖出停止工作。
它是有效的,但它是循环的。
问题可能是什么?我尝试了我能想到的所有方法,但我不太擅长mql 。
我把专家顾问附在后面,不可能把所有的文字都放进去。