文章 "如何在"应用商店"中发布产品" - 页 46

 
Evgenii Sidorov:

#属性 indicator_separate_window

#属性 indicator_chart_window

以及如何为不同的缓冲区指定 2 种不同的显示方式?

ObjectCreate 可以帮助您。使用对象绘图。

 
Artyom Trishkin:

您无需检查冻结水平 - 如果价格过于接近止损水平,则无法修改止损。冻结距离由冻结水平决定。

这里修改的不是止损,而是已完成的交易,还是我说错了?

 
Vladimir Khlystov:

不是停止被更改,而是事务被关闭,还是我说错了?

如果操作被冻结,就无法关闭。
 

你们好

希望一切顺利。

我刚刚创建了一个 EA,请问在 mql 市场上许可它的最佳方式是什么?我想提交这个 EA 在市场上销售,但如果没有必要,我不想添加错误类型的许可。你们有什么建议?

 
MOTIONCAPITAL:

你们好

希望一切顺利。

我刚刚创建了一个 EA,请问在 mql 市场上许可它的最佳方式是什么?我想提交这个 EA 在市场上销售,但如果没有必要,我不想添加错误类型的许可。你们有什么建议?

在 MQL5 市场上只有一种提供/授权方式,请阅读规则:

https://www.mql5.com/zh/market/rules

 
Aleksei Andarzhanov:
我用 MQL4 编写了一个智能交易系统。我想将其投入市场。该智能交易系统需要两个自定义指标,但终端中没有这两个指标。我不知道如何在发送 Expert Advisor 进行测试之前将它们附加到 Expert Advisor 上。还有一件事。规则规定智能交易系统必须是 ex5。如果它是用 MQL4 编写的,如何用ex5 制作

如果您问这样的问题,现在去市场还为时过早。

 
Evgeniy Zhdan:

如果你问这样的问题,那你还太年轻了。

我想出来了。通过 #resource 将指标 附加到智能交易系统。有一件事。在此之前,Expert Advisor 运行速度很快,在测试器中也很快,但现在速度降低了十倍。我已经按照《指南》中所写的规则做了一切,我还插入了一个函数来查找指标的路径 GetRelativeProgramPath() - 但速度很龟速,一天测试 5 分钟....。

 
Aleksei Andarzhanov:

找到了。通过 #resource 将指标 附加到智能交易系统。但有一点...在此之前,Expert Advisor 运行速度很快,在测试器中也很快,但现在速度降低了十倍。我已经按照《指南》中所写的规则做了所有事情,并插入了一个函数来查找指标的路径 GetRelativeProgramPath() - 但速度很龟速,一天测试 5 分钟....。

指标数据是否每隔一个刻度就轮询一次?

 
Denis Nikolaev:

指标数据是否在每一个"√"中轮询?

是的。代码中的一切都和以前一样。只有指标的位置发生了变化。以前是从 \Indicators 终端请求,现在是从 ex4 程序本身请求。

#resource "\Indicators\\\\##Contrast.ex4"

///////////

string path=GetRelativeProgramPath();

path=path+"::Indicators\##Contrast.ex4";

ContrastMain_15 =NormalizeDouble(iCustom(NULL,15,path,coeff_1,0,0),Digits);

ContrastSignal_15 =NormalizeDouble(iCustom(NULL,15,path,coeff_1,1,0),Digits);

//////////

字符串 GetRelativeProgramPath()

{

int pos2;

//--- 获取程序的绝对路径

string path=MQLInfoString(MQL_PROGRAM_PATH);

//--- 查找子串"\MQL4\"的位置

int pos =StringFind(path,"\M\MQL4\\\\");

//--- 未找到子串--错误

if(pos<0)

return(NULL);

//--- 跳过 "\MQL4" 目录

pos+=5;

//-- 跳过不必要的 "(\'

while(StringGetCharacter(path,pos+1)=='\\')

pos++;

//--- 如果是资源,返回相对于 MQL4 目录的路径

if(StringFind(path,":::",pos)>=0)

return(StringSubstr(path,pos));

//--- 查找 MQL4 中第一个子目录的分隔符(例如 MQL4\Indicators)

//--- 如果没有,返回相对于 MQL4 目录的路径

if((pos2=StringFind(path,"\\",pos+1))<0)

return(StringSubstr(path,pos));

//--- 返回相对于子目录的路径(例如,MQL4\Indicators)

return(StringSubstr(path,pos2+1))

}

 
Aleksei Andarzhanov:

是的,代码中的所有内容都和以前一样。只有指标的位置发生了变化。以前是通过 \\Indicators 的终端请求,现在是通过 ex4 程序本身请求。

#resource "\Indicators\\\\##Contrast.ex4"

///////////

string path=GetRelativeProgramPath();

path=path+"::Indicators\\##Contrast.ex4";

ContrastMain_15 =NormalizeDouble(iCustom(NULL,15,path,coeff_1,0,0),Digits);

ContrastSignal_15 =NormalizeDouble(iCustom(NULL,15,path,coeff_1,1,0),Digits);

//////////

字符串 GetRelativeProgramPath()

{

int pos2;

//--- 获取程序的绝对路径

string path=MQLInfoString(MQL_PROGRAM_PATH);

//--- 查找子串"\MQL4\"的位置

int pos =StringFind(path,"\MQL4\\");

//--- 未找到子串 - 错误

if(pos<0)

返回(NULL);

//--- 跳过 "\MQL4" 目录

pos+=5;

//--- 跳过不必要的 "(\'

while(StringGetCharacter(path,pos+1)=='\\')

pos++;

//--- 如果是资源,返回相对于 MQL4 目录的路径

if(StringFind(path,":::",pos)>=0)

return(StringSubstr(path,pos));

//--- 查找 MQL4 中第一个子目录的分隔符(例如 MQL4\Indicators)

//--- 如果没有这样的分隔符,返回相对于 MQL4 目录的路径

if((pos2=StringFind(path,"\\",pos+1))<0)

return(StringSubstr(path,pos));

//--- 返回相对于子目录的路径(例如,MQL4/Indicators)

return(StringSubstr(path,pos2+1));

}

真是一团糟
在 iCustom() 中,你应该替换这样的路径:
"::Indicators\\\\##Contrast.ex4"。