新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 155 1...148149150151152153154155156157158159160161162...1953 新评论 Artyom Trishkin 2017.03.19 09:40 #1541 Alexander Antoshkin:你能......?计算一下换一个灯泡需要多少个霍比特人?寄给自由职业者?写 "在那里读它"?我如何在历史上找到关闭系列订单的坐标,就像例子中那样(我打算在这一点上画一条线)。 我已经在这个主题的151页上问过这个问题,但没有找到解决办法 ... https://www.mql5.com/ru/forum/160683/page151 你应该在历史上寻找一系列具有相同收盘条的订单。这个酒吧的时间将是你正在寻找的。 [删除] 2017.03.19 09:51 #1542 Alexander Antoshkin:你能......?计算一下换一个灯泡需要多少个霍比特人?寄给自由职业者?写 "在那里读它"?我们可以做很多事情:)霍比特人的问题没有一个放之四海而皆准的解决方案......。如果你不明白,我的回答来自维塔利-波斯托拉奇 引用的同一视频。但说真的。我如何在历史上找到一个交易关闭一系列订单的坐标,就像例子中那样(我打算在这时画一条线)。我已经在这个主题的151页上问过这个问题,但没有找到解决办法。https://www.mql5.com/ru/forum/160683/page151我没有读过该链接的分支。但它会是这样的。 确定几个订单(一种或不同类型)在X点内的收盘事实(需要X范围,因为在现实中,所有的交易可能不会以相同的价格收盘),确定平均收盘价,并通过它画一条线。 [删除] 2017.03.19 09:52 #1543 Artyom Trishkin: 搜索历史上一系列具有相同收盘条的订单。这个酒吧的时间将是你正在寻找的。 这和我的解决方法是一样的问题:根据ping和订单的数量,同一蜡烛上的所有交易可能不会关闭... Artyom Trishkin 2017.03.19 10:00 #1544 Alexey Kozitsyn: 这和我的解决方法是一样的问题:根据平移和订单的数量,同一蜡烛上的所有交易可能不会关闭... 对于M1,我同意。对其他人来说,这是不可能的。除非平仓单在蜡烛开盘前出现。将有两套订单。取两个相邻的最后一个。 [删除] 2017.03.19 10:04 #1545 Artyom Trishkin: 对于M1,我同意。对其他人来说,这是不可能的。如果只是在蜡烛图开盘前收到了平仓的指令。将有两套订单。取两个相邻的最后一个。这里没有给出什么数据来决定:几个包可能在同一根蜡烛上被关闭(如果你检查,比如说,小时或日蜡烛图)。 Aleksey Vyazmikin 2017.03.19 10:23 #1546 Vitalie Postolache: 我想要平行的红线,但我希望它们相交,我希望其中三条是绿色的,其余是紫色的 ))哦,对了,还有那条小猫形状的直线!这条直线是什么?这个问题对你来说是错误的吗? [删除] 2017.03.19 10:25 #1547 Alexey Kozitsyn:没有足够的数据来决定:几个包可能在同一个蜡烛上被关闭(如果你检查,比如说,小时或日线蜡烛)。在任何情况下,越准确越好......。在我的版本中,订单是在无损追踪止损条件下关闭的。即if(b+s>0){ for(i=0; i<OrdersTotal(); i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ 如果(OrderSymbol()==Symbol() &&Magic==OrderMagicNumber() ){ tip = OrderType(); OSL =NormalizeDouble(OrderStopLoss(),Digits); OTP = NormalizeDouble(OrderTakeProfit(),Digits); OOP = NormalizeDouble(OrderOpenPrice(),Digits); SL=OSL; if(tip==OP_BUY){ SL=NormalizeDouble(Bid-TrailingStop*Point,Digits); 如果(SL>OSL && SL>NLb){ if(!OrderModify(OrderTicket(),OOP,SL,0,0,White))Print("Error Order Modify",GetLastError());}} if(tip==OP_SELL ){ SL=NormalizeDouble(Ask+TrailingStop*Point,Digits); 如果((SL<OSL || OSL==0) &&)SL<NLs){ if(!OrderModify(OrderTicket(),OOP,SL,0,0,White))Print("Error Order Modify" ,GetLastError());} Any questions from newcomers [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 初学者的问题 MQL4 MT4 MetaTrader Aleksey Vyazmikin 2017.03.19 10:27 #1548 Alexey Kozitsyn: 编写你自己的MA指标,这将包括一个额外的缓冲区,当一个新的条形图形成时,数值将被输入其中。我想讨论一种解决这个问题的算法,包括针对不同的移动平均数 平均方法。 [删除] 2017.03.19 10:29 #1549 Alexey Kozitsyn:我们可以做很多事情:) 确定在X点范围内关闭几个订单(相同或不同类型)的事实(需要X点范围,因为在现实中,所有的交易可能不会以相同的价格关闭),确定平均收盘价,并通过它画一条线。int TotalPos=-1; void start() { if(OrdersTotal()!=TotalPos) { // не мучаем каждый тик for(int i=OrdersHistoryTotal()-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if(OrderSymbol()==Symbol() && OrderType()<=1) { History(); } }}} TotalPos=OrdersTotal(); // запомним количество //-- } void History() { string Ticket=(string)OrderTicket(); color col=Red; if(OrderType()==0)col=Blue; datetime a=OrderOpenTime(); double b=OrderOpenPrice(); datetime c=OrderCloseTime(); double d=OrderClosePrice(); double prSep=OrderProfit()+OrderCommission()+OrderSwap(); double prAll=0; int cn=0; string hTicket; for(int i=OrdersHistoryTotal()-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if(OrderSymbol()==Symbol() && OrderType()<=1) { datetime ct=OrderCloseTime(); // 60 секунд разницы между закрытием первой и последней в сетке if(c<=ct+60 && c>=ct-60) { prAll+=OrderProfit()+OrderCommission()+OrderSwap(); hTicket=(string)OrderTicket(); cn++; } }}} ObjectCreate(Ticket+'Open',OBJ_ARROW,0,a,b); ObjectSet(Ticket+'Open',OBJPROP_COLOR,col); ObjectSet(Ticket+'Open',OBJPROP_ARROWCODE,1); ObjectCreate(Ticket+'Line',OBJ_TREND,0,a,b,c,d); ObjectSet(Ticket+'Line',OBJPROP_COLOR,col); ObjectSet(Ticket+'Line',OBJPROP_WIDTH,1); ObjectSet(Ticket+'Line',OBJPROP_STYLE,STYLE_DOT); ObjectSet(Ticket+'Line',OBJPROP_RAY,0); ObjectCreate(Ticket+'Close',OBJ_ARROW,0,c,d); ObjectSet(Ticket+'Close',OBJPROP_COLOR,Green); ObjectSet(Ticket+'Close',OBJPROP_ARROWCODE,3); Ticket=cn>1?hTicket:Ticket; ObjectCreate(Ticket+'Profit',OBJ_TEXT,0,c,d); ObjectSet(Ticket+'Profit',OBJPROP_ANCHOR,0); ObjectSetText(Ticket+'Profit',DoubleToString(prAll,2),10,'Arial',White); ObjectSet(Ticket+'Profit',OBJPROP_PRICE1,d); ObjectSet(Ticket+'Profit',OBJPROP_TIME1,c+Period()*60*2);这应该被添加到脚本中...考虑到如果一系列卖出指令被关闭的事实 ObjectCreate(Ticket+'Debt B',OBJ_HLINE,0,0,d)。 ObjectSet(Ticket+'Debt B',OBJPROP_COLOR,LimeGreen)。 ObjectSet(Ticket+'Debt B',OBJPROP_WIDTH,1)。如果一系列的买入订单被关闭ObjectCreate(Ticket+'Debt M',OBJ_HLINE,0,0,d)。 ObjectSet(Ticket+'Debt M',OBJPROP_COLOR,Red)。 ObjectSet(Ticket+'Debt M',OBJPROP_WIDTH,1)。 你能帮忙吗? [删除] 2017.03.19 10:33 #1550 -Aleks-:我想讨论一下处理这个问题的算法,包括对于不同的移动平均数 平均方法。 请看一下终端的Include文件夹中的MovingAverages.mqh文件。 1...148149150151152153154155156157158159160161162...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你能......?
计算一下换一个灯泡需要多少个霍比特人?
寄给自由职业者?写 "在那里读它"?
我如何在历史上找到关闭系列订单的坐标,就像例子中那样(我打算在这一点上画一条线)。
我已经在这个主题的151页上问过这个问题,但没有找到解决办法 ... https://www.mql5.com/ru/forum/160683/page151
你能......?
计算一下换一个灯泡需要多少个霍比特人?
寄给自由职业者?写 "在那里读它"?
我们可以做很多事情:)
霍比特人的问题没有一个放之四海而皆准的解决方案......。
如果你不明白,我的回答来自维塔利-波斯托拉奇 引用的同一视频。
但说真的。
我如何在历史上找到一个交易关闭一系列订单的坐标,就像例子中那样(我打算在这时画一条线)。
我已经在这个主题的151页上问过这个问题,但没有找到解决办法。https://www.mql5.com/ru/forum/160683/page151
我没有读过该链接的分支。但它会是这样的。
确定几个订单(一种或不同类型)在X点内的收盘事实(需要X范围,因为在现实中,所有的交易可能不会以相同的价格收盘),确定平均收盘价,并通过它画一条线。
搜索历史上一系列具有相同收盘条的订单。这个酒吧的时间将是你正在寻找的。
这和我的解决方法是一样的问题:根据平移和订单的数量,同一蜡烛上的所有交易可能不会关闭...
对于M1,我同意。对其他人来说,这是不可能的。如果只是在蜡烛图开盘前收到了平仓的指令。将有两套订单。取两个相邻的最后一个。
这里没有给出什么数据来决定:几个包可能在同一根蜡烛上被关闭(如果你检查,比如说,小时或日蜡烛图)。
我想要平行的红线,但我希望它们相交,我希望其中三条是绿色的,其余是紫色的 ))
哦,对了,还有那条小猫形状的直线!这条直线是什么?
这个问题对你来说是错误的吗?
没有足够的数据来决定:几个包可能在同一个蜡烛上被关闭(如果你检查,比如说,小时或日线蜡烛)。
在任何情况下,越准确越好......。
在我的版本中,订单是在无损追踪止损条件下关闭的。
即
if(b+s>0)
{
for(i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
如果(OrderSymbol()==Symbol() &&Magic==OrderMagicNumber() )
{
tip = OrderType();
OSL =NormalizeDouble(OrderStopLoss(),Digits);
OTP = NormalizeDouble(OrderTakeProfit(),Digits);
OOP = NormalizeDouble(OrderOpenPrice(),Digits);
SL=OSL;
if(tip==OP_BUY)
{
SL=NormalizeDouble(Bid-TrailingStop*Point,Digits);
如果(SL>OSL && SL>NLb)
{
if(!OrderModify(OrderTicket(),OOP,SL,0,0,White))Print("Error Order Modify",GetLastError());
}
}
if(tip==OP_SELL )
{
SL=NormalizeDouble(Ask+TrailingStop*Point,Digits);
如果((SL<OSL || OSL==0) &&)SL<NLs)
{
if(!OrderModify(OrderTicket(),OOP,SL,0,0,White))Print("Error Order Modify" ,GetLastError());
}
编写你自己的MA指标,这将包括一个额外的缓冲区,当一个新的条形图形成时,数值将被输入其中。
我想讨论一种解决这个问题的算法,包括针对不同的移动平均数 平均方法。
我们可以做很多事情:)
确定在X点范围内关闭几个订单(相同或不同类型)的事实(需要X点范围,因为在现实中,所有的交易可能不会以相同的价格关闭),确定平均收盘价,并通过它画一条线。
这应该被添加到脚本中...
考虑到如果一系列卖出指令被关闭的事实
ObjectCreate(Ticket+'Debt B',OBJ_HLINE,0,0,d)。
ObjectSet(Ticket+'Debt B',OBJPROP_COLOR,LimeGreen)。
ObjectSet(Ticket+'Debt B',OBJPROP_WIDTH,1)。
如果一系列的买入订单被关闭
ObjectCreate(Ticket+'Debt M',OBJ_HLINE,0,0,d)。
你能帮忙吗?ObjectSet(Ticket+'Debt M',OBJPROP_COLOR,Red)。
ObjectSet(Ticket+'Debt M',OBJPROP_WIDTH,1)。
我想讨论一下处理这个问题的算法,包括对于不同的移动平均数 平均方法。