编码帮助 - 页 538

 

我曾在FF和MQL论坛上发过帖子,所以我想在这里试试我的运气。

在我开始之前,我想说的是,我绝不是一个程序员,勉强算是一个脚本小白。我已经设法将实时价格与时间戳存储在Excel中。有没有一种方法可以只在价格变动时存储?因为excel每秒钟都在存储,这意味着会有很多带时间戳的空位。

当我这样做的时候,有没有一种方法可以使每分钟过去时,它就跳到下一列并从那里开始存储?我使用xlsapp来编码。以下是代码。

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

//| Test1.mq4 |

//| Copyright 2015, MetaQuotes Software Corp.|

//|/|

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

#property copyright "Copyright 2015, MetaQuotes Software Corp."

#property link "https://www.mql5.com"

#属性版本 "1.00"

#property strict

#include

extern string StartBid= "C3";

外部字符串 StartAsk= "D3";

extern string StartSpread="F3";

Extern string StartTime="A3";

bool xlsgateok=false;

string StrBid;

string StrAsk;

string StrSpread;

string StrTime;

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

//| 专家初始化功能|

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

int OnInit()

{

StrBid=StartBid。

StrAsk=StartAsk;

StrSpread=StartSpread。

StrTime=StartTime。

如果(ExcelInit("mt4") && ExcelStart(""))

{

Print("XLSgate init done")。

xlsgateok=true。

Print("Office版本="+ExcelVersion())。

ExcelSheetAdd("MT4")。

}

//---

return(INIT_SUCCEEDED);

}

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

//| 专家去初始化功能|

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

void OnDeinit(const int reason)

{

//---

}

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

//| 专家勾选功能 |

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

double lastBid=0;

double lastAsk=0;

int lastSpread=0;

datetime time=0。

空白的OnTick()

{

//---

如果(xlsgateok && lastBid!=Bid)

ExcelSetValue(StrBid,Bid)。

lastBid=Bid。

StrBid=ExcelRowAdd(StrBid,1)。

如果(xlsgateok && lastAsk!=Ask)

ExcelSetValue(StrAsk,Ask)。

lastAsk=Ask。

StrAsk=ExcelRowAdd(StrAsk,1)。

ExcelSetValue(StrSpread,(Ask-Bid)/Point)。

StrSpread=ExcelRowAdd(StrSpread,1);

string s= TimeToStr(TimeCurrent())。

ExcelSetString(StrTime,s)。

StrTime=ExcelRowAdd(StrTime,1);

}

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

 
mladen:
henrykfx 它们永远不会是一样的,仅仅是因为你发布的指标是重新绘制的。它们不可能是一样的

Miaden,无论它是否重绘,请帮我一个忙,包括弹出的通知和声音警报,并允许我为它悲伤或高兴;毕竟一个人的毒药是另一个人的肉,而一个人的肉是另一个人的毒药。如果你能毫不费力地帮助别人,我不明白为什么我自己的情况应该是一个禁忌。请为我做这件事,即使这是你给我的圣诞礼物,我也会非常感激。你越是拖延,就越是剥夺了我的交易机会。

 
henrykfx:
Miaden,无论它是否重绘,请帮我一个忙,包括弹出的通知和声音警报,并允许我为此感到悲伤或高兴;毕竟一个人的毒药是另一个人的肉,而一个人的肉是另一个人的毒药。如果你能毫不费力地帮助别人,我不明白为什么我自己的情况应该是一个禁忌。请为我做这件事,即使这是你给我的圣诞礼物,我也会非常感激。你越是拖延,就越是剥夺了我的交易机会。

我不为重绘指标编写警报代码。例如,查看这个主题:https://www.mql5.com/en/forum/180648,看看我有多少次拒绝这样做,有多少次告诉我在信号/警报模式下使用重绘指标是非常危险的。因此,你不是一个例外,但你的要求对我来说是一个经验法则:我不想参与我认为对交易者来说危险的事情。

万事如意

 

最后的请求!

献给所有的编码员,但要特别感谢mladen。不仅因为他的编码,而且还因为他对我多年来提出的许多,有时是愚蠢的要求的病人。 谢谢你们,....,这真的是非常感谢。

我可以问你最后一件事吗?

你能不能在所附的 "高级ADX "指标的下限警报线上增加一个波浪警报功能

用户可以选择Wav声音?

只在上升的柱子上发挥作用。

如果一切顺利,我将在不久的将来发布我的系统,并公布结果。

附加的文件:
 
Jeeves:
感谢所有的编码人员,但要特别感谢mladen。不仅因为他的编码,而且还因为他对我多年来提出的许多,有时是愚蠢的要求的病人。 谢谢你们,....,真的很感谢你们,

我可以问你最后一件事吗?

你能不能在所附的 "高级ADX "指标的低位警报线上增加一个波浪警报功能?

用户可以选择Wav.声音?

只在上升的条形图上发挥作用。

如果一切顺利,我将在不久的将来公布我的系统和结果。

杰维斯

将会制作

 

你是我的朋友.....,我可以为你做任何事情,请联系我。

 
mrtools:
你好,Henrykfx,就像我之前说的,CROSS指标是一个重新绘制的EMA交叉指标,如果你去我提供的链接,下载该指标,并将MaType设置为EMA,快速Ma周期为5,慢速Ma周期为20,那么你将得到真正的EMA交叉值,在封闭的条形图上没有重新绘制的箭头,并且有警报。

好的mrtools,感谢你对我的困境的关注。现在我得到了我想要的东西,但问题是,它在下一栏中发出警报和弹出通知。

附加的文件:
 
mladen:
我没有为重复性指标编写警报代码。例如,查看这个主题:https://www.mql5.com/en/forum/180648,看看我有多少次拒绝这样做,有多少次告诉我在信号/警报模式下使用重绘指标是非常危险的。因此,你不是一个例外,但你的要求对我来说是一个经验法则:我不想参与我认为对交易者来说很危险的事情,一切顺利。

谢谢你的坦诚回答。 在我的不懈努力下,我得到了一个有用的方法,但它在新的条形图打开时发出警报和通知。你能帮助我修复这个错误,以便在有买入或卖出信号时发出警报和通知。谢谢你的时间。

附加的文件:
 
henrykfx:
谢谢你坦率的回答。 在我不懈的搜索中,我得到了一个很有用的指标,但它在新条形图打开时发出警报和通知。你能帮助我修复这个错误,以便在有买入或卖出信号时发出警报和通知。谢谢你的时间。

henrykfx

该指标也使用未来值(重绘)--它使用的逻辑与我们讨论的前一个指标完全相同。

万事如意

 
mladen:
henrykfx

该指标也使用未来值(重绘)--它使用的逻辑与我们讨论的前一个指标完全相同。

一切顺利

Mladen,你前几天说99%的指标不会重绘。你到处都在写 "重绘、重绘、重绘"