编码帮助 - 页 248 1...241242243244245246247248249250251252253254255...786 新评论 olvus 2014.03.20 06:10 #2471 你好,朋友们。这是Thinkorswim的动态动量指数指标。是否 可以将其改写为metatrader 4?或者有人有这样的指标用于MT4? 声明 lower;输入 price = close;输入 stdevLength = 5;输入 avgOfStdevLength = 10;输入 DYMILength = 30;输入 DYMILengthLowerLimit = 3;输入 DYMILengthUpperLimit = 30;assert(DYMILengthLowerLimit > 0, " ' dymi lengthlower limit' must be positive:" + DYMILengthLowerLimit);assert(DYMILength在DYMILengthLowerLimit和DYMILengthUpperLimit之间,"'dymi长度'必须在下限和上限之间。" + DYMILength);def std = stdev(price, stdevLength);def ratio = std / Average(std, avgOfStdevLength);def dynamicLength = Floor(DYMILength / ratio);def limitedLength = 如果 dynamicLength 在 DYMILengthLowerLimit 和 DYMILengthUpperLimit 之间则 dynamicLength 否则 0;def sf = 2 / (limitedLength + 1); def bn = Max(barNumber(), 0) 。# 10^-5精度的EMA乘数def expIndex = if limitedLength == 0 then 1 else max(1, bn - ceil(-5 / lg(1 - sf));def fromIndex = if isNan(expIndex) then 1 else expIndex;def chg = 价格 - 价格[1];def absChg = AbsValue(chg);def netChgAvg = fold indexN = fromIndex to bn + 1 with accuN do sf * (if isnan(getValue(chg, bn - indexN) then 0 else getValue(chg, bn - indexN))+ (1 - sf) * accuN;def totChgAvg = fold indexT = fromIndex to bn + 1 with accuT do sf * (if isnan(getValue(absChg, bn - indexT))then 0 else getValue(absChg, bn - indexT)+ (1 - sf) * accuT;def RSI = if totChgAvg != 0 and limitedLength != 0 then 50 * (netChgAvg / totChgAvg + 1) else RSI[1];plot DYMI = RSI;plot OverBought = 90;plot OverSold = 10;DYMI.DefineColor("OverBought", GetColor(5)) ; DYMI.DefineColor("Normal", GetColor(7));DYMI.DefineColor("OverSold", GetColor(1));DYMI.AssignValueColor(if RSI > overbought then DYMI.Color("OverBought") else if RSI =OverBought, "OverBought", Alert.BAR, Sound.ring); Alert(DYMI=OverBought then high*72 else double。nan;DotDn.setStyle(curve.POINTS);DotDn.setPaintingStrategy(paintingStrategy.arROW_DOWN);DotDn.setLineWeight(3);DotDn.setDefaultColor(color.wHITE); plot DotUp = if DYMI<=OverSold then low*-2 else double.nan;Dotup.setStyle(curve.POINTS)Dotup.setPaintingStrategy(paintingStrategy.arROW_UP);Dotup.setLineWeight(3);Dotup.setDefaultColor(color.wHITE);alert(Dotup, "Scalper Buy Signal", Alert.BAR, Sound.ring);alert(DotDn, "Scalper Buy Signal", Alert.BAR, Sound.ring)。 附加的文件: image_4.jpg 392 kb Coding help Cat Fx 50 exit Big Expert Advisor example Mladen Rakic 2014.03.20 11:13 #2472 olvus: 你好,朋友。这是Thinkorswim的动态动量指数指标。有没有可能 把它改写成metatrader 4?或者有人有这样的指标用于MT4?声明 lower;输入 price = close;输入 stdevLength = 5;输入 avgOfStdevLength = 10;输入 DYMILength = 30;输入 DYMILengthLowerLimit = 3;输入 DYMILengthUpperLimit = 30;assert(DYMILengthLowerLimit > 0, " ' dymi length lower limit' must be positive:" + DYMILengthLowerLimit);assert(DYMILength在DYMILengthLowerLimit和DYMILengthUpperLimit之间,"'dymi长度'必须在下限和上限之间。" + DYMILength);def std = stdev(price, stdevLength);def ratio = std / Average(std, avgOfStdevLength);def dynamicLength = Floor(DYMILength / ratio);def limitedLength = 如果 dynamicLength 在 DYMILengthLowerLimit 和 DYMILengthUpperLimit 之间则 dynamicLength 否则 0;def sf = 2 / (limitedLength + 1); def bn = Max(barNumber(), 0) 。# 10^-5精度的EMA乘数def expIndex = if limitedLength == 0 then 1 else max(1, bn - ceil(-5 / lg(1 - sf));def fromIndex = if isNan(expIndex) then 1 else expIndex;def chg = 价格 - 价格[1];def absChg = AbsValue(chg);def netChgAvg = fold indexN = fromIndex to bn + 1 with accuN do sf * (if isnan(getValue(chg, bn - indexN) then 0 else getValue(chg, bn - indexN))+ (1 - sf) * accuN;def totChgAvg = fold indexT = fromIndex to bn + 1 with accuT do sf * (if isnan(getValue(absChg, bn - indexT))then 0 else getValue(absChg, bn - indexT)+ (1 - sf) * accuT;def RSI = if totChgAvg != 0 and limitedLength != 0 then 50 * (netChgAvg / totChgAvg + 1) else RSI[1];plot DYMI = RSI;plot OverBought = 90;plot OverSold = 10;DYMI.DefineColor("OverBought", GetColor(5)) ; DYMI.DefineColor("Normal", GetColor(7));DYMI.DefineColor("OverSold", GetColor(1));DYMI.AssignValueColor(if RSI > overbought then DYMI.Color("OverBought") else if RSI =OverBought, "OverBought", Alert.BAR, Sound.ring); Alert(DYMI=OverBought then high*72 else double。nan;DotDn.setStyle(curve.POINTS);DotDn.setPaintingStrategy(paintingStrategy.arROW_DOWN);DotDn.setLineWeight(3);DotDn.setDefaultColor(color.wHITE); plot DotUp = if DYMI<=OverSold then low*-2 else double.nan;Dotup.setStyle(curve.POINTS)Dotup.setPaintingStrategy(paintingStrategy.arROW_UP);Dotup.setLineWeight(3);Dotup.setDefaultColor(color.wHITE);alert(Dotup, "Scalper Buy Signal", Alert.BAR, Sound.ring);alert(DotDn, "Scalper Buy Signal", Alert.BAR, Sound.ring)。 olvus, 请看这个帖子:https://www.mql5.com/en/forum/172919/page4。也许这有帮助 Stefano 2014.03.21 09:56 #2473 嗨,mladen,我想问你,....,你有可能把这个程序翻译成MT4吗? 无论如何,谢谢你。 这是其他语言的程序://var: domanda(0), offerta(0), var1(0), var2(0), indzona1; // var1= ((H/C[1])-1)*V; // var2= ((L/C[1]-1)*V*(-1); // domanda= MOV(var1,450,S); // offerta= MOV(var2,450,S); // indzona1= CreateWiewport(100); // PlotChart(domanda, indzona1, green, solid, 1); // PlotChart(offerta, indzona1, red, solid, 1);这是我为MT4语言所做的工作,但在最新的更新后,它不再工作了。 #属性 indicator_separate_window #属性 indicator_buffers 2 #属性 indicator_color1 绿色 #属性 indicator_color2 红色 #属性 indicator_width1 1 #属性 Indicator_width2 1 外部int periodo=128; 双倍DOMANDA[]。 double OFFERTA[]; //+------------------------------------------------------------------+ //|自定义指标 初始化函数| //+------------------------------------------------------------------+ int init() { IndicatorDigits(6); IndicatorBuffers(2); SetIndexBuffer(0,DOMANDA); SetIndexBuffer(1,OFFERTA); return(0); } //+------------------------------------------------------------------+ //|自定义指标去初始化函数| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|自定义指标迭代函数| //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted()。 int limit = Bars - counted_bars; double var_dom[10000]; double var_off[10000]; ArraySetAsSeries(var_dom,true)。 ArraySetAsSeries(var_off,true)。 for(int i=0; i<limit; i++) { var_dom = ((High/Close)-1)*Volume; var_off = ((Low/Close)-1)*Volume * (-1); DOMANDA = iMAOnArray(var_dom,0,periodo,0,MODE_SMA,i)。 OFFERTA = iMAOnArray(var_off,0,periodo,0,MODE_SMA,i); } return(0); }//+------------------------------------------------------------------+ Coding help ICustom函数 艾略特波 Mladen Rakic 2014.03.21 10:04 #2474 Stephan73:你好mladen,我想请教一下....,你有没有可能把这个程序翻译成MT4的?总之,谢谢你。 这是其他语言的程序://var: domanda(0), offerta(0), var1(0), var2(0), indzona1; // var1= ((H/C[1])-1)*V; // var2= ((L/C[1]-1)*V*(-1); // domanda= MOV(var1,450,S); // offerta= MOV(var2,450,S); // indzona1= CreateWiewport(100); // PlotChart(domanda, indzona1, green, solid, 1); // PlotChart(offerta, indzona1, red, solid, 1);这是我为MT4语言所做的工作,但在最新的更新后,它不再工作了。 #属性 indicator_separate_window #属性 indicator_buffers 2 #属性 indicator_color1 绿色 #属性 indicator_color2 红色 #属性 indicator_width1 1 #属性 Indicator_width2 1 外部int periodo=128; 双倍DOMANDA[]。 double OFFERTA[]; //+------------------------------------------------------------------+ //|自定义指标初始化函数| //+------------------------------------------------------------------+ int init() { IndicatorDigits(6); IndicatorBuffers(2); SetIndexBuffer(0,DOMANDA); SetIndexBuffer(1,OFFERTA); return(0); } //+------------------------------------------------------------------+ //|自定义指标去初始化函数| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|自定义指标迭代函数| //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted()。 int limit = Bars - counted_bars; double var_dom[10000]; double var_off[10000]; ArraySetAsSeries(var_dom,true)。 ArraySetAsSeries(var_off,true)。 for(int i=0; i<limit; i++) { var_dom = ((High/Close)-1)*Volume; var_off = ((Low/Close)-1)*Volume * (-1); DOMANDA = iMAOnArray(var_dom,0,periodo,0,MODE_SMA,i)。 OFFERTA = iMAOnArray(var_off,0,periodo,0,MODE_SMA,i); } return(0); }//+------------------------------------------------------------------+ 斯蒂芬 给你。 附加的文件: _stephan.mq4 2 kb stephan.gif 61 kb Stefano 2014.03.21 10:53 #2475 mladen: Stephan 给你。 是的,完美的!!!!。 olvus 2014.03.21 11:26 #2476 mladen先生,是否可以将thinkorswim指标改写为metatrader 4指标(2474号帖子)? hermes 2014.03.21 12:10 #2477 大家好。 假设我有一个循环所有市场订单的函数,并使用lastTicket()选择最后一个订单,然后我使用ot = orderopentime().我如何获得ot的值,以便我可以在程序的任何其他函数中使用ot的值。 void checko() { if (ot>presetdatetime) { closeorder()。 } } Mladen Rakic 2014.03.21 12:30 #2478 hermes: 大家好。假设我有一个循环所有市场订单并使用lastTicket()选择最后一个订单的函数,然后我使用ot = orderopentime()。 void checko() { if (ot>presetdatetime) { closeorder()。 } } hermes 一个问题:你说的最后一张订单票 是指最大的(通常是最新的订单)还是最小的(通常是最旧的订单)? hermes 2014.03.21 15:56 #2479 mladen: hermes 一个问题:你说的最后一张票是指最大的(通常是最新的顺序)还是最小的(通常是最旧的顺序)? 谢谢Mladen,我指的是最大的,也就是最新的订单。 Mladen Rakic 2014.03.21 16:25 #2480 hermes: 谢谢Mladen,我的意思是最大的,也就是最新的订单。 那么你可以使用像这样的一个函数。 void deleteGreatestTicketOrder(datetime timeLimit) { int largestTicketNo = -1; for (int i=OrdersTotal()-1; i>=0; i--) { if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; largestTicketNo = MathMax(largestTicketNo,OrderTicket()); } // // // // // if (largestTicketNo>-1 ) { if (OrderSelect(largestTicketNo,SELECT_BY_TICKET,MODE_TRADES)) if (OrderOpenTime()>timeLimit) OrderDelete(largestTicketNo); } } PS:它不会对符号或最终的神奇数字进行区分。如果你也需要对这些进行检查,那么需要在上述函数中添加一些额外的代码。 1...241242243244245246247248249250251252253254255...786 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好,朋友们。这是Thinkorswim的动态动量指数指标。是否 可以将其改写为metatrader 4?或者有人有这样的指标用于MT4?
声明 lower;输入 price = close;输入 stdevLength = 5;输入 avgOfStdevLength = 10;输入 DYMILength = 30;输入 DYMILengthLowerLimit = 3;输入 DYMILengthUpperLimit = 30;assert(DYMILengthLowerLimit > 0, " ' dymi lengthlower limit' must be positive:" + DYMILengthLowerLimit);assert(DYMILength在DYMILengthLowerLimit和DYMILengthUpperLimit之间,"'dymi长度'必须在下限和上限之间。" + DYMILength);def std = stdev(price, stdevLength);def ratio = std / Average(std, avgOfStdevLength);def dynamicLength = Floor(DYMILength / ratio);def limitedLength = 如果 dynamicLength 在 DYMILengthLowerLimit 和 DYMILengthUpperLimit 之间则 dynamicLength 否则 0;def sf = 2 / (limitedLength + 1); def bn = Max(barNumber(), 0) 。# 10^-5精度的EMA乘数def expIndex = if limitedLength == 0 then 1 else max(1, bn - ceil(-5 / lg(1 - sf));def fromIndex = if isNan(expIndex) then 1 else expIndex;def chg = 价格 - 价格[1];def absChg = AbsValue(chg);def netChgAvg = fold indexN = fromIndex to bn + 1 with accuN do sf * (if isnan(getValue(chg, bn - indexN) then 0 else getValue(chg, bn - indexN))+ (1 - sf) * accuN;def totChgAvg = fold indexT = fromIndex to bn + 1 with accuT do sf * (if isnan(getValue(absChg, bn - indexT))then 0 else getValue(absChg, bn - indexT)+ (1 - sf) * accuT;def RSI = if totChgAvg != 0 and limitedLength != 0 then 50 * (netChgAvg / totChgAvg + 1) else RSI[1];plot DYMI = RSI;plot OverBought = 90;plot OverSold = 10;DYMI.DefineColor("OverBought", GetColor(5)) ; DYMI.DefineColor("Normal", GetColor(7));DYMI.DefineColor("OverSold", GetColor(1));DYMI.AssignValueColor(if RSI > overbought then DYMI.Color("OverBought") else if RSI =OverBought, "OverBought", Alert.BAR, Sound.ring); Alert(DYMI=OverBought then high*72 else double。nan;DotDn.setStyle(curve.POINTS);DotDn.setPaintingStrategy(paintingStrategy.arROW_DOWN);DotDn.setLineWeight(3);DotDn.setDefaultColor(color.wHITE); plot DotUp = if DYMI<=OverSold then low*-2 else double.nan;Dotup.setStyle(curve.POINTS)Dotup.setPaintingStrategy(paintingStrategy.arROW_UP);Dotup.setLineWeight(3);Dotup.setDefaultColor(color.wHITE);alert(Dotup, "Scalper Buy Signal", Alert.BAR, Sound.ring);alert(DotDn, "Scalper Buy Signal", Alert.BAR, Sound.ring)。
你好,朋友。这是Thinkorswim的动态动量指数指标。有没有可能 把它改写成metatrader 4?或者有人有这样的指标用于MT4?
声明 lower;输入 price = close;输入 stdevLength = 5;输入 avgOfStdevLength = 10;输入 DYMILength = 30;输入 DYMILengthLowerLimit = 3;输入 DYMILengthUpperLimit = 30;assert(DYMILengthLowerLimit > 0, " ' dymi length lower limit' must be positive:" + DYMILengthLowerLimit);assert(DYMILength在DYMILengthLowerLimit和DYMILengthUpperLimit之间,"'dymi长度'必须在下限和上限之间。" + DYMILength);def std = stdev(price, stdevLength);def ratio = std / Average(std, avgOfStdevLength);def dynamicLength = Floor(DYMILength / ratio);def limitedLength = 如果 dynamicLength 在 DYMILengthLowerLimit 和 DYMILengthUpperLimit 之间则 dynamicLength 否则 0;def sf = 2 / (limitedLength + 1); def bn = Max(barNumber(), 0) 。# 10^-5精度的EMA乘数def expIndex = if limitedLength == 0 then 1 else max(1, bn - ceil(-5 / lg(1 - sf));def fromIndex = if isNan(expIndex) then 1 else expIndex;def chg = 价格 - 价格[1];def absChg = AbsValue(chg);def netChgAvg = fold indexN = fromIndex to bn + 1 with accuN do sf * (if isnan(getValue(chg, bn - indexN) then 0 else getValue(chg, bn - indexN))+ (1 - sf) * accuN;def totChgAvg = fold indexT = fromIndex to bn + 1 with accuT do sf * (if isnan(getValue(absChg, bn - indexT))then 0 else getValue(absChg, bn - indexT)+ (1 - sf) * accuT;def RSI = if totChgAvg != 0 and limitedLength != 0 then 50 * (netChgAvg / totChgAvg + 1) else RSI[1];plot DYMI = RSI;plot OverBought = 90;plot OverSold = 10;DYMI.DefineColor("OverBought", GetColor(5)) ; DYMI.DefineColor("Normal", GetColor(7));DYMI.DefineColor("OverSold", GetColor(1));DYMI.AssignValueColor(if RSI > overbought then DYMI.Color("OverBought") else if RSI =OverBought, "OverBought", Alert.BAR, Sound.ring); Alert(DYMI=OverBought then high*72 else double。nan;DotDn.setStyle(curve.POINTS);DotDn.setPaintingStrategy(paintingStrategy.arROW_DOWN);DotDn.setLineWeight(3);DotDn.setDefaultColor(color.wHITE); plot DotUp = if DYMI<=OverSold then low*-2 else double.nan;Dotup.setStyle(curve.POINTS)Dotup.setPaintingStrategy(paintingStrategy.arROW_UP);Dotup.setLineWeight(3);Dotup.setDefaultColor(color.wHITE);alert(Dotup, "Scalper Buy Signal", Alert.BAR, Sound.ring);alert(DotDn, "Scalper Buy Signal", Alert.BAR, Sound.ring)。
olvus,
请看这个帖子:https://www.mql5.com/en/forum/172919/page4。也许这有帮助
嗨,mladen,我想问你,....,你有可能把这个程序翻译成MT4吗?
无论如何,谢谢你。
这是其他语言的程序://var: domanda(0), offerta(0), var1(0), var2(0), indzona1;
// var1= ((H/C[1])-1)*V;
// var2= ((L/C[1]-1)*V*(-1);
// domanda= MOV(var1,450,S);
// offerta= MOV(var2,450,S);
// indzona1= CreateWiewport(100);
// PlotChart(domanda, indzona1, green, solid, 1);
// PlotChart(offerta, indzona1, red, solid, 1);这是我为MT4语言所做的工作,但在最新的更新后,它不再工作了。
#属性 indicator_separate_window
#属性 indicator_buffers 2
#属性 indicator_color1 绿色
#属性 indicator_color2 红色
#属性 indicator_width1 1
#属性 Indicator_width2 1
外部int periodo=128;
双倍DOMANDA[]。
double OFFERTA[];
//+------------------------------------------------------------------+
//|自定义指标 初始化函数|
//+------------------------------------------------------------------+
int init()
{
IndicatorDigits(6);
IndicatorBuffers(2);
SetIndexBuffer(0,DOMANDA);
SetIndexBuffer(1,OFFERTA);
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标去初始化函数|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted()。
int limit = Bars - counted_bars;
double var_dom[10000];
double var_off[10000];
ArraySetAsSeries(var_dom,true)。
ArraySetAsSeries(var_off,true)。
for(int i=0; i<limit; i++)
{
var_dom = ((High/Close)-1)*Volume;
var_off = ((Low/Close)-1)*Volume * (-1);
DOMANDA = iMAOnArray(var_dom,0,periodo,0,MODE_SMA,i)。
OFFERTA = iMAOnArray(var_off,0,periodo,0,MODE_SMA,i);
}
return(0);
}//+------------------------------------------------------------------+
你好mladen,我想请教一下....,你有没有可能把这个程序翻译成MT4的?
总之,谢谢你。
这是其他语言的程序://var: domanda(0), offerta(0), var1(0), var2(0), indzona1;
// var1= ((H/C[1])-1)*V;
// var2= ((L/C[1]-1)*V*(-1);
// domanda= MOV(var1,450,S);
// offerta= MOV(var2,450,S);
// indzona1= CreateWiewport(100);
// PlotChart(domanda, indzona1, green, solid, 1);
// PlotChart(offerta, indzona1, red, solid, 1);这是我为MT4语言所做的工作,但在最新的更新后,它不再工作了。
#属性 indicator_separate_window
#属性 indicator_buffers 2
#属性 indicator_color1 绿色
#属性 indicator_color2 红色
#属性 indicator_width1 1
#属性 Indicator_width2 1
外部int periodo=128;
双倍DOMANDA[]。
double OFFERTA[];
//+------------------------------------------------------------------+
//|自定义指标初始化函数|
//+------------------------------------------------------------------+
int init()
{
IndicatorDigits(6);
IndicatorBuffers(2);
SetIndexBuffer(0,DOMANDA);
SetIndexBuffer(1,OFFERTA);
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标去初始化函数|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted()。
int limit = Bars - counted_bars;
double var_dom[10000];
double var_off[10000];
ArraySetAsSeries(var_dom,true)。
ArraySetAsSeries(var_off,true)。
for(int i=0; i<limit; i++)
{
var_dom = ((High/Close)-1)*Volume;
var_off = ((Low/Close)-1)*Volume * (-1);
DOMANDA = iMAOnArray(var_dom,0,periodo,0,MODE_SMA,i)。
OFFERTA = iMAOnArray(var_off,0,periodo,0,MODE_SMA,i);
}
return(0);
}//+------------------------------------------------------------------+斯蒂芬
给你。
Stephan 给你。
是的,完美的!!!!。![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)
mladen先生,是否可以将thinkorswim指标改写为metatrader 4指标(2474号帖子)?
大家好。
假设我有一个循环所有市场订单的函数,并使用lastTicket()选择最后一个订单,然后我使用ot = orderopentime().我如何获得ot的值,以便我可以在程序的任何其他函数中使用ot的值。
void checko()
{
if (ot>presetdatetime)
{
closeorder()。
}
}
大家好。
假设我有一个循环所有市场订单并使用lastTicket()选择最后一个订单的函数,然后我使用ot = orderopentime()。
void checko()
{
if (ot>presetdatetime)
{
closeorder()。
}
}hermes
一个问题:你说的最后一张订单票 是指最大的(通常是最新的订单)还是最小的(通常是最旧的订单)?
hermes 一个问题:你说的最后一张票是指最大的(通常是最新的顺序)还是最小的(通常是最旧的顺序)?
谢谢Mladen,我指的是最大的,也就是最新的订单。
谢谢Mladen,我的意思是最大的,也就是最新的订单。
那么你可以使用像这样的一个函数。
{
int largestTicketNo = -1;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
largestTicketNo = MathMax(largestTicketNo,OrderTicket());
}
//
//
//
//
//
if (largestTicketNo>-1 )
{
if (OrderSelect(largestTicketNo,SELECT_BY_TICKET,MODE_TRADES))
if (OrderOpenTime()>timeLimit)
OrderDelete(largestTicketNo);
}
}PS:它不会对符号或最终的神奇数字进行区分。如果你也需要对这些进行检查,那么需要在上述函数中添加一些额外的代码。