初学者的问题 MQL5 MT5 MetaTrader 5 - 页 969 1...962963964965966967968969970971972973974975976...1503 新评论 Konstantin Nikitin 2018.12.21 21:25 #9681 Sprut112: 该EA以对冲方式进行交易。也许应该增加一些检查作为标准?你是否在一个美分账户上测试过?在一些美分账户中,最低手数为0.1手。 [删除] 2018.12.21 21:30 #9682 Konstantin Nikitin:我在测试器中正常交易,构建1960。我放了多少,这就是同时对12对的需要。 为什么16号是0.01手? [删除] 2018.12.21 21:32 #9683 Konstantin Nikitin:你是否在一个美分账户上测试?在一些美分账户中,最低手数为0.1手。 不,有对最小最大和批量增量的检查 Konstantin Nikitin 2018.12.21 21:32 #9684 Sprut112: 为什么是16号地段0.01?如果你指的是我的照片,那是专家的部分封闭起了作用。它说接近。 Sprut112: 不,检查最小最大和批量增量。 因此,也许这个检查会寻找一个大于当前的最小值并将其替换掉。 [删除] 2018.12.21 21:36 #9685 Konstantin Nikitin:如果你指的是我的照片,那是专家的部分封闭起了作用。它确实说过接近 因此,也许这个检查会寻找一个大于当前的最小值并将其替换掉。 我们可以这样想。在测试器中,它不会立即发生,大约一个月后才会发生 xxz 2018.12.22 00:52 #9686 Artyom Trishkin:为什么你的代码在有#property strict的mql4中不能如你所愿?与弗拉基米尔给你看的代码有什么根本区别。 而这些实现方式没有任何区别。而你的代码没有输出文本描述的原因只有一个--那就是mql4代码中没有#property strict。我没有马上想明白,还以为因为没有=0、=1等而对我不起作用...。enum MySymbol { symbol_0=0,// AUDUSD symbol_1=1,// NZDUSD symbol_2=2,// USDCAD symbol_3=3,// USDCHF symbol_4=4,// USDJPY symbol_5=5,// EURJPY symbol_6=6,// EURUSD symbol_7=7,// GBPUSD symbol_8=8,// #CL };但结果是同样的事情...... string xx=EnumToString(Symboll_(1)); //结果 symbol_1 我应该得到的是NZDUSD в таком варианте всё Ок но не получается добавить символ с решёткой #CL enum Symboll_ { AUDUSD, NZDUSD, USDCAD //#CL }; string xx=EnumToString(Symboll_(1)); // результат NZDUSD但阵列变体正是我所需要的...... Artyom Trishkin 2018.12.22 02:18 #9687 xxz:我没有马上明白,还以为我失败了,因为我没有=0、=1等。但结果是同样的事情...... string xx=EnumToString(Symboll_(1)); // 结果 symbol_1 我应该得到的是NZDUSD但这个阵列变体正是我所需要的......当然,当通过EnumToString()输出一个枚举时,你不会得到"//"后面的变量描述,而是变量本身的情况。 为了以你想要的方式打印枚举,你需要做一个类似于EnumToString()的函数,它将打印它。 对于这样的一个枚举。 enum ENUM_SYMBOL_NAMES { SYMBOL_NAME_AUDUSD, // AUDUSD SYMBOL_NAME_NZDUSD, // NZDUSD SYMBOL_NAME_USDCAD, // USDCAD SYMBOL_NAME_USDCHF, // USDCHF SYMBOL_NAME_USDJPY, // USDJPY SYMBOL_NAME_EURJPY, // EURJPY SYMBOL_NAME_EURUSD, // EURUSD SYMBOL_NAME_GBPUSD, // GBPUSD SYMBOL_NAME_SHARP_CL, // #CL }; input ENUM_SYMBOL_NAMES InpNames; // Instrument 像这样。 //+------------------------------------------------------------------+ string InstrumentToString(void) { string enm=EnumToString(InpNames); int index=StringFind(enm,"SHARP_"); int shift=(index>WRONG_VALUE ? index+6 : 12); string name=StringSubstr(enm,shift); return(index>0 ? "#"+name : name); } //+------------------------------------------------------------------+ 并打电话。 Print(InstrumentToString()); [删除] 2018.12.22 06:28 #9688 double get_lot(int pair, double input_lots) { if(input_lots<min_lot[pair]) return(min_lot[ir]); return(input_lots); Konstantin Nikitin:如果你指的是我的照片,那是专家的部分封闭起了作用。它说接近。 因此,也许这个检查会看一下最小值是否大于当前值,并将其替换。 if(SymbolInfoDouble(Symb,SYMBOL_VOLUME_STEP)<0.1) dg=2; else if(SymbolInfoDouble(Symb,SYMBOL_VOLUME_STEP)<1.0) dg=1;我认为这是不对的。 kopeyka2 2018.12.22 09:04 #9689 Vladimir Karputov:更好的是,明确说明你想要实现的目标。我可能会给你一个完整的例子。很久以前,早在2010年,在冬天。我还要求在一个指标中进行过滤,其本质是:用PERIOD_MN1 绘制iBars的Mach & Min HLine....))))。 我自己想出了这个办法。掌握了MT4。 慢慢地,而不是立即,我正在掌握MT5。 ...."清楚地说明你想得到什么 "公式:我正在转换(自己)我编程的东西,同时我正在掌握(自己)MT5 )))) 但是你用例子向我展示的东西(视觉上)并没有消失。 如果是这样,我就回去了。) xxz 2018.12.22 09:12 #9690 Artyom Trishkin:自然地,当使用EnumToString()打印出一个枚举时,你不会得到一个 在"//"后面的变量描述,而是得到变量本身的原貌。 为了以你想要的方式打印出来,你需要制作一个类似于EnumToString()的函数,将其打印出来。 这就是问题所在,因为要解决最简单的任务,你必须创建一个函数,而这是一堆无人需要的代码。 而不是一行十行的... 我想尽可能的简洁!... 我原本可以通过在代码中添加一行来解决这个问题 xx=iClose(Symbol_(i),0,50); xx=iClose("#CL",0,50);但我不喜欢它,只是因为代码中多了一行...... 我不喜欢 "肮脏 "的代码... 1...962963964965966967968969970971972973974975976...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
该EA以对冲方式进行交易。也许应该增加一些检查作为标准?
你是否在一个美分账户上测试过?在一些美分账户中,最低手数为0.1手。
我在测试器中正常交易,构建1960。我放了多少,这就是同时对12对的需要。
你是否在一个美分账户上测试?在一些美分账户中,最低手数为0.1手。
为什么是16号地段0.01?
如果你指的是我的照片,那是专家的部分封闭起了作用。它说接近。
不,检查最小最大和批量增量。
如果你指的是我的照片,那是专家的部分封闭起了作用。它确实说过接近
因此,也许这个检查会寻找一个大于当前的最小值并将其替换掉。为什么你的代码在有#property strict的mql4中不能如你所愿?
与弗拉基米尔给你看的代码有什么根本区别。
我没有马上想明白,还以为因为没有=0、=1等而对我不起作用...。
但结果是同样的事情......
string xx=EnumToString(Symboll_(1)); //结果 symbol_1
我应该得到的是NZDUSD
但阵列变体正是我所需要的......
我没有马上明白,还以为我失败了,因为我没有=0、=1等。
但结果是同样的事情......
string xx=EnumToString(Symboll_(1)); // 结果 symbol_1
我应该得到的是NZDUSD
但这个阵列变体正是我所需要的......
当然,当通过EnumToString()输出一个枚举时,你不会得到"//"后面的变量描述,而是变量本身的情况。
为了以你想要的方式打印枚举,你需要做一个类似于EnumToString()的函数,它将打印它。
对于这样的一个枚举。
像这样。
并打电话。
Print(InstrumentToString());
: Konstantin Nikitin如果你指的是我的照片,那是专家的部分封闭起了作用。它说接近。
因此,也许这个检查会看一下最小值是否大于当前值,并将其替换。我认为这是不对的。
更好的是,明确说明你想要实现的目标。我可能会给你一个完整的例子。
很久以前,早在2010年,在冬天。我还要求在一个指标中进行过滤,其本质是:用PERIOD_MN1 绘制iBars的Mach & Min HLine....))))。
我自己想出了这个办法。掌握了MT4。
慢慢地,而不是立即,我正在掌握MT5。
...."清楚地说明你想得到什么 "公式:我正在转换(自己)我编程的东西,同时我正在掌握(自己)MT5 ))))
但是你用例子向我展示的东西(视觉上)并没有消失。
如果是这样,我就回去了。)
自然地,当使用EnumToString()打印出一个枚举时,你不会得到一个 在"//"后面的变量描述,而是得到变量本身的原貌。
为了以你想要的方式打印出来,你需要制作一个类似于EnumToString()的函数,将其打印出来。
这就是问题所在,因为要解决最简单的任务,你必须创建一个函数,而这是一堆无人需要的代码。
而不是一行十行的...
我想尽可能的简洁!...
我原本可以通过在代码中添加一行来解决这个问题
但我不喜欢它,只是因为代码中多了一行......
我不喜欢 "肮脏 "的代码...