如何编码? - 页 263

 

是否可以向上和向下拖动一条线......?

你好。

是否可以在一个单独的指标窗口中手动移动(即 "拖动")水平线(或 "有效 "水平线),并将新的设置值更新到使用这些指标启动和退出交易的EA中?

我读到有一些拖放脚本,可以移动线,但不知道是否有可能在EA中加入/拼接这种脚本。

 
 
yourspace:

也许这是对的,你可以试试。

double upper_red = iCustom(NULL,0, "DDM",Nmbr_Bars,Order,Ecart,3,0) 。

这并不能改变什么,但无论如何,坦克会有反应。

也许有人知道一个类似的指标?

编辑:我已经解决了这个问题,指标 "i-Regr H&L "几乎是一样的,这个指标的画法很正常。

 

报价保存器

你好。

我想把实际的tick数据保存到一个csv文件中。每个星期或每个月我都想保存一个csv文件。

因此,在我的初始函数中,我将打开一个新的文件,每一个tick我都做一个

FileWrite(handle_tick,TimeToStr(CurTime(),TIME_DATE|TIME_MINUTES|TIME_SECONDS),Bid,Ask)。

现在我有几个问题/疑问。

1.

当写进文件时出现问题,EA就会停止该洞(周/月),并且不能再次打开它。

-我是否必须每隔一段时间就写FileOpen(...)?或者我应该使用FileFlush(...)?

2.

2. 保存的时间也有问题。如果我把它与图表时间或历史中心的时间进行比较,会有很大的差异(不是静态的,有时是39分钟,或87分钟)。

我是否必须保存CurTime或什么时间?

3.

我的网络连接有一些中断(例如2-5分钟,一天大约3次)。

我怎样才能自动检查我保存的报价,以便EA从历史中获取缺少的分钟数据?

如果网络连接中断,我怎样才能得到我的tick数据?是否也有一个历史中心或最后几个小时的缓冲区?

4.

有谁知道有什么简单的方法可以自动合并单一的csv-quote文件吗?

5.

我还想保存像Ger30那样的cfd的tick和minute数据!如果我每月保存.csv文件,但每3个月的新合同在当月有变化。那么EA就找不到数据,因为实际的标的("July "合约不再有效,但现在是9月合约)不再起作用。

也许已经有一个可靠的EA来解决这个问题?

 

在每次FileWrite之后,你应该做一次文件刷新,以确保每次写完后数据都被写入磁盘。 如果不使用刷新,文件系统会将写入的数据存储在内存缓冲区,然后将缓冲区中的所有记录写入磁盘以提高效率。 这可能是你丢失记录的原因;Ea停止了,你丢失了内存记录。文件刷新将把每条记录写到磁盘上,速度较慢,但能保证你拥有所有记录。 通过文件刷新,你可以在EA运行时用Excel打开文件,以只读模式检查。

在deinit函数 中,检查你的文件柄是否>0,然后关闭文件。

这将自动刷新内存缓冲区。

在打开过程中,有一些选项可以在磁盘上创建一个新的文件或追加到一个现有的文件。 听起来你应该使用追加到一个现有文件的方法。 这将自动解决你的文件合并问题。 你可以在一个单独的Excel实例中打开每个CSV文件并进行剪切和粘贴,也可以使用记事本。在Excel中,你可以将合并后的文件保存为CSV格式,或者将Excel作为数据库,以XLSX格式存储合并后的信息。或者你可以从MS获得VB express,它是免费的,学习VB,用这种语言写一个文件合并。

最好的选择是搜索其他的保存蜱虫的例子。

干杯

 

我还有一个问题。

6.

将买入价、卖出价和成交量保存在我的勾选文件中是否有用?

7.

有没有人有教程,如何用metatrader 4或/和5回测tickdata?

是否有专家可以帮助我?你也可以通过私人信息 回答...

谢谢您!

朱莉娅

 

尤其是差价合约是怎么回事?他们每三个月就会更换一次合同!那么,我怎样才能在我的tick-saver.mq4中编程,使标的物的变化自动发生,而我不会损失任何ticks?

 

大家好,我需要帮助在多个图表上使用1个EA!

我的问题的摘要。

我有一个EA,每次只下一个订单,使用变量total = OrdersTotal() 。只有当这1个订单被关闭时,新的订单才会打开。

我如何修改它,使两个不同的货币对 都有1个未结订单,而同一货币对却有2个未结订单?

我需要的是允许我这样做的代码行。

放置1个订单(例如,神奇的12345),如果还没有一个特定的神奇的订单开放。

或者,如果没有同一订单符号的订单,则下1个订单。

--------------------------

我的问题的较长版本。

我最近修改了一个简单的EA,基于10和5SMA线交叉时下单。

它在我的欧元兑美元图表上运行良好,而且每次只下一个订单,无论是买还是卖,因为我有这几行代码。

total = OrdersTotal();

如果(total < 1)

--那么它就下一个订单

然而,当我创建了一个重复的EA并将其应用于EURJPY图表时,我不得不将代码改为

total = OrdersTotal();

if(total < 2)

--这样,如果在欧元兑美元图表上已经有一个订单,它就会下一个订单。

问题是,当欧元兑美元订单关闭时,第二个欧元兑日元订单被允许打开,欧元兑美元EA不会下一个新订单,因为已经有一个欧元兑日元订单打开。

我给了不同的货币对单独的神奇数字。我在我的欧元兑美元图表上开了一个订单,魔法号码是22341,我试着为我的欧元兑日元图表使用一个新的变量。

tott = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。

如果(OrderMagicNumber() == 22341)//22341是欧元兑美元订单的神奇数字

total = OrdersTotal();

如果(total < 2 && tott == true)

--那么,欧元兑日元的订单就会被下达。

但让EA独立运行会变得很复杂......特别是如果我添加第三个货币对USDJPY,我想让我的EA在上面运行。

感谢任何帮助!

编辑。

我决定使用神奇的数字。

总数=0。

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

{

if(OrderSelect(i, SELECT_BY_POS)==true)

{

如果(OrderMagicNumber()==12341)

总数++。

}

}

{

if(total < 1)

--那么将进行一次交易

 

回溯测试 滴答数据

Sunshineh,

"7.有谁有教程如何用metatrader 4或/和5回测tickdata?"

一个旧的版本--我想是208--是最后一个可以做tick数据的版本。 它被张贴在某个地方,首先搜索TSD。

如果你解决了这些问题,我也想使用它。 我还知道有一个主题,在那里这个问题得到了可接受的解决,尽管它可能不在TSD上。

大贝

 

如何让EA意识到前一个柱子已经收于BB之上?

大家好。

我想让EA记录下一个条形图在布林线外收盘时的情况,然后在前一个条形图发生这种情况时启动交易

和ema的交叉或什么的。到目前为止,我的代码是这样的。

int bar, sll;

if( Close[0] > bollingerband ){

bar = Bars;}

如果( bar+1 == Bars){

如果( ema1>ema2){

sll = 1}

如果( bar+2 == Bars ){

bar = 0;}

不幸的是,这似乎并不奏效,我还试着把它变成一个静态变量和一个全局变量。所以如果有人能给我指出正确的方向,我将非常感激。

谢谢。

萨佩尔