编码帮助 - 页 192

 

嗨,Mladen。

但它也有一个很大的弱点,那就是它只在蜡烛条收盘后计算信号或数值,当蜡烛仍在运行时,它不会改变任何信号或数值,但我只是使用了与之前发给你的CCI试验指标完全相同的计算公式,为什么会有如此不同的结果? 里面的代码做了什么,导致了这种差异?但我确实希望它能像你那样计算,能在蜡烛仍在运行时(而不是收盘后)即时计算出数值和信号,否则信号将至少滞后一个烛台。如果我想让它即时改变数值和信号,如何改进这个指标,非常感谢你的帮助。

 

编码员,你好。

你好mladen。

我在我的硬盘上发现了一个指标,当价格触及水平线时,会显示一个警报。我对它进行了一些修改,效果不错。但现在我想增加一些东西。经常会发生这样的情况,即没有触及确切的线,而价格却提前逆转了一些点。现在我可以在图表中画更多的线,或者我试图修改这个指标,当图表中的线被触及时,它不应该只显示警报,而是应该显示更高或更低的几个点。因此,当价格触及图表中的线+5点或线-5点时,该指标应显示警报。

我的想法是改变这条线。

if (High[0]>=line &&line>=Low[0]) 改为类似这样。

如果((High[0]>=line+0.0005 &&line+0.0005>=Low[0]) ||(if (High[0]>=line-0.0005 &&line-0.0005>=Low[0]))

很明显,这并不奏效。我不知道为什么... :-/

另一个问题是,这只对1.XXXX价格有效。我不能使用0.0005的日元对或指数CFDs。

如果有人能解决这个问题,我将非常高兴。

谢谢你!!

以下是代码。

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

//| LINE_ALERT.mq4 !

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

extern bool Notification=true;

extern bool displayAlert=true;

string Text;

#property indicator_chart_window

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

//|自定义指标初始化函数

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

int init()

{

//---- 指标

//----

return(0);

}

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

//|自定义指标去初始化功能|

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

int deinit()

{

//----

//----

return(0);

}

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

//|自定义指标迭代函数|

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

int start()

{

//----

如果(displayAlert==false)返回。

static datetime Time0;

if (Time0 == Time[0]) return; // 每个柱子有一个警报。

for(int iObj = ObjectsTotal() - 1; iObj >= 0; iObj--)

{

string name = ObjectName(iObj);

如果(ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1);

}

else continue; // Not HLINE

如果(High[0]>=line &&line>=Low[0])

{

Text = Symbol()+" M "+Period()+" touched S/R @ "+Close[0];

Alert(Text)。

Time0 = Time[0]; // 不再有警报。

if (Notification)SendNotification(Text);

}

}

//----

return(0);

}

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

 
Marbo:
编码员你好。

hello mladen,

我在我的硬盘上发现了一个指标,当价格触及水平线时,会显示一个警报。我对它进行了一些修改,效果不错。但现在我想增加一些东西。经常会发生这样的情况,即没有触及确切的线,而价格却提前逆转了一些点。现在我可以在图表中画更多的线,或者我试图修改这个指标,当图表中的线被触及时,它不应该只显示警报,而是应该显示更高或更低的几个点。因此,当价格触及图表中的线+5点或线-5点时,该指标应显示警报。

我的想法是改变这条线。

if (High[0]>=line &&line>=Low[0]) 改为类似这样。

如果((High[0]>=line+0.0005 &&line+0.0005>=Low[0]) ||(if (High[0]>=line-0.0005 &&line-0.0005>=Low[0]))

很明显,这并不奏效。我不知道为什么... :-/

另一个问题是,这只对1.XXXX价格有效。我不能使用0.0005的日元对或指数CFDs。

如果有人能解决这个问题,我将非常高兴。

谢谢你!!

以下是代码。

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

//| LINE_ALERT.mq4 !

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

extern bool Notification=true;

extern bool displayAlert=true;

string Text;

#property indicator_chart_window

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

//|自定义指标初始化函数

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

int init()

{

//---- 指标

//----

return(0);

}

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

//|自定义指标去初始化功能|

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

int deinit()

{

//----

//----

return(0);

}

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

//|自定义指标迭代函数|

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

int start()

{

//----

如果(displayAlert==false)返回。

static datetime Time0;

if (Time0 == Time[0]) return; // 每个柱子有一个警报。

for(int iObj = ObjectsTotal() - 1; iObj >= 0; iObj--)

{

string name = ObjectName(iObj);

如果(ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1);

}

else continue; // Not HLINE

如果(High[0]>=line &&line>=Low[0])

{

Text = Symbol()+" M "+Period()+" touched S/R @ "+Close[0];

Alert(Text)。

Time0 = Time[0]; // 不再有警报。

if (Notification) SendNotification(Text);

}

}

//----

return(0);

}

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

马博

你可以做一些像附件中的事情。你唯一应该修改的是,从一条线上的点位距离应该意味着什么(在高点或低点的情况下是+还是-)。

附加的文件:
 

很好!谢谢你!!

 
zilliq:
你好,Mrtool和Mladen。

你们谁能解释一下TSV看涨和看跌指标是如何构建的?我没有找到关于它的任何信息?

谢谢

Zilliq

Zilliq,这里有一个版本https://www.forex-tsd.com/forum/debates-discussions/116-something-interesting-please-post-here/page299#comment_679505,有源代码。

 
cwu:
如果我输入0,这是否意味着没有SL或TP? 再次感谢。

Cwu。

是的,它应该是。

 

伙计们

我一直在检查 TSV看涨和看跌,我发现最古老的是2007年的。如果这就是公式,那么它只不过是江恩高位低位激活器的一个有点不同的形式(本质--计算--是相同的)。

 

谢谢大家。

我这周末会去看看,我会把我掌握的TSV看跌/看涨的情况公布出来。

我是法国的兽医,明天要工作,所以我将在周日 检查。

我已经编写了一个江恩高点和低点的代码,特别是有一个平滑的版本,所以它必须是简单的。

祝你周末愉快,谢谢大家

Zilliq

 

姆拉登

我还有一个关于直线警报指标的问题。目前,它是用水平线 工作的。我也试图通过使用OBJ_TREND来实现趋势线,但有一个问题我不明白。我几个月前在另一个论坛上看到,趋势线的起点和终点必须被确定。你能给我一些关于如何做到这一点的信息吗?还是说这比我想象的要难得多?

最好的问候。

马博

 
Marbo:
Mladen,

我还有一个关于直线警报指标的问题。目前,它是以水平线工作的。我也试图通过使用OBJ_TREND来实现趋势线,但有一个问题我不明白。我几个月前在另一个论坛上看到,趋势线的起点和终点必须被确定。你能给我一些关于如何做到这一点的信息吗?还是说这比我想象的要难得多?

最好的问候。

马博

马博

你实际上不需要知道起点和终点。你可以用不同的方式检索这些值(使用ObjectGetValueByShift()函数,如果它在趋势线之外寻找价格,将返回价格0)。你可以在这个帖子中找到一个如何做的例子:https://www.mql5.com/en/forum/177603/page3