初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1327 1...132013211322132313241325132613271328132913301331133213331334...1503 新评论 Aleksandr Egorov 2021.07.14 19:39 #13261 SanAlex:所有相同的零,不想显示佣金 double Komsa(string Pair) { double commicion=0; int tikett,entry; ulong tik,ord; //--------------------------------------------------------------- for(int i=PositionsTotal()-1;i>=0;i--) { if(PositionGetSymbol(i)==Pair){ tik=PositionGetTicket(i); //--------------------------------------------------------------- HistorySelect(0,TimeCurrent()); for(uint r=HistoryDealsTotal()-1;r>0;r--) { if((tikett=HistoryDealGetTicket(r))>0) { ord=HistoryDealGetInteger(tikett,DEAL_ORDER); entry =HistoryDealGetInteger(tikett,DEAL_ENTRY); if(entry==DEAL_ENTRY_IN) { if(tik==ord) { commicion+=HistoryDealGetDouble(tikett,DEAL_COMMISSION)*2; } } } } } } //-------------------------------------------------------------- Comment( " commisia "+commicion); return(commicion); } 我不知道它是对还是错,但我检查了一下,它显示正确。 SanAlex 2021.07.14 19:41 #13262 Aleksandr Egorov:总之,在选定的一对上就是这样计算的 谢谢你!- 我现在就去试试,毕竟我需要搞清楚这个功能。 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 是的!它正在工作。谢谢你! Aleksandr Egorov 2021.07.14 19:58 #13263 SanAlex:谢谢你!- 我现在要去试试,毕竟我得弄清楚这个功能\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\是的!它显示了。谢谢你!事实证明,如果只计算一方的佣金,那么函数将不能正确工作,因为它被乘以2。DEAL_ENTRY_IN 我们需要以某种方式完善它 SanAlex 2021.07.14 20:11 #13264 Aleksandr Egorov:事实证明,如果只计算一方的佣金,那么函数将不能正确工作,因为它被乘以2。 我需要把它修得完美无缺 它似乎能正确显示一切 我做了一些调整--我不知道这是否正确,但警告已经消失了 //+------------------------------------------------------------------+ //| Commission.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" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- Komsa(_Symbol); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double Komsa(string Pair) { double commicion=0; ulong tikett,entry; ulong tik,ord; //--------------------------------------------------------------- for(int i=PositionsTotal()-1; i>=0; i--) { if(PositionGetSymbol(i)==Pair) { tik=PositionGetTicket(i); //--------------------------------------------------------------- HistorySelect(0,TimeCurrent()); for(uint r=HistoryDealsTotal()-1; r>0; r--) { if((tikett=HistoryDealGetTicket(r))>0) { ord=HistoryDealGetInteger(tikett,DEAL_ORDER); entry =HistoryDealGetInteger(tikett,DEAL_ENTRY); if(entry==DEAL_ENTRY_IN) { if(tik==ord) { commicion+=HistoryDealGetDouble(tikett,DEAL_COMMISSION); } } } } } } //-------------------------------------------------------------- Comment(" commisia "+DoubleToString(commicion,2)); return(commicion); } //+------------------------------------------------------------------+ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 我开了一个相反的头寸,佣金也增加了--似乎是正确的 Aleksandr Egorov 2021.07.14 20:21 #13265 SanAlex:它似乎能准确地显示一切。我对它进行了一些调整--我不知道它是否正确,但警告已经消失。\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\我开了一个相反的头寸,佣金也增加了--看来是正确的。有必要检查一下,如果你用1手开仓,然后用0.5手平仓,是计算进场和出场,还是只计算进场和撤回部分仓位。 我有很多工作要做。 Dmitiry Ananiev 2021.07.14 20:26 #13266 这个脚本显示了每个工具的 本期利润、总手数和佣金。 不,谢谢。 附加的文件: All_Profit.mq5 7 kb Aleksandr Egorov 2021.07.14 20:30 #13267 Dmitiry Ananiev:这个脚本显示了每个工具的 本期利润、总手数和佣金。 不要感谢我。 脚本是好的,但问题是你需要一个关于未结头寸的comsa,而这是在历史中。 Valeriy Yastremskiy 2021.07.15 05:14 #13268 Aleksandr Egorov:剧本很好,但问题是你需要一个开放姿势的comsa,这在故事中。 以前已经讨论过这个问题了。你可以在经纪人的交易条件中看到佣金(由经纪人申报)。而执行订单(order)的真正佣金,你只能在执行订单之后才能知道,在执行之前是无法知道的。 ZS.它就像下一个tick上的价差。在当前的刻度中,我们不知道下一个刻度会是什么,既不知道价格,也不知道点差,也不知道掉期,更不知道佣金。而且经纪人有权改变它们。 SanAlex 2021.07.15 06:06 #13269 Aleksandr Egorov:我需要检查,如果我以1手开仓,然后以0.5手平仓,是算入仓和出仓,还是只算入仓和扣除部分仓位。 我还得乱来。 我在研究 一些有趣的 东西--我自己还不明白。 我在开仓时和平仓时分别检查。 //+------------------------------------------------------------------+ //| Commission.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" #include <Trade\Trade.mqh> CTrade trade; #property script_show_inputs //--- input bool Inp_open_close = false; // Open --> false || Close --> true //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart(void) { //--- if(!Inp_open_close) { if(!trade.PositionOpen(_Symbol,ORDER_TYPE_BUY,0.1,SYMBOL_ASK,0.0,0.0)) Print(trade.ResultRetcode()); PlaySound("ok.wav"); CSV_OPEN(); } if(Inp_open_close) { if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && Bars(_Symbol,_Period)>100) trade.PositionClose(_Symbol,3); PlaySound("ok.wav"); CSV_CLOS(); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double Komsa(void) { double commicion=0; ulong tikett,entry; ulong tik,ord; //--------------------------------------------------------------- for(int i=PositionsTotal()-1; i>=0; i--) { if(PositionGetSymbol(i)==_Symbol) { tik=PositionGetTicket(i); //--------------------------------------------------------------- HistorySelect(0,TimeCurrent()); for(uint r=HistoryDealsTotal()-1; r>0; r--) { if((tikett=HistoryDealGetTicket(r))>0) { ord=HistoryDealGetInteger(tikett,DEAL_ORDER); entry =HistoryDealGetInteger(tikett,DEAL_ENTRY); if(entry==DEAL_ENTRY_IN) { if(tik==ord) { commicion+=HistoryDealGetDouble(tikett,DEAL_COMMISSION); } } } } } } //-------------------------------------------------------------- Comment(" commisia "+DoubleToString(commicion,2)); return(commicion); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CSV_OPEN(void) { //--- ResetLastError(); int filehandle=FileOpen("CommissionOpen.csv",FILE_READ|FILE_WRITE|FILE_CSV); if(filehandle==-1) { int res=GetLastError(); Print("File open error : ", res); return; } FileSeek(filehandle, 0, SEEK_END); FileWrite(filehandle,Komsa()); FileClose(filehandle); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CSV_CLOS(void) { //--- ResetLastError(); int filehandle=FileOpen("CommissionClose.csv",FILE_READ|FILE_WRITE|FILE_CSV); if(filehandle==-1) { int res=GetLastError(); Print("File open error : ", res); return; } FileSeek(filehandle, 0, SEEK_END); FileWrite(filehandle,Komsa()); FileClose(filehandle); } //+------------------------------------------------------------------+ Vitaly Muzichenko 2021.07.15 07:32 #13270 Valeriy Yastremskiy:以前已经讨论过这个问题了。你可以在经纪人的交易条件中看到佣金(由经纪人申报)。而订单(指令)执行的真正佣金,你只能在订单执行后才能知道,在执行前你是无法知道的。ZS.它就像下一个tick上的价差。在当前的刻度中,我们不知道下一个刻度会是什么,既不知道价格,也不知道点差,也不知道掉期,更不知道佣金。而且经纪人有权改变它们。 所以他需要知道他的空缺职位。 关于交易、自动交易系统和策略测试器的论坛 初学者的问题 MQL5 MT5 MetaTrader 5 Aleksandr Egorov, 2021.07.14 22:30 我有一个很好的想法,就是用 这个剧本来做什么。 1...132013211322132313241325132613271328132913301331133213331334...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
所有相同的零,不想显示佣金
我不知道它是对还是错,但我检查了一下,它显示正确。
总之,在选定的一对上就是这样计算的
谢谢你!- 我现在就去试试,毕竟我需要搞清楚这个功能。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
是的!它正在工作。谢谢你!
谢谢你!- 我现在要去试试,毕竟我得弄清楚这个功能
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
是的!它显示了。谢谢你!
事实证明,如果只计算一方的佣金,那么函数将不能正确工作,因为它被乘以2。
DEAL_ENTRY_IN
我们需要以某种方式完善它事实证明,如果只计算一方的佣金,那么函数将不能正确工作,因为它被乘以2。
我需要把它修得完美无缺它似乎能正确显示一切
我做了一些调整--我不知道这是否正确,但警告已经消失了
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
我开了一个相反的头寸,佣金也增加了--似乎是正确的
它似乎能准确地显示一切。
我对它进行了一些调整--我不知道它是否正确,但警告已经消失。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
我开了一个相反的头寸,佣金也增加了--看来是正确的。
有必要检查一下,如果你用1手开仓,然后用0.5手平仓,是计算进场和出场,还是只计算进场和撤回部分仓位。
我有很多工作要做。这个脚本显示了每个工具的 本期利润、总手数和佣金。
不,谢谢。
这个脚本显示了每个工具的 本期利润、总手数和佣金。
不要感谢我。
脚本是好的,但问题是你需要一个关于未结头寸的comsa,而这是在历史中。
剧本很好,但问题是你需要一个开放姿势的comsa,这在故事中。
以前已经讨论过这个问题了。你可以在经纪人的交易条件中看到佣金(由经纪人申报)。而执行订单(order)的真正佣金,你只能在执行订单之后才能知道,在执行之前是无法知道的。
ZS.它就像下一个tick上的价差。在当前的刻度中,我们不知道下一个刻度会是什么,既不知道价格,也不知道点差,也不知道掉期,更不知道佣金。而且经纪人有权改变它们。
我需要检查,如果我以1手开仓,然后以0.5手平仓,是算入仓和出仓,还是只算入仓和扣除部分仓位。
我还得乱来。我在研究 一些有趣的 东西--我自己还不明白。 我在开仓时和平仓时分别检查。
以前已经讨论过这个问题了。你可以在经纪人的交易条件中看到佣金(由经纪人申报)。而订单(指令)执行的真正佣金,你只能在订单执行后才能知道,在执行前你是无法知道的。
ZS.它就像下一个tick上的价差。在当前的刻度中,我们不知道下一个刻度会是什么,既不知道价格,也不知道点差,也不知道掉期,更不知道佣金。而且经纪人有权改变它们。
所以他需要知道他的空缺职位。
关于交易、自动交易系统和策略测试器的论坛
初学者的问题 MQL5 MT5 MetaTrader 5
Aleksandr Egorov, 2021.07.14 22:30
我有一个很好的想法,就是用 这个剧本来做什么。