[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 181

 

大家好!


我的问题是来自一个新手。

我有一个指标,在图表上显示来自外部文件的数据。以下是我的问题。

1.如何打开标准文件选择对话框

2.如何绕过对代码中的文件可以被打开的文件夹的限制(专家/文件)?

3.如何在图表上做一个控件,可以点击它来禁用脚本。主要问题是如何制作一个EA,例如某种按钮或其他东西,通过它与用户互动)?


谢谢!

 

向书呆子解释一下错误是什么!

我在Finam demo上做了一个简单的脚本,显示Alert(BId)价格;

,一切正常,但由于某些原因,价格显示为小数点后4位,尽管欧元兑美元 的报价为小数点后5位。IMA也是用4位小数计算,而不是5位。

我做错了什么,请指教 ????

 
Onesto:

向书呆子解释一下错误是什么!

我在Finam demo上做了一个简单的脚本,显示Alert(BId)价格;

,一切正常,但由于某些原因,价格显示为小数点后4位,尽管欧元兑美元的报价为小数点后5位。IMA也是用4位小数计算,而不是5位。

请告诉我我做错了什么 ????

你所做的都是正确的,但终端会打印出4位小数,在打印前将双数 转换为字符串,并加上正确的小数位。

Alert(DoubleToStr(Bid,Digits))。

 
sanderz:

大家好!


我的问题是来自一个新手。

我有一个指标,在图表上显示来自外部文件的数据。以下是我的问题。

1.如何打开标准文件选择对话框?

2.如何绕过对代码中的文件可以被打开的文件夹的限制(专家/文件)?

3.如何在图表上做一个控件,可以点击它来禁用脚本。主要问题是如何制作一个EA,例如某种按钮或其他东西,通过它与用户互动)?


谢谢!

1-2.标准是什么?尽管在任何情况下,对于前两个问题,你将需要使用WinAPI和/或外部DLL

3.直接从脚本中制作一个图形元素,在循环中跟踪它的坐标,当你拖动它时,脚本将暂停或卸载。

最简单的方法是查看源代码,代码库中充满了可视化的小工具。

 
尊敬的论坛成员,您能帮助 从Quicksilver输出一个 所有交易的表格 到excel,这样它就可以在线更新,这样我就可以改变显示行数。我已经试过了,但整个表都显示出来了,没有更新。
 
splxgf:

1-2.哪一个是标准的?但无论如何,前两个问题将需要WinAPI和/或外部DLL。

3.直接从脚本中制作一个图形元素,在循环中跟踪它的坐标,当你拖动它时,脚本将暂停或卸载。

最简单的方法是看一下源代码,代码库中有很多视觉上的噱头。

谢谢。
 
splxgf:

你做的一切都对,但终端有一个老习惯,就是输出4位小数,先把双数转换成字符串,再输出正确的数字。

Alert(DoubleToStr(Bid,Digits))。


谢谢你,我现在明白了。

而在专家顾问机构中计算时,数据是5位还是4位?

 
Onesto:


谢谢你,现在我明白了。

而在EA主体中计算时,数据是用5还是用4?

计算时采用正常的数字,用Alert(Bid*100000)来检查。
 

亲爱的,我又有一个问题。

double hc=(iHigh(NULL,0,1)-iClose(NULL,0,1))。
double cl=(iClose(NULL,0,1)-iLow(NULL,0,1))。

如果((iClose(NULL,0,1)<iOpen(NULL,0,1))&&(hc>cl))

pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,Ask+100*Point,"",0,0,CLR_NONE) 。


有一个问题:每1分钟开仓17-40次,尽管我在15分钟的图表上测试。而订单应该是每15分钟开一次,不超过一次。只有这样,前一根蜡烛的收盘价低于其开盘价的条件才会得到满足。

为什么会这样呢?

 
NaVolne:

亲爱的,我又有一个问题。

如果((iClose(NULL,15,1)<iOpen(NULL,15,1))&&(hc>cl))

pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,Ask+100*Point,"",0,0,CLR_NONE) 。


有一个问题:每1分钟开仓17-40次,尽管我在15分钟的图表上测试。而且我认为一个订单的开启频率不应超过每15分钟一次。只有这样,前一根蜡烛的收盘价低于其开盘价的条件才会得到满足。

为什么会这样呢?


我假设订单必须每15分钟打开一次,在开始的时候

变量声明

double OpenBar=0; 

 

int start()
   {
    //Проверка на начало нового бара
    double CurOpenBar=iOpen(NULL,PERIOD_M15,0);  
    if (OpenBar==CurOpenBar) {return;} else {OpenBar=CurOpenBar;}
    //ваш код
   }


诸如此类的东西...

但是你的条件在每个tick上都得到满足,所以订单在每个tick上打开...