新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1777 1...177017711772177317741775177617771778177917801781178217831784...1953 新评论 Kedrov 2021.11.30 16:46 #17761 MakarFX #:是的,你搞得一团糟)现在,在每个文件夹中,逐一将Experts文件夹重命名为_Experts,将Indicators文件夹重命名为_Indicators。在一个文件夹中重命名--启动终端,如果没有帮助--重命名回来,然后去下一个文件夹。P.S. 终端的第一次启动时间会比平时长一点。 马卡! 该事件发生在今天。因此,我没有碰有旧日期的文件夹。 而对新鲜的文件夹进行修改并没有改变任何东西。 所以我把配置文件、指标和专家顾问系统拖到另一个终端。我终于完成了这个烂摊子。 现在一切都在运作。不过,我把它放在不同的终端上。但重要的是结果--你可以工作。 我稍后将删除该终端。 我认为你的建议是通过编辑器找到指标和配置文件,这是很完美的! 特别是对于像我这样的编程 "傻瓜 "来说。 非常感谢您的帮助和响应!我们将继续努力。 好运! 谢谢! valentin104 2021.12.01 09:42 #17762 大家好。刚刚开始了解这上面的一切,可以马上说我比绿色更绿。我不知道我有多少时间,但我会得到一些经验。 你能告诉我谁遇到过这种情况吗? 我需要一个脚本 或代码,在接下来的10个点中保持观察,没有开放的买入和卖出。 1.....,例如,一个嘀嗒声传来--代码寻找如果在接下来的10个点中没有向下和(或)向上的订单,则设置一个卖出订单。如果什么都没有。也有买入订单 下面是外汇EA生成器 中的 一个例子方案 附加的文件: hktrabmcw4.jpg 222 kb Artyom Trishkin 2021.12.01 13:44 #17763 valentin104 一个脚本 或代码,在接下来的10个点中保持观察,没有开放的买入和卖出。 1.....,例如,一个嘀嗒声传来--代码寻找如果在接下来的10个点中没有下跌和(或)上涨的订单,则设置一个卖出订单。如果有,则没有。也有买入订单下面是外汇EA生成器 中的 一个例子方案 这个计划是愚蠢的。 Galim_V 2021.12.01 14:43 #17764 Artyom Trishkin #:这是一个愚蠢的计划。 不,如果没有if和else,它看起来就是这样)。但这不是我的意思。 SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE) 脚本给出了tick_s =1.0 tick_vflue =80.32786885245902,但在owl中tick_value =80.37529660186777 tick_size =1e-05。 分数打破了。 Tretyakov Rostyslav 2021.12.01 14:43 #17765 Artyom Trishkin #:这是一个愚蠢的计划。你错过了重点。valentin104 #: 嘿,各位。我刚刚开始了解这一切,所以我只说这一点 我比绿色更绿。 Tretyakov Rostyslav 2021.12.01 14:44 #17766 Galim_V #:不,如果没有if和else,它看起来就是这样)。但这不是我的意思。脚本给出了tick_s =1.0 tick_vflue =80.32786885245902,在owl中tick_value =80.37529660186777tick_size =1e-05。tick_value被破坏了。 tick_size =1e-05 归一化 DoubleToString(tick_size , 2) Galim_V 2021.12.01 15:23 #17767 MakarFX #: tick_size =1e-05归一化 DoubleToString(tick_size , 2) 独自一人的零点。连百分之一都没有。 //+------------------------------------------------------------------+ //| MAX+risk.mq4 | //| Copyright 2019, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2019, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict #property script_show_inputs enum Mani { free_margin, balans }; input Mani risk_mani; input double Lot=0.0; input int max_risk =0; //В% от свободных средсв или... input int stoploss=300; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { double Lots=0; int Max_Risk=0; printf("ACCOUNT_MARGIN_FREE = %G",AccountInfoDouble(ACCOUNT_MARGIN_FREE)); //Размер свободных средств на счете в валюте printf("ACCOUNT_BALANCE = %G",AccountInfoDouble(ACCOUNT_BALANCE)); //Баланс счета в валюте депозита printf("ACCOUNT_MARGIN_LEVEL = %G",AccountInfoDouble(ACCOUNT_MARGIN_LEVEL)); // Уровень залоговых средств в % double freemani=AccountInfoDouble(ACCOUNT_MARGIN_FREE); double balance=AccountInfoDouble(ACCOUNT_BALANCE); double tick_s = SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE)/_Point; //Минимальное изменение цены double tick_value= SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE);//Размер минимального изменения цены инструмента в валюте депозита if(risk_mani==balans) { if(max_risk>0&&stoploss>0) { double tmp= balance*max_risk/100/(stoploss*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE)); Lots=NormalizeDouble(tmp,2); printf(" Чтобы max_risk был не более %f%s%d%s%f",max_risk," в % от ACCOUNT_BALANCE при stoploss =",stoploss,",неоходим Lots =",Lots); } if(Lot>0) { Max_Risk= (int)MathRound(Lot*(stoploss*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE))/balance*100); printf(" Max_Risk при Lot=%f%s%d,%s%d%s",Lot," и stoploss =",stoploss," будет =",Max_Risk,"%"); } } if(risk_mani==free_margin) { if(max_risk>0&&stoploss>0) { double tmp= freemani*max_risk/100/(stoploss*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE)); Lots=NormalizeDouble(tmp,2); printf(" Чтобы max_risk был не более %f%s%d%s%f",max_risk," в % от ACCOUNT_MARGIN_FREE при stoploss =",stoploss,",неоходим Lots =",Lots); } if(Lot>0) { Max_Risk= (int)MathRound(Lot*(stoploss*_Point*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE))/freemani*100); printf(" Max_Risk при Lot=%f%s%d,%s%d%s",Lot," и stoploss =",stoploss," будет =",Max_Risk,"%"); } } Print("Lots =",Lots," Max_Risk =",Max_Risk," tick_s =",tick_s," tick_vflue =",tick_value); } //+------------------------------------------------------------------+ 它在这里起作用。在黑板上,用变量代替了函数。但从一开始,该函数就在OnTick()中产生了胡言乱语。 Galim_V 2021.12.01 15:58 #17768 Galim_V #:全是零。甚至找不到百分之一。它在这里起作用。在Owl中,变量代替了函数。但该函数在OnTick()中已经产生了胡言乱语。 找到了。对不起。tick_size =1e-05的 值是0.00001,是正确的。 Mihail Matkovskij 2021.12.01 16:34 #17769 valentin104 #: 我一开始就告诉你,我比绿色更绿。我不知道我还能坚持多久。 用这种方法学习编程,你最好雇用一个程序员,而不用担心这个问题。 Janis Ozols 2021.12.02 07:24 #17770 我们有一个标准的ZigZag指标,但它的画线风格是DRAW_SECTION,即指标缓冲区 中的大部分 数值等于EMPTY_VALUE,只有有时出现不同的数值(断点),作为画线的基础。我想每个人在他们的生活中都至少见过这个指标和/或其代码一次。 任务 是获得对应于最后一个断点的值,即指标缓冲区的最新值,它不等于EMPTY_VALUE。 注意:循环查看指标缓冲区的值,从零点开始往下移,每次迭代都调用iCustom函数,直到得到的值与EMPTY_VALUE不同,这种做法是否正确? 还是有一些更简单的方法来获得这个值? 1...177017711772177317741775177617771778177917801781178217831784...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,你搞得一团糟)
现在,在每个文件夹中,逐一将Experts文件夹重命名为_Experts,将Indicators文件夹重命名为_Indicators。
在一个文件夹中重命名--启动终端,如果没有帮助--重命名回来,然后去下一个文件夹。
P.S. 终端的第一次启动时间会比平时长一点。
马卡!
该事件发生在今天。因此,我没有碰有旧日期的文件夹。
而对新鲜的文件夹进行修改并没有改变任何东西。
所以我把配置文件、指标和专家顾问系统拖到另一个终端。我终于完成了这个烂摊子。
现在一切都在运作。不过,我把它放在不同的终端上。但重要的是结果--你可以工作。
我稍后将删除该终端。
我认为你的建议是通过编辑器找到指标和配置文件,这是很完美的!
特别是对于像我这样的编程 "傻瓜 "来说。
非常感谢您的帮助和响应!我们将继续努力。
好运!
谢谢!
大家好。刚刚开始了解这上面的一切,可以马上说我比绿色更绿。我不知道我有多少时间,但我会得到一些经验。 你能告诉我谁遇到过这种情况吗? 我需要一个脚本 或代码,在接下来的10个点中保持观察,没有开放的买入和卖出。
1.....,例如,一个嘀嗒声传来--代码寻找如果在接下来的10个点中没有向下和(或)向上的订单,则设置一个卖出订单。如果什么都没有。也有买入订单
下面是外汇EA生成器 中的 一个例子方案
1.....,例如,一个嘀嗒声传来--代码寻找如果在接下来的10个点中没有下跌和(或)上涨的订单,则设置一个卖出订单。如果有,则没有。也有买入订单
下面是外汇EA生成器 中的 一个例子方案
这个计划是愚蠢的。
这是一个愚蠢的计划。
不,如果没有if和else,它看起来就是这样)。但这不是我的意思。
脚本给出了tick_s =1.0 tick_vflue =80.32786885245902,但在owl中tick_value =80.37529660186777 tick_size =1e-05。
分数打破了。
这是一个愚蠢的计划。
你错过了重点。
valentin104 #:嘿,各位。我刚刚开始了解这一切,所以我只说这一点 我比绿色更绿。
不,如果没有if和else,它看起来就是这样)。但这不是我的意思。
脚本给出了tick_s =1.0 tick_vflue =80.32786885245902,在owl中tick_value =80.37529660186777tick_size =1e-05。
tick_value被破坏了。
tick_size =1e-05
归一化 DoubleToString(tick_size , 2)
tick_size =1e-05
归一化 DoubleToString(tick_size , 2)
独自一人的零点。连百分之一都没有。
它在这里起作用。在黑板上,用变量代替了函数。但从一开始,该函数就在OnTick()中产生了胡言乱语。
全是零。甚至找不到百分之一。
它在这里起作用。在Owl中,变量代替了函数。但该函数在OnTick()中已经产生了胡言乱语。
找到了。对不起。tick_size =1e-05的 值是0.00001,是正确的。
我一开始就告诉你,我比绿色更绿。我不知道我还能坚持多久。
用这种方法学习编程,你最好雇用一个程序员,而不用担心这个问题。
我们有一个标准的ZigZag指标,但它的画线风格是DRAW_SECTION,即指标缓冲区 中的大部分 数值等于EMPTY_VALUE,只有有时出现不同的数值(断点),作为画线的基础。我想每个人在他们的生活中都至少见过这个指标和/或其代码一次。
任务 是获得对应于最后一个断点的值,即指标缓冲区的最新值,它不等于EMPTY_VALUE。
注意:循环查看指标缓冲区的值,从零点开始往下移,每次迭代都调用iCustom函数,直到得到的值与EMPTY_VALUE不同,这种做法是否正确?
还是有一些更简单的方法来获得这个值?