编码帮助 - 页 406

 
elfural:
亲爱的mrtools和mladen

有人能提供帮助吗?Tom Demark移动平均线是我的策略中的一个关键指标,然而,当出现新的架子时,警报会非常有用;如果警报能编入指标,我将非常感激。期待您的帮助。

非常感谢

Elfural,在你发布的版本中添加了一个警报,并想向你展示一个由Mladen修正的版本,你可能会对这里感兴趣 https://www.mql5.com/en/forum/178551/page2,以防万一,在该版本中也添加了警报。

 

嗨,伙计们。

我需要对这个指标的编码提供帮助。它是一个伟大的指标,尽管它延迟了4-5根蜡烛。请帮助我。

grail_indic.ex4

附加的文件:
 
mrtools:
Elfural,在你发布的版本中添加了一个警报,并想向你展示一个由Mladen修正的版本,你可能会对这里感兴趣 https://www.mql5.com/en/forum/178551/page2,以防在该版本中也添加警报。

现在它完全满足了我的需要。

非常感谢你的巨大帮助。

 

每个信号1次交易。嗨,MQL的亲们。

我想知道是否有人能帮助我。我想在我的EA中实施 "每个信号一个交易"。

到我的EA中。如果EA达到了它的利润目标,很可能EA会在相同的趋势方向上开出

在同一趋势方向上的另一笔交易。这可能会导致亏损的交易,因为

信号即将改变(请见所附屏幕截图)。

对我来说,实现 "每个信号一个交易 "功能 的最佳方式是什么?

当然,我可以提高利润目标,以防止EA开出另一笔交易。

但这可能不是最好的方法。

我曾试图实现这个功能,但是, 代码在编译时出现了警告。

" 检查运算符的优先级,可能出现错误;使用括号来澄清优先级"

什么是实现这一功能的最佳方法?谢谢你的建议!

extern int maxshorttrades = 1;

extern int maxlongtrades = 1;

//+--------------------------+

//| ORDER Logic / Indicators |

//+--------------------------+

如果(openOrders<=0)

{

double CCIFilter = iCCI(NULL,0,CCIPeriod,CCIMethod,0);

double trendc = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);

double trendp = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);

//+-----+

//|买入 |

//+-----+

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_BUY<maxlongtrades) break; // Check Position and Longtrades.

{

如果(trendc!=trendp)

{

if(trendc==1 && CCIFilter<-80) // 买入的代码

OpenBuy()。

返回(0)。

}

openedOrders++;

}

//+------+

//| SELL |

//+------+

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_SELL<maxshorttrades) break; // Check Position and Shorttrades.

{

if(trendc==-1 && CCIFilter>80) //卖出的代码

{

OpenSell()。

return(0);

}

openedOrders++;

}

}

//+-----------------+

//|平仓 |

//+-----------------+

空白的CheckForClose()

{

RefreshRates()。

double CCIFilter_c = iCCI(NULL,0,CCIPeriod,CCIMethod,0);

double trendc_c = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);

double trendp_c = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);

for(int i=0;i<OrdersTotal(); i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

如果(OrderMagicNumber()!= MAGIC)继续。

if(OrderSymbol() != s_symbol) continue;

//+-----------+

//| 收盘买入 |

//+-----------+

如果(trendc_c!=trendp_c) // 检查趋势

{

如果(OrderType()==OP_BUY)

{

if(trendc_c==-1 && CCIFilter_c>80) // SELL 和 CCI 滤波器?

{

bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clcloseBuy)。

如果(buyClose==false)

{

int ErrorCode = GetLastError();

string ErrDesc = ErrorDescription(ErrorCode);

string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode,": ",ErrDesc);

如果(ShowAlerts == true) Alert(ErrAlert);

string ErrLog=StringConcatenate("Bid:",MarketInfo(s_symbol,MODE_BID)," Lots:",OrderLots()," Ticket:",OrderTicket())。

打印(ErrLog)。

}

break; }

}

}

附加的文件:
signal1.jpg  19 kb
 

你好!

谁能在线性价格线指标方面帮帮我?我想做一个改变的版本,将高点从低点中减去。如果低点大于高点,或者如果高点与开盘价相同,从而为零(因为没有高点),那么输出应该是一个负值(指标中的线应该射在0.00水平之下),现在无论蜡烛图的高点部分是否大于蜡烛图的低点部分,它都是一个正数。

下面是正常版本和有问题的差异指标。linear_price_bar.zip

linear_price_bartestdiff.mq4

谢谢你

附加的文件:
 
tfi_markets:

每个信号1次交易。嗨,MQL的专业编码人员,

我想知道是否有人可以帮助我。我想

在我的EA中

实施 "每个信号一个交易"

。如果EA达到了它的盈利目标,很可能EA

在相同的趋势方向

开启

另一笔交易。这可能会导致亏损的交易,因为

信号即将改变(请见所附的屏幕截图)。

什么是我实现 "每个信号一个交易 "功能的最佳方式?

当然,

我可以提高利润目标,以防止EA开启另一个交易,

但这可能不是最好的方式。

我已经尝试实现这个功能,但是,

代码编译后给出一个警告:

" 检查运算符的优先级,可能出现错误;使用括号来澄清优先级"

什么是实现这一功能的最佳方式?谢谢你的建议。

试试这个。

bool Result;

int openedOrders = 0;

for (i=OrdersTotal()-1; i>=0; i--)

{

Result = OrderSelect(i, SELECT_BY_POS,MODE_TRADES);

if (OrderSymbol() != Symbol()) continue;

if (OrderMagicNumber() != MagicNumber) continue;

openedOrders++;

}

if (openedOrders <= 0)

{ .....

 
mrcodix:
你好!

谁能在线性价格线指标方面帮帮我?我想做一个改变的版本,将高点从低点中减去。如果低点大于高点,或者如果高点与openprice相同,因而为零(因为没有高点),那么输出应该是一个负值(指标中的线应该射在0.00水平之下),现在无论蜡烛图的高点部分是否大于蜡烛图的低点部分,它都是一个正数。

下面是正常版本和有问题的差异指标。linear_price_bar.zip

linear_price_bartestdiff.mq4

谢谢你

mrcodix

低点永远不会大于同一棒的高点

 

是的,我明白,但我想在我的指标中绘制的是高开和低开之间的差值。如果低开的绝对数大于高开的绝对数,那么我希望这两者之间的差值为负数,这样它就会被绘制在零线之下。因此,当后者大于前者时,我如何使(高-开)-(低-开)的输出为负数。

问好

 

我现在试了一下

for(i=0; i<Bars; i++)

{

BarH = 高开。

BarL = Low-Open;

BarC = Close-Open;

if(BarC>0) UpDays += 1;

else if(BarC<0) DownDays +=1;

else if(BarC==0) NeutralDays +=1;

如果(BarL>BarH)ExtMapBuffer7=0-(BarH-BarL)。

否则如果(BarL < BarH) ExtMapBuffer7 =(BarH-BarL)。

但输出仍然是一个正数!请帮助。

 
mrcodix:
是的,我明白,但我想在我的指标中绘制的是HIGH to OPEN和LOW to OPEN之间的差异。如果低点到开盘的绝对数大于高点到开盘的绝对数,那么我希望这两者之间的差值是负数,这样它就会被绘制在零线之下。那么,当后者大于前者时,我如何使(高-开)-(低-开)的输出为负数。 好心的提醒

不知道你想做什么。也许是这样?

附加的文件: