新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1466 1...145914601461146214631464146514661467146814691470147114721473...1953 新评论 SanAlex 2021.05.09 08:09 #14651 WindUP: 谢谢你,但我们能否至少有一个客观的例子?可以这么说,从上面看。我是一个完全的新手,我已经在这个问题上呆了两天了 :-) 这里可能有类似的东西 //+------------------------------------------------------------------+ //| maxLimits.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 script_show_inputs #include <Trade\Trade.mqh> //--- CTrade m_trade; // trading object //--- sinput uint maxLimits = 1; // Кол-во Позиции Открыть в одну сторону sinput double InpLots = 0.01; // Lots //--- sinput int Inpcopiedrates = 2; // какой бар sinput double Inplow = 100; // отступить от low //--- //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- const string symbol=NULL; double price=0.0; const double tp=0.0; const string comment=""; //--- check symbol string symbol_name=(symbol==NULL) ? Symbol() : symbol; //--- check price if(price==0.0) price=SymbolInfoDouble(symbol_name,SYMBOL_ASK); //--- MqlRates rates[]; ArraySetAsSeries(rates,true); int copied=CopyRates(Symbol(),0,0,10,rates); double sl=rates[Inpcopiedrates].low-Inplow/100; //--- for(uint x=0; x<maxLimits; x++) { //--- open position //if(m_trade.Buy(InpLots,symbol_name,price,sl,tp,comment)) if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,InpLots,price,sl,tp)) printf("Position by %s to be opened",Symbol()); else { printf("Error opening BUY position by %s : '%s'",Symbol(),m_trade.ResultComment()); printf("Open parameters : price=%f,SL=%f,TP=%f",price,sl,tp); } } } //+------------------------------------------------------------------+ WindUP 2021.05.09 14:21 #14652 SanAlex:我也在努力学习--我想我已经有所收获了。 你好。对不起,我在截图中看到你成功了,但我没有看到这段代码中复制前一个蜡烛[1]的数据的功能在哪里? 你能告诉我MQL5编程课程的傻瓜,从简单到复杂,从哪里开始,用什么开始比较好,以获得更多的结果,减少时间的浪费?我将不胜感激 :-) Alexey Viktorov 2021.05.09 16:21 #14653 WindUP:你好。对不起,我在截图中看到你成功了,但在这里我没有看到在这段代码中复制前一个蜡烛的数据的功能[1]?我怎么能告诉你MQL5傻瓜编程课程,从简单到复杂,从哪里开始,用什么开始比较好,以获得更多的结果,减少时间的浪费?我将不胜感激 :-) 想象一下,一个朋友找到你,要求 "教你如何在互联网上工作"。是否很难想象要教什么?教授编程也同样困难。有一个任务--有一个解决方案。但就像这样......你可以学习任何语言,所有语言的基础知识都是一样的。编程与其说是写代码,不如说是设定一个问题,为其解决方案写一个算法,然后才写代码。而最后阶段,调试和检查结果。 在SanAlrx的代码中,我不明白,如果我们有一个特定的任务,只获得第一个蜡烛图的OHLC,为什么我们要做这样一个复制的数据库存。 int copied=CopyRates(Symbol(),0,0,10,rates); 以及为什么要复制当前的、刚刚打开的蜡烛的值。但是......这是他的决定和他的蟑螂。 SanAlex 2021.05.09 17:24 #14654 WindUP:你好。对不起,我在截图中看到你成功了,但在这里我没有看到在这段代码中复制前一个蜡烛的数据的功能[1]?能否请您告诉我MQL5傻瓜式编程课程,从简单到复杂,从哪里开始,如何开始最好,以获得更多的结果,减少时间的浪费?我将不胜感激 :-) 我自己也是个学生--例如,我看了一下文档https://www.mql5.com/ru/docs/series/copyrates, 有一个脚本的例子,我把它保存在我的电脑上,然后开始阅读它,凭直觉找出细节。 而这个功能--凭直觉--是我发现的。 //--- MqlRates rates[]; ArraySetAsSeries(rates,true); int copied=CopyRates(Symbol(),0,0,10,rates); double sl=rates[Inpcopiedrates].low-Inplow/100; 这是为了购买 "SL"。 卖掉它应该是这样的 double sl=rates[Inpcopiedrates].high+Inphigh/100; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 我只是在这里写了一个数字--最多可以买到10条。但你不需要它--你需要1(个)。 int copied=CopyRates(Symbol(),0,0,10,rates); Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates www.mql5.com CopyRates - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 SanAlex 2021.05.09 17:36 #14655 WindUP:你好。对不起,我在截图中看到你成功了,但在这里我没有看到在这段代码中复制前一个蜡烛的数据的功能[1]?我怎么能告诉你MQL5傻瓜编程课程,从简单到复杂,从哪里开始,用什么开始比较好,以获得更多的结果,减少时间的浪费?我将不胜感激 :-) 这里有一个很好的例子--刚刚进入该页面,这里有一个更好的脚本来告诉你它是如何工作的。https://www.mql5.com/ru/docs/constants/objectconstants/enum_anchorpoint Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Способы привязки объектов www.mql5.com Способы привязки объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 SanAlex 2021.05.09 18:17 #14656 SanAlex:我自己也在学习--比如说,我到文档https://www.mql5.com/ru/docs/series/copyrates, 有一个例子脚本,我把它保存在电脑上,开始阅读,通过摸索细节来探索。而这个功能--凭直觉--是我发现的。这是为了购买 "SL"。卖掉它应该是这样的\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\我只是在这里写了一个数字--最多可以买到10条。但你不需要它--你需要1(个)。 这为 "买入 "和 "卖出 "打开并设置了SL。 //+------------------------------------------------------------------+ //| maxLimits.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 script_show_inputs #include <Trade\Trade.mqh> //--- CTrade m_trade; // trading object //--- sinput uint maxLimits = 1; // Кол-во Позиции Открыть в одну сторону sinput double InpLots = 0.01; // Lots //--- sinput double Inplowhigh = 100; // отступить low high //--- //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- OnStartBuy(); OnStartSell(); } //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStartBuy() { //--- const string symbol=NULL; double price=0.0; const double tp=0.0; const string comment=""; //--- check symbol string symbol_name=(symbol==NULL) ? Symbol() : symbol; //--- check price if(price==0.0) price=SymbolInfoDouble(symbol_name,SYMBOL_ASK); //--- MqlRates rates[]; ArraySetAsSeries(rates,true); int copied=CopyRates(Symbol(),0,0,2,rates); if(copied<=0) { Print("Не удалось получить исторические данные. Error = ",GetLastError()); return; } double sl=rates[1].low-Inplowhigh/100; //--- for(uint x=0; x<maxLimits; x++) { //--- open position //if(m_trade.Buy(InpLots,symbol_name,price,sl,tp,comment)) if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,InpLots,price,sl,tp)) printf("Position by %s to be opened",Symbol()); else { printf("Error opening BUY position by %s : '%s'",Symbol(),m_trade.ResultComment()); printf("Open parameters : price=%f,SL=%f,TP=%f",price,sl,tp); } } } //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStartSell() { //--- const string symbol=NULL; double price=0.0; const double tp=0.0; const string comment=""; //--- check symbol string symbol_name=(symbol==NULL) ? Symbol() : symbol; //--- check price if(price==0.0) price=SymbolInfoDouble(symbol_name,SYMBOL_BID); //--- MqlRates rates[]; ArraySetAsSeries(rates,true); int copied=CopyRates(Symbol(),0,0,2,rates); if(copied<=0) { Print("Не удалось получить исторические данные. Error = ",GetLastError()); return; } double sl=rates[1].high+Inplowhigh/100; //--- for(uint x=0; x<maxLimits; x++) { //--- open position //if(m_trade.Buy(InpLots,symbol_name,price,sl,tp,comment)) if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,InpLots,price,sl,tp)) printf("Position by %s to be opened",Symbol()); else { printf("Error opening SELL position by %s : '%s'",Symbol(),m_trade.ResultComment()); printf("Open parameters : price=%f,SL=%f,TP=%f",price,sl,tp); } } } //+------------------------------------------------------------------+ Сергей 2021.05.11 06:39 #14657 你好。 你能不能给我一个提示,我现在脑子一片空白。 我通过iCustom开出指标,面临一个问题--指标有一个文本菜单,有一个选择,打开后有几个项目开出,嗯,我想这是很清楚的) 我怎样才能在菜单中添加它? extern int HIT = 0; 不起作用,停止显示,没有留下任何参数显示。 也许通过ENUM,有什么可选择的,或者也许是别的什么? 提前感谢。 附加的文件: 2021-05-11_13-38-20.png 44 kb Alexey Viktorov 2021.05.11 06:49 #14658 Сергей:你好。你能不能给我一个提示,我现在脑子一片空白。我通过iCustom开出指标,面临一个问题--指标有一个文本菜单,有一个选择,打开后有几个项目开出,嗯,我想这是很清楚的)我怎样才能在菜单中添加它?extern int HIT = 0; 不起作用,停止显示,没有留下任何参数显示。也许是通过ENUM ,选择哪一个,或者是别的什么?提前感谢。 放入一个空字符串""或一个空格"" Сергей 2021.05.11 07:06 #14659 所以我想以某种方式开出处方,这样我就可以改变设置。 我每一对都有不同的项目,我如何选择? 而没有那个菜单是不相关的,截图只是一个类似的例子。 Alexey Viktorov 2021.05.11 07:17 #14660 Сергей:所以我想以某种方式开出处方,这样我就可以改变设置。我每一对都有不同的项目,我如何选择?而没有那个菜单是不相关的,截图只是一个类似的例子。 抱歉没有注意到。该指标有一个枚举。而在专家顾问中,你必须在输入参数中指定这个枚举的名称作为变量类型。 虽然,我还没有试过......也许我们将不得不在EA中重复这个枚举,或者直接设置 ENUM_BASE_CORNER 变量类型 1...145914601461146214631464146514661467146814691470147114721473...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢你,但我们能否至少有一个客观的例子?可以这么说,从上面看。我是一个完全的新手,我已经在这个问题上呆了两天了 :-)
这里可能有类似的东西
我也在努力学习--我想我已经有所收获了。
你好。对不起,我在截图中看到你成功了,但我没有看到这段代码中复制前一个蜡烛[1]的数据的功能在哪里?
你能告诉我MQL5编程课程的傻瓜,从简单到复杂,从哪里开始,用什么开始比较好,以获得更多的结果,减少时间的浪费?我将不胜感激 :-)
你好。对不起,我在截图中看到你成功了,但在这里我没有看到在这段代码中复制前一个蜡烛的数据的功能[1]?
我怎么能告诉你MQL5傻瓜编程课程,从简单到复杂,从哪里开始,用什么开始比较好,以获得更多的结果,减少时间的浪费?我将不胜感激 :-)
想象一下,一个朋友找到你,要求 "教你如何在互联网上工作"。是否很难想象要教什么?教授编程也同样困难。有一个任务--有一个解决方案。但就像这样......你可以学习任何语言,所有语言的基础知识都是一样的。编程与其说是写代码,不如说是设定一个问题,为其解决方案写一个算法,然后才写代码。而最后阶段,调试和检查结果。
在SanAlrx的代码中,我不明白,如果我们有一个特定的任务,只获得第一个蜡烛图的OHLC,为什么我们要做这样一个复制的数据库存。
以及为什么要复制当前的、刚刚打开的蜡烛的值。但是......这是他的决定和他的蟑螂。
你好。对不起,我在截图中看到你成功了,但在这里我没有看到在这段代码中复制前一个蜡烛的数据的功能[1]?
能否请您告诉我MQL5傻瓜式编程课程,从简单到复杂,从哪里开始,如何开始最好,以获得更多的结果,减少时间的浪费?我将不胜感激 :-)
我自己也是个学生--例如,我看了一下文档https://www.mql5.com/ru/docs/series/copyrates, 有一个脚本的例子,我把它保存在我的电脑上,然后开始阅读它,凭直觉找出细节。
而这个功能--凭直觉--是我发现的。
这是为了购买 "SL"。
卖掉它应该是这样的
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
我只是在这里写了一个数字--最多可以买到10条。但你不需要它--你需要1(个)。
你好。对不起,我在截图中看到你成功了,但在这里我没有看到在这段代码中复制前一个蜡烛的数据的功能[1]?
我怎么能告诉你MQL5傻瓜编程课程,从简单到复杂,从哪里开始,用什么开始比较好,以获得更多的结果,减少时间的浪费?我将不胜感激 :-)
这里有一个很好的例子--刚刚进入该页面,这里有一个更好的脚本来告诉你它是如何工作的。https://www.mql5.com/ru/docs/constants/objectconstants/enum_anchorpoint
我自己也在学习--比如说,我到文档https://www.mql5.com/ru/docs/series/copyrates, 有一个例子脚本,我把它保存在电脑上,开始阅读,通过摸索细节来探索。
而这个功能--凭直觉--是我发现的。
这是为了购买 "SL"。
卖掉它应该是这样的
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
我只是在这里写了一个数字--最多可以买到10条。但你不需要它--你需要1(个)。
这为 "买入 "和 "卖出 "打开并设置了SL。
你好。
你能不能给我一个提示,我现在脑子一片空白。
我通过iCustom开出指标,面临一个问题--指标有一个文本菜单,有一个选择,打开后有几个项目开出,嗯,我想这是很清楚的)
我怎样才能在菜单中添加它?
extern int HIT = 0; 不起作用,停止显示,没有留下任何参数显示。
也许通过ENUM,有什么可选择的,或者也许是别的什么?
提前感谢。
你好。
你能不能给我一个提示,我现在脑子一片空白。
我通过iCustom开出指标,面临一个问题--指标有一个文本菜单,有一个选择,打开后有几个项目开出,嗯,我想这是很清楚的)
我怎样才能在菜单中添加它?
extern int HIT = 0; 不起作用,停止显示,没有留下任何参数显示。
也许是通过ENUM ,选择哪一个,或者是别的什么?
提前感谢。
放入一个空字符串""或一个空格""
所以我想以某种方式开出处方,这样我就可以改变设置。
我每一对都有不同的项目,我如何选择?
而没有那个菜单是不相关的,截图只是一个类似的例子。
所以我想以某种方式开出处方,这样我就可以改变设置。
我每一对都有不同的项目,我如何选择?
而没有那个菜单是不相关的,截图只是一个类似的例子。
抱歉没有注意到。该指标有一个枚举。而在专家顾问中,你必须在输入参数中指定这个枚举的名称作为变量类型。
虽然,我还没有试过......也许我们将不得不在EA中重复这个枚举,或者直接设置 ENUM_BASE_CORNER 变量类型