程序库: TradeTransactions - 页 3 12345678 新评论 fxsaber 2018.11.14 20:08 #21 nicholi shen:感谢您的赞赏。我是在这个论坛上学会编程的。我发表我的作品是因为它有纪律性。我用我的描述作为线索,因为我很快就会忘记我写了什么和怎么写的。我为我的编码风格道歉,但这是为我自己准备的。发表它也是一种副作用。遗憾的是,我们无法评估已发表作品的受欢迎程度。如果有人使用它们,那么用户圈子就会非常狭窄。 增加用户数量--没有这样的目标。 Nauris Zukas 2018.11.20 14:50 #22 我无法获取数据,在这里我运行了一个脚本,据我所知,数据现在存储在终端的某个地方: #include <fxsaber\TradeTransactions\ResourceData.mqh> //https://www.mql5.com/zh/code/22166 //+------------------------------------------------------------------+ //| 脚本程序启动功能| //+------------------------------------------------------------------+ void OnStart() { const RESOURCEDATA<int>ResourceINT("::int"); // 用于交换 ints 的资源。const - 证明没有向类对象写入任何内容 int ArrayINT[]={1,2,3}; ResourceINT=ArrayINT; // 资源存储一个数组。 int ArrayINT2[]; ResourceINT.Get(ArrayINT2); // 从资源中读取数据。 ArrayPrint(ArrayINT2); // 撤回: 1 2 3 5 1 2 3 } //+------------------------------------------------------------------+在这里,我运行另一个脚本来获取运行第一个脚本时保存的数据,但数据没有显示出来: #include <fxsaber\TradeTransactions\ResourceData.mqh> //https://www.mql5.com/zh/code/22166 //+------------------------------------------------------------------+ //| 脚本程序启动功能| //+------------------------------------------------------------------+ void OnStart() { //--- // 这是要从另一个程序访问的资源的全名 //const string NameOut=StringSubstr(MQLInfoString(MQL_PROGRAM_PATH),StringLen(TerminalInfoString(TERMINAL_PATH))+5)+"::Ticks"; const string NameOut=StringSubstr(MQLInfoString(MQL_PROGRAM_PATH),StringLen(TerminalInfoString(TERMINAL_PATH))+5,9)+"Test_Keep_Info.ex5::Ticks"; Print(NameOut); // 打印资源的全名。 const RESOURCEDATA<int>Resource(NameOut); // 从另一个程序访问数据(只读)的资源 int ArrayINT2[]; Resource.Get(ArrayINT2); // 从资源中读取数据。 ArrayPrint(ArrayINT2); // 撤回: } //+------------------------------------------------------------------+ 您能纠正错误所在吗? 附加的文件: Test_Keep_Info.mq5 3 kb Test_Receive_info.mq5 3 kb fxsaber 2018.11.20 15:03 #23 Nauris Zukas:我无法获取数据,我正在运行一个脚本,据我所知,数据现在存储在终端的某个地方。一旦数据的所有者(编写者)停止工作,数据就会被销毁。如果不这样做,终端内存很快就会变得杂乱无章。 将数据主站作为顾问/指示器启动。只要它还活着,其他人就可以使用它的数据。 Nauris Zukas 2018.11.20 15:37 #24 fxsaber:一旦数据的所有者(写入者)停止工作,数据就会被销毁。如果不这样做,终端内存很快就会变得杂乱无章。将数据主站作为顾问/指示器启动。只要它还活着,其他人就可以使用它的数据。这对指标也不起作用。我认为路径出了问题。 附加的文件: Test_Keep_Info_11.mq5 5 kb Test_Receive_info_11.mq5 5 kb fxsaber 2018.11.20 21:48 #25 Nauris Zukas:它在指示器上也不起作用。我认为路径出了问题。你在每个 OnCalculate 中创建了一个资源,并在函数完成后将其删除。 你应该让对象静态化。这是 OOP 的基本原理。 Nauris Zukas 2018.11.21 09:16 #26 fxsaber:您可以在每个 OnCalculate 中创建一个资源,并在函数完成时将其删除。你应该使对象静态化。这是 OOP 的基本原理。我添加了 static,但还是不行。你能纠正其中的错误吗? 附加的文件: Test_Keep_Info_11.mq5 5 kb Test_Receive_info_11.mq5 5 kb fxsaber 2018.11.21 10:15 #27 Nauris Zukas:我添加了静态数据,但还是不行。您能纠正一下问题所在吗?更新 ResourceData.mqh 并尝试这些指标 // 发送数据 #property indicator_chart_window #property indicator_plots 0 #include <fxsaber\TradeTransactions\ResourceData.mqh> //https://www.mql5.com/zh/code/22166 #include <GlobalVariables.mqh> //https://www.mql5.com/ru/forum/189649#comment_4854618 const RESOURCEDATA<MqlTick> Resource("::" + __FILE__); // 用于数据传输的资源(滴答声) void OnInit() { _GlobalVariableSet("ResourceName", Resource.GetFullName()); // 将资源全名(只读)写入全局变量 } void OnDeinit( const int ) { _GlobalVariableDel("ResourceName"); } int OnCalculate( const int, const int, const int, const double &[] ) { MqlTick Ticks[]; CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, 0, 5); // 生成数据 Resource = Ticks; // 记录数据 return(0); } // 数据检索 #property indicator_chart_window #property indicator_plots 0 #include <fxsaber\TradeTransactions\ResourceData.mqh> //https://www.mql5.com/zh/code/22166 #include <GlobalVariables.mqh> //https://www.mql5.com/ru/forum/189649#comment_4854618 int OnCalculate( const int, const int, const int, const double &[] ) { static const RESOURCEDATA<MqlTick> Resource(_GlobalVariableGet<string>("ResourceName")); // 根据全局变量传递的全名创建资源 MqlTick Ticks[]; Resource.Get(Ticks); // 从资源中读取数据。 ArrayPrint(Ticks); // 打印获得的数据 return(0); } Nauris Zukas 2018.11.21 11:45 #28 fxsaber:更新 ResourceData.mqh 并尝试这些指标谢谢,我找到了一些东西,现在我要拆开看看它是如何工作的。 能否请您纠正 GlobalVariables.mqh 中的警告?我的知识在 Res=-1 处结束,但那里却显示了错误。我也不知道如何删除 OnStart() 警告。 附加的文件: GlobalVariables.mqh 9 kb fxsaber 2018.11.21 11:48 #29 Nauris Zukas:请更正 GlobalVariables.mqh 中的警告。 附加的文件: GlobalVariables.mqh 4 kb Nauris Zukas 2018.11.21 12:06 #30 fxsaber: 谢谢! 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
感谢您的赞赏。我是在这个论坛上学会编程的。我发表我的作品是因为它有纪律性。我用我的描述作为线索,因为我很快就会忘记我写了什么和怎么写的。
我为我的编码风格道歉,但这是为我自己准备的。发表它也是一种副作用。
遗憾的是,我们无法评估已发表作品的受欢迎程度。如果有人使用它们,那么用户圈子就会非常狭窄。
增加用户数量--没有这样的目标。
我无法获取数据,在这里我运行了一个脚本,据我所知,数据现在存储在终端的某个地方:
在这里,我运行另一个脚本来获取运行第一个脚本时保存的数据,但数据没有显示出来:
您能纠正错误所在吗?
我无法获取数据,我正在运行一个脚本,据我所知,数据现在存储在终端的某个地方。
一旦数据的所有者(编写者)停止工作,数据就会被销毁。如果不这样做,终端内存很快就会变得杂乱无章。
将数据主站作为顾问/指示器启动。只要它还活着,其他人就可以使用它的数据。
一旦数据的所有者(写入者)停止工作,数据就会被销毁。如果不这样做,终端内存很快就会变得杂乱无章。
将数据主站作为顾问/指示器启动。只要它还活着,其他人就可以使用它的数据。
这对指标也不起作用。我认为路径出了问题。
它在指示器上也不起作用。我认为路径出了问题。
你在每个 OnCalculate 中创建了一个资源,并在函数完成后将其删除。
你应该让对象静态化。这是 OOP 的基本原理。
您可以在每个 OnCalculate 中创建一个资源,并在函数完成时将其删除。
你应该使对象静态化。这是 OOP 的基本原理。
我添加了 static,但还是不行。你能纠正其中的错误吗?
我添加了静态数据,但还是不行。您能纠正一下问题所在吗?
更新 ResourceData.mqh 并尝试这些指标
更新 ResourceData.mqh 并尝试这些指标
谢谢,我找到了一些东西,现在我要拆开看看它是如何工作的。
能否请您纠正 GlobalVariables.mqh 中的警告?我的知识在 Res=-1 处结束,但那里却显示了错误。我也不知道如何删除 OnStart() 警告。
请更正 GlobalVariables.mqh 中的警告。
谢谢!