mode_tickvalue -- lies!!!!:) - 页 3 1234567 新评论 Dmitry Fedoseev 2010.01.13 10:50 #21 SProgrammer писал(а)>> 我是个聪明人,你知道的 :)- 我在测试器中运行它。那里不可能有任何未确定的东西。 我在那里举了一个例子--你能用手计算吗?我也给了你Marketinfo的答案。 许多经纪公司的网站上都有JavaScript计算器,你可以复制它,看看如何正确计算。 kombat 2010.01.13 10:52 #22 对于报价货币与存款货币相同的货币对 MarketInfo(Symbol(),MODE_LOTSIZE)*MarketInfo(Symbol(),MODE_TICKSIZE) 在扩展版本中,你将需要分析报价的货币... kombat 2010.01.13 11:03 #23 存放货币美元,在美元兑日元图表 上抛出代码,读数相同。MarketInfo(Symbol(),MODE_LOTSIZE)*MarketInfo(Symbol(),MODE_TICKSIZE) )/MarketInfo(Symbol(),MODE_BID) 因此,我们可以相信 "痒痒虫"... [删除] 2010.01.13 11:15 #24 SProgrammer >>: Вы ручками считать проверяли? 我只知道如何自动做。 #property show_inputs extern string BaseCurrency = "USD"; bool RealSymbol( string Str ) { return(MarketInfo( Str, MODE_BID) != 0); } double GetTickValue( string Symb, bool Average ) { string Str, ProfitCurrency, SymbolPrefix; double Res, PriceExchage; ProfitCurrency = StringSubstr( Symb, 3, 3); SymbolPrefix = StringSubstr( Symb, 6); if ( ProfitCurrency == BaseCurrency) Res = MarketInfo( Symb, MODE_LOTSIZE) * MarketInfo( Symb, MODE_TICKSIZE); else { Str = BaseCurrency + ProfitCurrency + SymbolPrefix; if ( RealSymbol( Str)) { if ( Average) PriceExchage = (MarketInfo( Str, MODE_BID) + MarketInfo( Str, MODE_ASK)) / 2; else // PriceExchage = MarketInfo(Str, MODE_BID); // Так считает MetaTrader4 - неправильно PriceExchage = MarketInfo( Str, MODE_ASK); // Правильный вариант Res = MarketInfo( Symb, MODE_LOTSIZE) * MarketInfo( Symb, MODE_TICKSIZE) / PriceExchage; } else { Str = ProfitCurrency + BaseCurrency + SymbolPrefix; if ( Average) PriceExchage = (MarketInfo( Str, MODE_BID) + MarketInfo( Str, MODE_ASK)) / 2; else PriceExchage = MarketInfo( Str, MODE_BID); Res = MarketInfo( Symb, MODE_LOTSIZE) * MarketInfo( Symb, MODE_TICKSIZE) * PriceExchage; } } return( Res); } void start() { double TickValue, TickValue1, TickValue2; TickValue = MarketInfo(Symbol(), MODE_TICKVALUE); TickValue1 = GetTickValue(Symbol(), TRUE); TickValue2 = GetTickValue(Symbol(), FALSE); Print("MT4 TickValue = " + DoubleToStr( TickValue, 5)); Print("Average TickValue = " + DoubleToStr( TickValue1, 5)); Print("Real TickValue = " + DoubleToStr( TickValue2, 5)); return; } 你是对的,MODE_TICKVALUE 在某些情况下不能正确 计算:所有东西都只通过BID价格 计算,即使它应该通过ASK价格 计算。 kombat 2010.01.13 11:18 #25 getch >>: Умею только автоматом: Вы оказались правы, MODE_TICKVALUE считается в некоторых случаях некорректно: все считается только через BID-цену, даже когда надо считать через ASK-цену. 这有多大的误差? [删除] 2010.01.13 11:21 #26 kombat >>: А насколь % эта погрешность? 足够让审计人员产生疑问。 kombat 2010.01.13 11:23 #27 getch >>: Достаточная, чтобы у аудиторов возникли вопросы. 关于tic volum? 我以为他们只对开盘价收盘价感兴趣...? John 2010.01.13 11:33 #28 kombat >>: Нуно не одна из, а та что валюта котировки, JPY в данном случае. 观察-- 美元兑日元 测试员在期间 2008/10/01 -> 2009/01/01 跳到2008/10/01 ==== 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_FREEZELEVEL=0.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MARGINREQUIRED=1000.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MARGINHEDGED=0.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MARGINMAINTENANCE=0.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MARGININIT=0.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MARGINCALCMODE=0.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_PROFITCALCMODE=0.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_SWAPTYPE=0.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MAXLOT=1000.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_LOTSTEP=0.10000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MINLOT=0.10000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_TRADEALLOWED=0.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_EXPIRATION=0.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_STARTING=0.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_SWAPSHORT=-0.50000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_SWAPLONG=-0.50000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_TICKSIZE=0.00100000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_TICKVALUE=1.09488252 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_LOTSIZE=100000.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_STOPLEVEL=20.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_SPREAD=19.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_DIGITS=3.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_POINT=0.00100000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_ASK=111.70900000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_BID=111.69000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_TIME=1199260860.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_HIGH=0.00000000 2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_LOW=0.00000000 ============= string s=Symbol(); int Code2[]={ MODE_LOW, MODE_HIGH, MODE_TIME, MODE_BID, MODE_ASK, MODE_POINT, MODE_DIGITS, MODE_SPREAD, MODE_STOPLEVEL, MODE_LOTSIZE, MODE_TICKVALUE, MODE_TICKSIZE, MODE_SWAPLONG, MODE_SWAPSHORT, MODE_STARTING, MODE_EXPIRATION, MODE_TRADEALLOWED, MODE_MINLOT, MODE_LOTSTEP, MODE_MAXLOT, MODE_SWAPTYPE, MODE_PROFITCALCMODE, MODE_MARGINCALCMODE, MODE_MARGININIT, MODE_MARGINMAINTENANCE, MODE_MARGINHEDGED, MODE_MARGINREQUIRED, MODE_FREEZELEVEL }; string CodeName2[]={"MODE_LOW", "MODE_HIGH", "MODE_TIME", "MODE_BID", "MODE_ASK", "MODE_POINT", "MODE_DIGITS", "MODE_SPREAD", "MODE_STOPLEVEL", "MODE_LOTSIZE", "MODE_TICKVALUE", "MODE_TICKSIZE", "MODE_SWAPLONG", "MODE_SWAPSHORT", "MODE_STARTING", "MODE_EXPIRATION", "MODE_TRADEALLOWED", "MODE_MINLOT", "MODE_LOTSTEP", "MODE_MAXLOT", "MODE_SWAPTYPE", "MODE_PROFITCALCMODE", "MODE_MARGINCALCMODE", "MODE_MARGININIT", "MODE_MARGINMAINTENANCE", "MODE_MARGINHEDGED", "MODE_MARGINREQUIRED", "MODE_FREEZELEVEL" }; for ( i=0; i< ArraySize( Code2); i++){ double mre = MarketInfo ( s, Code2[ i]); int err = GetLastError(); Print ( CodeName2[ i],"=", DoubleToStr( mre,9)); if ( ERR_NO_ERROR != err ) Print ( "error(", err,")", "--", ErrorDescription( err) ); MODE_TICKVALUE -- LIES!!!! :) Error #130? Symbol() --- 2010.01.13 11:36 #29 SProgrammer >>: MODE_TICKVALUE для EURUSD по маркетинфо = 1.0000000 :), а не 10. 1 - 用于5位数 10 - 为4 [删除] 2010.01.13 11:37 #30 kombat >>: По тик волуму??? Мне казалось что их интересует лишь цена окрытия цена закрытия... 我不知道开发商是如何计算利润的。如果他们通过MODE_TICKVALUE 来做,那么在某些情况下,利润的计算是不正确的,比实际的要多。例如,在GBPJPY 上。 但事实上MetaTrader4 计算利润的方式根本不正确--它将利润货币立即转换为账户基础货币。正确的方法是在价值时进行。 在银行间,如果你用账户货币以外的盈利货币开仓和平仓(例如,在美元账户 上你做了一笔美元兑日元 的交易),Equity 就会不断变化。而只有在估值的时候(我可能用错了这个词),股权 才是固定的(用这个例子来说--日元 的利润是按当前美元兑 日元 的汇率折算的)。 最有趣的是如何计算利润,例如在欧元账户 上的澳元新西兰元,当经纪人没有提供欧元新西兰元 汇率时... 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我是个聪明人,你知道的 :)- 我在测试器中运行它。那里不可能有任何未确定的东西。
我在那里举了一个例子--你能用手计算吗?我也给了你Marketinfo的答案。
许多经纪公司的网站上都有JavaScript计算器,你可以复制它,看看如何正确计算。
对于报价货币与存款货币相同的货币对
在扩展版本中,你将需要分析报价的货币...
存放货币美元,在美元兑日元图表 上抛出代码,读数相同。
因此,我们可以相信 "痒痒虫"...Вы ручками считать проверяли?
我只知道如何自动做。
你是对的,MODE_TICKVALUE 在某些情况下不能正确 计算:所有东西都只通过BID价格 计算,即使它应该通过ASK价格 计算。
Умею только автоматом:
Вы оказались правы, MODE_TICKVALUE считается в некоторых случаях некорректно: все считается только через BID-цену, даже когда надо считать через ASK-цену.
这有多大的误差?
А насколь % эта погрешность?
足够让审计人员产生疑问。
Достаточная, чтобы у аудиторов возникли вопросы.
关于tic volum?
我以为他们只对开盘价收盘价感兴趣...?
Нуно не одна из, а та что валюта котировки, JPY в данном случае.
观察--
美元兑日元
测试员在期间
2008/10/01 -> 2009/01/01
跳到2008/10/01
====
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_FREEZELEVEL=0.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MARGINREQUIRED=1000.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MARGINHEDGED=0.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MARGINMAINTENANCE=0.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MARGININIT=0.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MARGINCALCMODE=0.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_PROFITCALCMODE=0.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_SWAPTYPE=0.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MAXLOT=1000.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_LOTSTEP=0.10000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_MINLOT=0.10000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_TRADEALLOWED=0.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_EXPIRATION=0.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_STARTING=0.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_SWAPSHORT=-0.50000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_SWAPLONG=-0.50000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_TICKSIZE=0.00100000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_TICKVALUE=1.09488252
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_LOTSIZE=100000.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_STOPLEVEL=20.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_SPREAD=19.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_DIGITS=3.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_POINT=0.00100000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_ASK=111.70900000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_BID=111.69000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_TIME=1199260860.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_HIGH=0.00000000
2010.01.13 12:14:42 2008.01.02 08:01 OTestExpert3 USDJPY,M1: MODE_LOW=0.00000000
=============
MODE_TICKVALUE для EURUSD по маркетинфо = 1.0000000 :), а не 10.
1 - 用于5位数
10 - 为4
По тик волуму???
Мне казалось что их интересует лишь цена окрытия цена закрытия...
我不知道开发商是如何计算利润的。如果他们通过MODE_TICKVALUE 来做,那么在某些情况下,利润的计算是不正确的,比实际的要多。例如,在GBPJPY 上。
但事实上MetaTrader4 计算利润的方式根本不正确--它将利润货币立即转换为账户基础货币。正确的方法是在价值时进行。
在银行间,如果你用账户货币以外的盈利货币开仓和平仓(例如,在美元账户 上你做了一笔美元兑日元 的交易),Equity 就会不断变化。而只有在估值的时候(我可能用错了这个词),股权 才是固定的(用这个例子来说--日元 的利润是按当前美元兑 日元 的汇率折算的)。
最有趣的是如何计算利润,例如在欧元账户 上的澳元新西兰元,当经纪人没有提供欧元新西兰元 汇率时...