初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1362 1...135513561357135813591360136113621363136413651366136713681369...1503 新评论 Aleksei Stepanenko 2021.10.17 16:32 #13611 而且你不能把这两个文件分开放在市场上。这就是政策。 Dmitriy VC 2021.10.17 16:39 #13612 Aleksei Stepanenko #:这里有一个指标。这里是专家。这里是所有东西都在一个文件中。 四是真的,但五也是真的。 你只编译了专家文件。 尝试填充指标,至少要有一个简单的图形对象,这样才能被专家顾问调用。然后,在编译后,重命名或删除Res_Ind.ex4,就像你只向市场发送专家顾问文件一样。客户将收到一份非功能性的方案。 Dmitriy VC 2021.10.17 16:39 #13613 Aleksei Stepanenko #: 而且你不能把这两个文件分开放在市场上。这就是政策。 这就是它的意义所在...... Alexey Viktorov 2021.10.17 16:54 #13614 Dmitriy VC #:你只编译了专家文件。尝试用至少简单的图形对象来填充指标,这样它就能被专家顾问调用。然后在编译后,重命名或删除Res_Ind.ex4,就像你只向市场发送了专家文件一样。客户将得到一个不工作的程序。 你不能这么固执......它说,由资源连接的指标包含在专家顾问的可执行文件中,所以它是。 但是,你的指标绘制了图形对象,而EA必须读取它们,这是一个大问题。图形对象只有在用可视化进行测试时才能使用,而自动监测器在没有它的情况下进行测试,所以它看不到对象的属性... Dmitriy VC 2021.10.17 18:18 #13615 Alexey Viktorov #:据说由资源连接的指标包含在EA的可执行文件中,所以是这样。 在一个单独的窗口中显示指标 //+------------------------------------------------------------------+ //| win.mq5 | //| Copyright 2021, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window #property indicator_plots 0 //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { IndicatorSetString(INDICATOR_SHORTNAME,"win"); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ 编译指标 --> win.ex5. 资源中具有指标的专家 //+------------------------------------------------------------------+ //| exp.mq5 | //| Copyright 2021, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #resource "\\Indicators\\win.ex5" char number = -1; int handle = INVALID_HANDLE; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if(number<0) { handle=iCustom(_Symbol,_Period,"win.ex5"); number=char(ChartGetInteger(0,CHART_WINDOWS_TOTAL)); if(handle!=INVALID_HANDLE) { ChartIndicatorAdd(0,number,handle); } } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- if(reason==REASON_REMOVE) { ChartIndicatorDelete(0,int(ChartWindowFind(0,"win")),"win"); } } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ 编译专家顾问 --> exp.ex5. 运行专家顾问,图表上有一个指标窗口。 在市场上发布一个专家顾问exp.ex5的文件(实际上是删除指标文件win.ex5)。 启动专家顾问,图表中没有指标窗口。 恢复被删除的文件win.ex5。 恢复专家顾问, 图表上有指标窗口。 结论:指标代码不包括在专家代码中。对于带有资源指标的专家顾问的正常操作,我们需要资源中指定的指标的可执行文件。 我重复我的问题。 当专家有自定义指标和库时,如何在市场上发布,也就是说,专家的正常工作需要一个以上的文件? 附加的文件: win.mq5 2 kb exp.mq5 4 kb Alexey Viktorov 2021.10.17 18:21 #13616 Dmitriy VC #:在一个单独的窗口中显示指标编译指标 --> win.ex5.资源中具有该指标的专家编译专家 --> exp.ex5。运行专家顾问,图表上有一个指标窗口。在市场上发布一个专家顾问exp.ex5的文件(实际上是删除指标文件win.ex5)。启动专家顾问,图表中没有指标窗口。 恢复被删除的文件win.ex5。恢复专家顾问, 图表上有指标窗口。 结论:指标代码不包括在专家代码中。对于带有资源指标的专家顾问的正常操作,我们需要资源中指定的指标的可执行文件。我重复我的问题。 当有一个带有自定义指标、库的专家顾问时,如何在市场上发布,即专家顾问的正常运行需要一个以上的文件? 有多少次给了你一个文件的链接?你妈妈不让你读? handle=iCustom(_Symbol,_Period,"win.ex5"); // Это делается не так!!!! 终于读到了... Dmitriy VC 2021.10.17 18:55 #13617 Alexey Viktorov #:有多少次给了你一个文件的链接?你妈妈不让你读?终于读到了... 阿列克谢,感谢你直接指出了这个错误。 我读了文件,但它 "不在我的视线之内"。 我向大家道歉--我错了。 我现在明白了。 Mikhail Toptunov 2021.10.17 19:34 #13618 你能给我一个提示吗? 在类中增加了条形计数(:RatesTotal(void))的计算,不知道如何正确融入结构。得到了这样的东西。能否请您告诉我如何使其更加丰富多彩。 #include <Arrays\ArrayObj.mqh> /********************************************************************\ | Класс Новый бар | \********************************************************************/ class CNewBar : public CObject { private: string m_symbol; ENUM_TIMEFRAMES m_timeframe; datetime m_time; long m_rt; datetime Time(void); long RatesTotal(void); string Symbol(void) { return this.m_symbol; } public: ENUM_TIMEFRAMES Timeframe(void) { return this.m_timeframe; } datetime GetTime(void) { return this.m_time; } // Возвращает время последнего обращения long GetRatesTotal(void) { return this.m_rt; } bool IsNewBar(void); // Основная функция класса CNewBar(const string symbol,const ENUM_TIMEFRAMES timeframe); ~CNewBar(void) {;} }; //+------------------------------------------------------------------+ //| Конструктор | //+------------------------------------------------------------------+ CNewBar::CNewBar(const string symbol,const ENUM_TIMEFRAMES timeframe) : m_time(0) { this.m_symbol = symbol; this.m_timeframe = (timeframe == PERIOD_CURRENT ? Period() : timeframe); } //+------------------------------------------------------------------+ //| Возвращает количество баров в истории | //+------------------------------------------------------------------+ long CNewBar::RatesTotal(void) { //---- получим количество баров long rt=SeriesInfoInteger(this.m_symbol, this.m_timeframe,SERIES_BARS_COUNT); //---- Проверка количества if(rt<1) Print("Error "+__FUNCTION__+" Не определенно кол-во баров ",this.m_symbol," ",this.m_timeframe); //---- return(rt); }; //+------------------------------------------------------------------+ //| CNewBar IsNewBar Основная функция класса | //+------------------------------------------------------------------+ bool CNewBar::IsNewBar(void) { m_rt=this.RatesTotal(); datetime tm=this.Time(); if(tm==0 || m_rt<1) return false; if(tm!=this.m_time) { this.m_time = tm; return true; } return false; } Aleksei Stepanenko 2021.10.17 21:04 #13619 Dmitriy VC #:现在都整理好了。 我没有,我不知道。完全没有问题 :) Mikhail Toptunov 2021.10.18 13:48 #13620 你能告诉我如何组织计算prev_calculated的类似物吗,我想不出来了。 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int CNewBar::PrevCalculated(void) { int pc=this.m_rt return(pc) } //+------------------------------------------------------------------+ //| CNewBar IsNewBar Основная функция класса | //+------------------------------------------------------------------+ bool CNewBar::IsNewBar(void) { datetime tm=this.Time(); if(tm==0 || m_rt<1) return false; if(tm!=this.m_time) { //--- определяем время this.m_time = tm; //--- определяем кол-во this.m_rt=this.RatesTotal(); return true; } return false; } 1...135513561357135813591360136113621363136413651366136713681369...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这里有一个指标。
这里是专家。
这里是所有东西都在一个文件中。
四是真的,但五也是真的。你只编译了专家文件。
尝试填充指标,至少要有一个简单的图形对象,这样才能被专家顾问调用。然后,在编译后,重命名或删除Res_Ind.ex4,就像你只向市场发送专家顾问文件一样。客户将收到一份非功能性的方案。
而且你不能把这两个文件分开放在市场上。这就是政策。
你只编译了专家文件。
尝试用至少简单的图形对象来填充指标,这样它就能被专家顾问调用。然后在编译后,重命名或删除Res_Ind.ex4,就像你只向市场发送了专家文件一样。客户将得到一个不工作的程序。
你不能这么固执......它说,由资源连接的指标包含在专家顾问的可执行文件中,所以它是。
但是,你的指标绘制了图形对象,而EA必须读取它们,这是一个大问题。图形对象只有在用可视化进行测试时才能使用,而自动监测器在没有它的情况下进行测试,所以它看不到对象的属性...
据说由资源连接的指标包含在EA的可执行文件中,所以是这样。
在一个单独的窗口中显示指标
编译指标 --> win.ex5.
资源中具有指标的专家
编译专家顾问 --> exp.ex5.
运行专家顾问,图表上有一个指标窗口。
在市场上发布一个专家顾问exp.ex5的文件(实际上是删除指标文件win.ex5)。
启动专家顾问,图表中没有指标窗口。
恢复被删除的文件win.ex5。
恢复专家顾问, 图表上有指标窗口。
结论:指标代码不包括在专家代码中。对于带有资源指标的专家顾问的正常操作,我们需要资源中指定的指标的可执行文件。
我重复我的问题。
当专家有自定义指标和库时,如何在市场上发布,也就是说,专家的正常工作需要一个以上的文件?
在一个单独的窗口中显示指标
编译指标 --> win.ex5.
资源中具有该指标的专家
编译专家 --> exp.ex5。
运行专家顾问,图表上有一个指标窗口。
在市场上发布一个专家顾问exp.ex5的文件(实际上是删除指标文件win.ex5)。
启动专家顾问,图表中没有指标窗口。
恢复被删除的文件win.ex5。
恢复专家顾问, 图表上有指标窗口。
结论:指标代码不包括在专家代码中。对于带有资源指标的专家顾问的正常操作,我们需要资源中指定的指标的可执行文件。
我重复我的问题。
当有一个带有自定义指标、库的专家顾问时,如何在市场上发布,即专家顾问的正常运行需要一个以上的文件?
有多少次给了你一个文件的链接?你妈妈不让你读?
终于读到了...
有多少次给了你一个文件的链接?你妈妈不让你读?
终于读到了...
阿列克谢,感谢你直接指出了这个错误。
我读了文件,但它 "不在我的视线之内"。
我向大家道歉--我错了。
我现在明白了。
你能给我一个提示吗?
在类中增加了条形计数(:RatesTotal(void))的计算,不知道如何正确融入结构。得到了这样的东西。能否请您告诉我如何使其更加丰富多彩。
现在都整理好了。
我没有,我不知道。完全没有问题 :)
你能告诉我如何组织计算prev_calculated的类似物吗,我想不出来了。