新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 587 1...580581582583584585586587588589590591592593594...1953 新评论 bij 2018.07.25 09:57 #5861 Andrey Barinov:这就是它的编译方式。 谢谢。我天真地以为,修正一打编译错误就能把一个工作的mql4代码变成一个mql5指标) 它不想显示一天中的最大值、最小值。它离目标有多远? Andrey Barinov 2018.07.25 10:00 #5862 bij:谢谢。我天真地以为,修正一打编译错误就能让一个工作的mql4代码变成一个mql5指标) 它不想显示至少一天的时间。它离目标有多远?我不知道 :) 尝试在OnCalculate开始时使用ArraySetAsSeries来扩展缓冲区的数组 Alexey Viktorov 2018.07.25 10:05 #5863 bij:谢谢。我天真地以为,修正一打编译错误就能让一个工作的mql4代码变成一个mql5指标) 它不想显示一天中的最大值、最小值。它离目标有多远? 有如此大量的代码行,只是为了显示当天的高点和低点? bij 2018.07.25 10:14 #5864 Alexey Viktorov: 仅仅为了显示一天中的高点和低点,就有如此庞大的代码行? 是的,还有当天的收盘价,但它是在历史上,而不仅仅是前一天的。这就是困难所在。 Alexey Viktorov 2018.07.25 10:23 #5865 bij: 是的,也是当天的收盘,但这是在历史上,而不仅仅是前一天的。这是最棘手的部分。这是你的代码吗?还是按顺序写的呢? 你能给我看一下它在MT4中的快照吗? bij 2018.07.26 09:47 #5866 Alexey Viktorov:这是你的代码吗?还是按顺序写的呢?你能给我看一下它在MT4中的快照吗?该指标来自网络。我手头没有MT4,我就用文字告诉你。从每天的开始到结束,按当天的最高价、最低价和收盘价排列。但是,我不想在当天的收盘价 上画线,而是想在21:00的小节收盘价上画线。 也许真的可以让它变得更容易,而不是矫揉造作。 lil_lil 2018.07.26 23:10 #5867 我一次关闭4个头寸,如何在计算损失的功能中把它们算作一个连续的头寸? 由于滑移,它们可能会以相同的价格收盘,时间也可能不同。 试试吧。 int CountLOS() { double priceold=0; datetime datold; int count=0; for(int trade=OrdersHistoryTotal()-1;trade>=0; trade--) { OrderSelect(trade,SELECT_BY_POS,MODE_HISTORY); if(OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { if(OrderMagicNumber()==_MagicNumber) { if(OrderProfit()<=0&&datold !=OrderCloseTime()) {count++; datold =OrderCloseTime();} //if(OrderProfit()<=0&&priceold !=OrderClosePrice()) {count++; priceold =OrderClosePrice();} else break; } } } } return(count); } Konstantin Erin 2018.07.27 07:04 #5868 lil_lil:我一次关闭4个头寸,如何在计算损失的功能中把它们算作一个连续的头寸? 由于滑移,它们可能不会以相同的价格收盘,而且时间可能不同。 因为滑点的价格是不同的,时间也是不同的;一个是在一秒钟结束时收盘,而另一个是在下一秒钟开始时收盘。尽量在收盘时记录订单的代号。你可以将它们记录在一个文件中... Vitaly Muzichenko 2018.07.27 07:09 #5869 lil_lil:我一次关闭4个头寸,如何在计算损失的功能中把它们算作一个连续的头寸? 由于滑移,它们可能会以相同的价格收盘,时间也可能不同。 审判。 我循环查看最后关闭的那些。如果最后一个关闭的是负数,那么我就看120秒(2分钟)内所有关闭的,并计算总利润。 Vitaly Muzichenko 2018.07.27 07:21 #5870 lil_lil:我一次关闭4个头寸,如何在计算损失的功能中把它们算作一个连续的头寸? 由于滑移,它们可能会以相同的价格收盘,时间也可能不同。 我试过了。 类似这样的事情。 datetime _oct=0,time=0,_pt=0; int _cnt=0; for(int i=OrdersHistoryTotal()-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if(OrderSymbol()==symb && OrderMagicNumber()==mg) { int OrdersType=OrderType(); // BUY && SELL if(OrdersType<=1) { CopyTime(OrderSymbol(),PERIOD_D1,0,1,itime); if((OrderCloseTime()>=itime[0] && OrderCloseTime()<itime[0]+86400)) { _Get.Hist.BS._ProfitDaily+=OrderProfit()+OrderCommission()+OrderSwap(); // Profit за сегодня } // 120 секунд разницы между закрытием первой и последней в сетке _oct=OrderCloseTime(); if(_cnt==0 && _oct!=0) time=_oct; if(_oct+120>=time) { _Get.Hist.BS._ProfitOldClose+=OrderProfit()+OrderSwap()+OrderCommission(); // Profit последнего трейда _cnt++; } } }}} 1...580581582583584585586587588589590591592593594...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这就是它的编译方式。
谢谢。我天真地以为,修正一打编译错误就能把一个工作的mql4代码变成一个mql5指标)
它不想显示一天中的最大值、最小值。它离目标有多远?
谢谢。我天真地以为,修正一打编译错误就能让一个工作的mql4代码变成一个mql5指标)
它不想显示至少一天的时间。它离目标有多远?
我不知道 :)
尝试在OnCalculate开始时使用ArraySetAsSeries来扩展缓冲区的数组
谢谢。我天真地以为,修正一打编译错误就能让一个工作的mql4代码变成一个mql5指标)
它不想显示一天中的最大值、最小值。它离目标有多远?
仅仅为了显示一天中的高点和低点,就有如此庞大的代码行?
是的,也是当天的收盘,但这是在历史上,而不仅仅是前一天的。这是最棘手的部分。
这是你的代码吗?还是按顺序写的呢?
你能给我看一下它在MT4中的快照吗?
这是你的代码吗?还是按顺序写的呢?
你能给我看一下它在MT4中的快照吗?
该指标来自网络。我手头没有MT4,我就用文字告诉你。从每天的开始到结束,按当天的最高价、最低价和收盘价排列。但是,我不想在当天的收盘价 上画线,而是想在21:00的小节收盘价上画线。
也许真的可以让它变得更容易,而不是矫揉造作。
我一次关闭4个头寸,如何在计算损失的功能中把它们算作一个连续的头寸?
由于滑移,它们可能会以相同的价格收盘,时间也可能不同。
试试吧。
我一次关闭4个头寸,如何在计算损失的功能中把它们算作一个连续的头寸?
由于滑移,它们可能不会以相同的价格收盘,而且时间可能不同。
因为滑点的价格是不同的,时间也是不同的;一个是在一秒钟结束时收盘,而另一个是在下一秒钟开始时收盘。尽量在收盘时记录订单的代号。你可以将它们记录在一个文件中...
我一次关闭4个头寸,如何在计算损失的功能中把它们算作一个连续的头寸?
由于滑移,它们可能会以相同的价格收盘,时间也可能不同。
审判。
我循环查看最后关闭的那些。如果最后一个关闭的是负数,那么我就看120秒(2分钟)内所有关闭的,并计算总利润。
我一次关闭4个头寸,如何在计算损失的功能中把它们算作一个连续的头寸?
由于滑移,它们可能会以相同的价格收盘,时间也可能不同。
我试过了。
类似这样的事情。