[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 599 1...592593594595596597598599600601602603604605606...652 新评论 Иван 2012.02.28 19:29 #5981 alsu: 写下你得到了什么,以及你在日志中打印了什么信息。 我已经显示了它应该进入的地方,但它没有进入,应该检查什么分形。我还在档案中附上了代码和测试txt文件的输出(我改变了它,添加了我的,但问题仍然存在)。我只是诚实地甚至不知道应该监测什么变量(有一张位置的图片 ) 附加的文件: ik.zip 4 kb Григорий 2012.02.28 20:09 #5982 我从另一个EA中提取了函数GetLot(在文件中)。 在我的旧EA中,本身没有错误,但在我的EA中,产生了 '(' -函数 定义意外 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (106, 15) 'Free' - 变量未定义 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic。mq4 (112, 28) 'Risk' - 未定义的变量 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 33) 'Free' - 未定义的变量 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (115, 17) 有什么问题呢? 附加的文件: sovetnikstochastic.mq4 6 kb [ARCHIVE] Any rookie question, 编码帮助......我如何让指标过滤而不是警报? Coding help..How do I Vitalie Postolache 2012.02.28 22:02 #5983 为什么你们都这么喜欢存档者?你的源代码里有100500行代码吗!? Vitalie Postolache 2012.02.28 22:29 #5984 griha: 我从另一个EA中提取了函数GetLot(在文件中)。 在我的旧EA中,本身没有错误,但在我的EA中,产生了 '(' - 函数定义意外 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (106, 15) 'Free' - 变量未定义 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic。mq4 (112, 28) 'Risk' - 未定义的变量 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 33) 'Free' - 未定义的变量 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (115, 17) 有什么问题? 在第一个If 之前,start函数的代码中有一个额外的大括号,这就是为什么会出现错误。为了便于阅读,你应该总是尽量把它们放在前面,然后把你需要的东西都写在里面。 更好的是,你应该把它们放在新的一行,并有一个偏移量,这样独立的块就不会被混淆(例如,像上一页给出的代码那样)P.S. 。 我认为地段计算的公式是这样的 double Lot =MathFloor(Free*Risk/100/One_Lot/Step)*Step; // откидываем лишние знаки после запятой, оставляем 2 знака 对于步长超过0.01的0.1手,将无法正常工作,也许我漏掉了什么,但那样的话,手数将永远等于0(MathFloor(900*2/100/1324/0.02=0.67975831)=0,所以0*步长=0)。 Sceptic Philozoff 2012.02.28 22:53 #5985 我不知道如何计算类似于OrderProfitPips( )的东西,对于一个选定的订单,如果该货币对是任意的。也就是以点为单位的利润,而不是以账户货币为单位。 我需要准确的点数 - 分析不同货币对的多货币交易的有效性。我需要四位数的点数(或适当的两位数,如果该货币对是日元)。考虑到账户货币为美元,合同规模为100 000单位。 如果该货币对是欧元兑美元,一切都很简单。 pips = OrderProfit( ) / ( OrderLots( ) * 10. ); 如果货币对是澳元兑瑞郎,情况就有点复杂了。如果该账户是一个法郎账户,其公式将完全相同。但该账户是一个法郎账户,即OrderProfit()以美元返回。所以我的利润应该换成法郎。 pips = USDCHF * OrderProfit( ) / ( OrderLots( ) * 10. ); 对吗? Vitalie Postolache 2012.02.28 23:14 #5986 Mathemat: 我不知道如何计算类似于OrderProfitPips( )的所选订单,如果该货币对是任意的。也就是以点为单位的利润,而不是以账户货币为单位。 我需要准确的点数 - 分析不同货币对的多货币交易的有效性。我需要四位数的点数(或适当的两位数,如果该货币对是日元)。考虑到账户货币为美元,合同规模为100 000单位。 如果货币对是欧元兑美元,一切都很简单。 pips = OrderProfit( ) / ( OrderLots( ) * 10. ); 如果货币对是澳元兑瑞郎,情况就有点复杂了。如果该账户是一个法郎账户,其公式将完全相同。但该账户是美元账户,即OrderProfit()以美元返回。所以我的利润应该换成法郎。 pips = USDCHF * OrderProfit( ) / ( OrderLots( ) * 10. ); 对吗? 你读过http://www.fxtrademaker.com/fx_calculation.htm 吗? 或者是http://thismatter.com/money/forex/leverage-margin-pips.htm? 据我所知,对于欧元兑美元,PipProfit = USDprofit/lot/Point。对于反向报价的货币对,我们需要取开盘价和当前价之间的差额并乘以Digits:Pips = OrderOpenPrice()-Bid*Digits_coefficient; 其中 Digits_coefficient = MathPow(10,Digits); Sceptic Philozoff 2012.02.28 23:28 #5987 evillive: 你读过这个http://www.fxtrademaker.com/fx_calculation.htm 吗? 或者是http://thismatter.com/money/forex/leverage-margin-pips.htm? 是的,这两个链接似乎都有用途。谢谢你。 P.S. 我决定不以点计算,而是以账户货币计算。日元交叉盘的点数与通常的点数太不相称了。而我想把它们加起来(当然是按惯例)...... Vitalie Postolache 2012.02.28 23:33 #5988 Mathemat: 是的,这两个链接似乎都有用途。谢谢你。 P.S. 我决定不以点计算,而是以账户货币计算。日元交叉盘的点位数字与通常的点位数字太不相称了。而我想把它们加起来(当然是有条件的)... 点子就是点子,怎么可能不成正比?欧元兑美元的20点利润与日元的20点利润有什么不同?你一定是数错了...但是用账户的货币来计算确实比较容易。 Sceptic Philozoff 2012.02.29 00:17 #5989 evillive: 点子就是点子,它们怎么可能不相干呢?那么,在你的链接(第二条)上,一切都可以看到。 你买入100,000 单位的欧元/日元=164.09,当欧元/日元=164.10,美元/日元=121.35 时卖出。 以日元为单位的利润=164.10-164.09=.01日元=1点 (记住日元的例外: 1日元点=0.01日元。) 以日元为单位的总利润=1 x100,000=100,000点。 总利润以日元计=100,000点/100=1,000日元。 因为你只有美元/日元=121.35 的报价,为了得到美元的利润,你要除以报价货币的转换率。 总利润(美元)=1,000/121.35=8.24美元。 如果你只有这个报价,JPY/USD=0.00824,相当于上述数值,你用以下公式将日元的点数转换为本国货币。 总利润(美元)=1,000 x0.00824= 8.24美元。 在这个例子中,8.24美元的利润(相当于1手欧元兑美元的0.824个点)相当于 10万个 日元的点数 P.S. 我觉得自己是个十足的新手...... Vitalie Postolache 2012.02.29 00:46 #5990 Mathemat:嗯,你的链接(第二个)显示了这一切。8.24美元的利润(相当于1手欧元兑美元的0.824个点)相当于 十万个 日元的点!这也是一个很好的例子。 你读错了。对于有反向报价的货币对,取开盘价 和当前价 之间的差额,并乘以从Digits获得的乘数 ( Pips = (Bid -OrderOpenPrice())*Digits_coefficient; ) ,这样就可以得到(80.60-80.45=0.15) * MathPow(10,Digits) = 15点,其中 Digits_coefficient = MathPow(10,Digits); 再简单不过了,不是吗? P.S.: 虽然没有,但可以更简单))))。 Pips = (Bid - OrderOpenPrice())/Point; //ордер лонг Pips = (OrderOpenPrice() - Ask)/Point; //ордер шорт 而且这种表达方式对所有货币对都是正确的! 1...592593594595596597598599600601602603604605606...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
写下你得到了什么,以及你在日志中打印了什么信息。
我已经显示了它应该进入的地方,但它没有进入,应该检查什么分形。我还在档案中附上了代码和测试txt文件的输出(我改变了它,添加了我的,但问题仍然存在)。我只是诚实地甚至不知道应该监测什么变量(有一张位置的图片
)
我从另一个EA中提取了函数GetLot(在文件中)。 在我的旧EA中,本身没有错误,但在我的EA中,产生了
'(' -函数 定义意外 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (106, 15)
'Free' - 变量未定义 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic。mq4 (112, 28)
'Risk' - 未定义的变量 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 33)
'Free' - 未定义的变量 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (115, 17)
有什么问题呢?
griha:
我从另一个EA中提取了函数GetLot(在文件中)。 在我的旧EA中,本身没有错误,但在我的EA中,产生了
'(' - 函数定义意外 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (106, 15)
'Free' - 变量未定义 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic。mq4 (112, 28)
'Risk' - 未定义的变量 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 33)
'Free' - 未定义的变量 C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (115, 17)
有什么问题?
在第一个If 之前,start函数的代码中有一个额外的大括号,这就是为什么会出现错误。为了便于阅读,你应该总是尽量把它们放在前面,然后把你需要的东西都写在里面。 更好的是,你应该把它们放在新的一行,并有一个偏移量,这样独立的块就不会被混淆(例如,像上一页给出的代码那样)
P.S. 。
我认为地段计算的公式是这样的
对于步长超过0.01的0.1手,将无法正常工作,也许我漏掉了什么,但那样的话,手数将永远等于0(MathFloor(900*2/100/1324/0.02=0.67975831)=0,所以0*步长=0)。我不知道如何计算类似于OrderProfitPips( )的东西,对于一个选定的订单,如果该货币对是任意的。也就是以点为单位的利润,而不是以账户货币为单位。
我需要准确的点数 - 分析不同货币对的多货币交易的有效性。我需要四位数的点数(或适当的两位数,如果该货币对是日元)。考虑到账户货币为美元,合同规模为100 000单位。
如果该货币对是欧元兑美元,一切都很简单。
pips = OrderProfit( ) / ( OrderLots( ) * 10. );
如果货币对是澳元兑瑞郎,情况就有点复杂了。如果该账户是一个法郎账户,其公式将完全相同。但该账户是一个法郎账户,即OrderProfit()以美元返回。所以我的利润应该换成法郎。
pips = USDCHF * OrderProfit( ) / ( OrderLots( ) * 10. );
对吗?
我不知道如何计算类似于OrderProfitPips( )的所选订单,如果该货币对是任意的。也就是以点为单位的利润,而不是以账户货币为单位。
我需要准确的点数 - 分析不同货币对的多货币交易的有效性。我需要四位数的点数(或适当的两位数,如果该货币对是日元)。考虑到账户货币为美元,合同规模为100 000单位。
如果货币对是欧元兑美元,一切都很简单。
pips = OrderProfit( ) / ( OrderLots( ) * 10. );
如果货币对是澳元兑瑞郎,情况就有点复杂了。如果该账户是一个法郎账户,其公式将完全相同。但该账户是美元账户,即OrderProfit()以美元返回。所以我的利润应该换成法郎。
pips = USDCHF * OrderProfit( ) / ( OrderLots( ) * 10. );
对吗?
你读过http://www.fxtrademaker.com/fx_calculation.htm 吗? 或者是http://thismatter.com/money/forex/leverage-margin-pips.htm?
据我所知,对于欧元兑美元,PipProfit = USDprofit/lot/Point。对于反向报价的货币对,我们需要取开盘价和当前价之间的差额并乘以Digits:Pips = OrderOpenPrice()-Bid*Digits_coefficient; 其中
Digits_coefficient = MathPow(10,Digits);
是的,这两个链接似乎都有用途。谢谢你。
P.S. 我决定不以点计算,而是以账户货币计算。日元交叉盘的点数与通常的点数太不相称了。而我想把它们加起来(当然是按惯例)......
是的,这两个链接似乎都有用途。谢谢你。
P.S. 我决定不以点计算,而是以账户货币计算。日元交叉盘的点位数字与通常的点位数字太不相称了。而我想把它们加起来(当然是有条件的)...
点子就是点子,怎么可能不成正比?欧元兑美元的20点利润与日元的20点利润有什么不同?你一定是数错了...但是用账户的货币来计算确实比较容易。
那么,在你的链接(第二条)上,一切都可以看到。
你买入100,000 单位的欧元/日元=164.09,当欧元/日元=164.10,美元/日元=121.35 时卖出。
以日元为单位的利润=164.10-164.09=.01日元=1点 (记住日元的例外: 1日元点=0.01日元。)
以日元为单位的总利润=1 x100,000=100,000点。
总利润以日元计=100,000点/100=1,000日元。
因为你只有美元/日元=121.35 的报价,为了得到美元的利润,你要除以报价货币的转换率。
总利润(美元)=1,000/121.35=8.24美元。
如果你只有这个报价,JPY/USD=0.00824,相当于上述数值,你用以下公式将日元的点数转换为本国货币。
总利润(美元)=1,000 x0.00824= 8.24美元。
在这个例子中,8.24美元的利润(相当于1手欧元兑美元的0.824个点)相当于 10万个 日元的点数
P.S. 我觉得自己是个十足的新手......
嗯,你的链接(第二个)显示了这一切。
8.24美元的利润(相当于1手欧元兑美元的0.824个点)相当于 十万个 日元的点!这也是一个很好的例子。
你读错了。对于有反向报价的货币对,取开盘价 和当前价 之间的差额,并乘以从Digits获得的乘数 ( Pips = (Bid -OrderOpenPrice())*Digits_coefficient; ) ,这样就可以得到(80.60-80.45=0.15) * MathPow(10,Digits) = 15点,其中
再简单不过了,不是吗?
P.S.: 虽然没有,但可以更简单))))。
而且这种表达方式对所有货币对都是正确的!