初学者的问题 MQL5 MT5 MetaTrader 5 - 页 75

 
mario065:

已经写了一个函数来打开它。

'=' - l-value required 

它给出了一个错误。

是否

 if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
      {
if(SL = 0 && T_P = 0)
{
  ModifyPosition(_Symbol,NormalizeDouble((Open - 0.003),Digits()),NormalizeDouble((Open + 0.003),Digits()));
}

и

if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
    {
    if(!PositionGetDouble(POSITION_SL))
      {
      PositionModify(_Symbol,NormalizeDouble((Open-STR),Digits()),NormalizeDouble((Open+TP),Digits()));
      }

不是一回事吗?

我想在这两种情况下,止损都是设置在新条的开始,而不是Tick。

我不能在开单时发送止损和止盈 - 因为服务器不允许。你必须先打开订单,之后再进行修改。

 
Lester:

它给出了一个错误。

是否

и

不是一回事吗?

我想在这两种情况下,止损都是在一个新的Bar开始时提出的,而不是Tick。

我不能在开单时发送StopLoss和TakeProfit - 因为服务器不允许这样做。我必须先打开订单,然后再修改它。

if(SL == 0 && T_P == 0)

对不起,我需要两个等号--我没有检查,我直接写的。

 

控件

NewTick 事件只在专家顾问 收到一个符号的新tick时 产生 ,该符号 与专家顾问所在的图表相连 在自定义指标或脚本中定义OnTick()函数是没用的,因为不会为它们生成Tick事件。

Tick事件只为Expert Advisors产生,但这并不意味着Expert Advisors必须有OnTick()函数,因为不仅Tick事件为Expert Advisors产生,而且Timer、BookEvent和ChartEvent也是如此。必须以 void类型声明 ,没有参数

空白OnTick

这当然是来自文件。

这不是同样的事情吗?

 

好吧,对于asc和bid来说,还有其他的方法可以做。

MqlTick  tick;
tick.ask-tick.bid
 
mario065:

好吧,对于asc和bid来说,还有其他的方法可以做。

О!这句话很管用!谢谢你!))))
 
FinEngineer: 这条线上有任何MQL5的开发者吗!?也许我在错误的分支中问了一个问题?那么请告诉我如何向开发者提出问题?问题在上面,对于一个有经验的程序员来说,这是很基本的问题...

而且你知道你的代码运行良好。这是你的默认值的图片,在一个交叉对上。

 
Yedelkin:

而且你知道你的代码运行良好。这是你的默认值的图片,在交叉对上。

2012.12.21 23:44:46 Pair_delta_RSI (EURGBP,M5) array out of range in 'Pair_delta_RSI.mq5' (96,37)
2012.12.21 23:44:42 Pair_delta_RSI (EURGBP,M5) RSI1_Handle的所有数据没有被计算出来(-1bars )。错误4806

我一把指标贴到图表上就会出现这些错误(我也拿了十字架和这个代码)。可能出了什么问题?提前感谢。


 
FinEngineer 2012.12.21 23:44:46 Pair_delta_RSI (EURGBP,M5) array out of range in 'Pair_delta_RSI.mq5'(96,37)

请告诉我终端所指的代码行(我自己已经删除了空行,所以我看不出来)。

FinEngineer : 2012.12.21 23:44:42 Pair_delta_RSI (EURGBP,M5) RSI1_Handle的所有数据都没有计算(-1bars )。错误4806

也许经纪人的历史是错误的...试着在MetaQuotes-Demo上开一个账户,打开所需符号的月度图表(将足够的历史记录注入终端底座),然后在一个任意的符号和所需的时间框架上运行该指标。

 
Yedelkin:

并告诉我编译器所指的那行代码(我自己已经删除了空白行,所以我想不出来)。

也许经纪人的历史是扭曲的...试着在MetaQuotes-Demo上开一个账户,打开所需符号的月度图表(将足够的历史记录注入终端数据库),然后在一个任意的符号和所需的时间框架上运行该指标。

我加载了两个符号的历史,只有一个错误仍然存在 2012.12.22 00:56:44 Pair_delta_RSI (EURGBP,M1) 没有计算RSI1_Handle的所有数据(-1bars )。错误4806

这个错误不是在编译时发生的,而是在我将指标附加到图表上或改变时间框架时发生的。

编译时,会出现一些警告,这里就是。没有为指标定义指标图,默认分配为1 0 0

伙计,我正在绞尽脑汁......请帮助我......



 
FinEngineer: 编译时出现了一些警告,在这里。没有为指标定义指标图,默认分配为1 0 0

所以你不顾这个警告而下载该节目?在顶部添加这一行

#property indicator_plots   1