新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 53 1...464748495051525354555657585960...1953 新评论 vitek2010 2017.01.04 12:16 #521 #属性 indicator_separate_window#property indicator_buffers 1#property indicator_color1 blue//--------------------------------------------------------------------double Buffer[]。//--------------------------------------------------------------------int init(){SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY,2)。SetIndexBuffer(0,Buffer;)return(0);}// -------------------------------------------------------------------int deinit(){return(0);}//--------------------------------------------------------------------int start(){int StartBar = Bars - IndicatorCounted() - 1; for(int i = StartBar; i >= 0; i--)Buffer[i] =(iClose("EURGBP",0,i)-iOpen("EURGBP",0,i))/MarketInfo("EURGBP",MODE_POINT)+(iClose("EURAUD",0,i)-iOpen("EURAUD",0,i))/MarketInfo("EURAUD",MODE_POINT)。return(0);}//---------------------------------------------------------------------对不起,我不知道如何用代码格式化文本。 这是一个简单的计数器指标(在当前时间框架上以点为单位的仪器机构的总和)仪器任何。直方图的每个条形图以 "O "开始,在时间框架的收盘时结束。例如,当前的时间框架是H1,在12.00显示 "0",在13.00显示 "+20",条形图的读数明显=+20。 但在这一小时内,读数是-50和+60,但指标没有显示,我们应该为低位Buffer[i]和高位Buffer[i]添加一个缓冲器。我们不能使用 "高 "和 "低",因为对于写在指标中的每个符号,这些值都是在不同的时间出现的。我想让第二个缓冲区在当前图表(H1)上固定小图表(M5)的Buffer[i]的最大值,第三个缓冲区在当前图表(H1)上固定小图表(M5)的Buffer[i]的最小值。亲爱的,谁能建议什么? Any questions from newcomers 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. 顾比多重移动平均线 Vitalie Postolache 2017.01.04 12:37 #522 vitek2010:对不起,我不知道如何对文本进行编码。我们不能使用 "高 "和 "低",因为这些值在指标中指定的每个工具的不同时间出现。每种乐器的关闭是在同一时间发生的,在蜡烛的生命 中?所以这是一个错误的观点,虱子都是在不同时间出现的))))。 Alexey Viktorov 2017.01.04 12:55 #523 trader781: 问题是,总是会有一些手数的亏损订单,这些订单也必须由其余的订单来覆盖。触发因素是关闭时间。如果我们哪怕关闭一个,整个链条就会丢失。因此,问题是如何拖出所有选定的平均价格。因此,我们必须在循环中浏览所有 "必要 "的订单,并计算出这个平均价格。然后,当当前价格 在所需方向上偏离计算出的平均价格时,我们应该再次向循环充电,修改所有订单。如果我们不想在每个tick上读取平均价格,我们可以只在添加另一个订单时才读取它。 Mickey Moose 2017.01.04 13:17 #524 Alexey Viktorov:因此,我们必须在循环中浏览所有 "必要 "的订单,并计算出这个平均价格。然后,当当前价格 在所需方向上偏离计算出的平均价格时,我们应该再次向循环充电,修改所有订单。如果我们不想在每个tick上读取平均价格,可以只在添加另一个订单时读取。 如果你不介意,请解释一下,当订单网格分布不均匀时(OrderType()<2),我应该如何计算平均价格。这就是全部。 vitek2010 2017.01.04 14:09 #525 Vitalie Postolache:在蜡烛的生命 中,每件乐器都是在同一时间关闭的?我说的不是ticks,我说的是固定指标缓冲区的最小和最大读数)。我不是在说ticks,我是说我们应该固定在一个较小的时间框架上计算的指标缓冲区的最小和最大读数,在一个较大的时间框架的间隙,我将尝试在屏幕上显示它 在这种情况下,最小的时间框架是H1(但它有不同的时间框架)。[img]https://charts.mql5.com/13/642/eurgbp-w1-instaforex-group.png[/img]我将考虑05.12这一周(红色十字线),上图所示的指标的这个条形图清楚地显示,周末的货币对总的运动是下降了95点,但它没有显示在这一周内有多少点是下降或上升的。 在这个屏幕上,你可以看到本周H1图表上这个指标 的动态。 [img]https://charts.mql5.com/13/642/eurgbp-h1-instaforex-group.png[/img]指标的最小值是400,然后上升到700,并在160上收盘(两个屏幕上的数字差异并不重要)。我需要在一个指标中的一个柱状图中的所有这些值,以及最小、最大和收盘(在这种情况下,在维基上)。最好是在你在时间框架的设置中指定的当前时间框架上。我是通过从mcl5网站上复制mt4 insta做的。 Vitaly Muzichenko 2017.01.04 15:05 #526 trader781: 如果不难,请解释一下,当订单网格分布不均时(OrderType()<2),我如何计算平均价格。这就是全部。我希望你能想出办法。for(int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY) { _BuyProfit+=OrderProfit()+OrderSwap()+OrderCommission(); // совокупный профит по всем Sell _BuyLot+=OrderLots(); //совокупный лот по всем Sell } if(OrderType()==OP_SELL) { _SellProfit+=OrderProfit()+OrderSwap()+OrderCommission(); // совокупный профит по всем Sell _SellLot+=OrderLots(); //совокупный лот по всем Sell }}}}double TickValue= MarketInfo(_Symbol,MODE_TICKVALUE);if(_BuyLot > 0) { BuyAwerage = NormalizeDouble(Bid-(_BuyProfit/(TickValue*_BuyLot))*_Point,_Digits); } else { BuyAwerage=0; }// безубыток buyif(_SellLot > 0) { SellAwerage= NormalizeDouble(Ask+(_SellProfit/(TickValue*_SellLot))*_Point,_Digits); } else { SellAwerage=0; } // безубыток sellif(_BuyLot-_SellLot! = 0) { AllAwerage= NormalizeDouble(((_BuyLot>_SellLot)?Bid:Ask)-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))*_Point),_Digits); } else { AllAwerage=0; } // общий безубыток Any questions from newcomers 编码帮助 [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. Mickey Moose 2017.01.04 15:20 #527 Vitaly Muzichenko:希望你能掌握其中的诀窍。double TickValue= MarketInfo(_Symbol,MODE_TICKVALUE); 我们能不能谈一谈这个问题?我不明白这段代码的意义。 Vitaly Muzichenko 2017.01.04 15:27 #528 trader781: 我们能不能谈一谈这个问题?以存款货币 计算的工具价格的最小变化金额每个工具的点值是不同的,不等于 "1",例如EUR/USD。 Mickey Moose 2017.01.04 15:39 #529 Vitaly Muzichenko:以存款货币 计算的工具价格的最小变化金额每个工具的点值是不同的,不等于 "1",例如EUR/USD。是的,现在我明白了事实证明,你也可以设置一个浮动的停止,例如(eqi=balance*1.1)或(eqi=balance*0.9)。有这样的工具吗? Vitaly Muzichenko 2017.01.04 15:49 #530 trader781:是的,现在明白了。但事实证明,你也可以设置浮动止损,例如(eqi=balance*1.1)或(eqi=balance*0.9)。有这样的工具吗? 你已经有了一个特定的价格,你只需要使用简单拖网的类似方法进行拖网,但简单拖网是基于头寸的开盘价=OrderOpenPrice(),而这里是基于平均计算价格,并将所有头寸修改为一级。 1...464748495051525354555657585960...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
//---------------------------------------------------------------------
对不起,我不知道如何用代码格式化文本。
这是一个简单的计数器指标(在当前时间框架上以点为单位的仪器机构的总和)仪器任何。直方图的每个条形图以 "O "开始,在时间框架的收盘时结束。例如,当前的时间框架是H1,在12.00显示 "0",在13.00显示 "+20",条形图的读数明显=+20。 但在这一小时内,读数是-50和+60,但指标没有显示,我们应该为低位Buffer[i]和高位Buffer[i]添加一个缓冲器。我们不能使用 "高 "和 "低",因为对于写在指标中的每个符号,这些值都是在不同的时间出现的。我想让第二个缓冲区在当前图表(H1)上固定小图表(M5)的Buffer[i]的最大值,第三个缓冲区在当前图表(H1)上固定小图表(M5)的Buffer[i]的最小值。亲爱的,谁能建议什么?
对不起,我不知道如何对文本进行编码。
我们不能使用 "高 "和 "低",因为这些值在指标中指定的每个工具的不同时间出现。
每种乐器的关闭是在同一时间发生的,在蜡烛的生命 中?所以这是一个错误的观点,虱子都是在不同时间出现的))))。
问题是,总是会有一些手数的亏损订单,这些订单也必须由其余的订单来覆盖。触发因素是关闭时间。如果我们哪怕关闭一个,整个链条就会丢失。因此,问题是如何拖出所有选定的平均价格。
因此,我们必须在循环中浏览所有 "必要 "的订单,并计算出这个平均价格。然后,当当前价格 在所需方向上偏离计算出的平均价格时,我们应该再次向循环充电,修改所有订单。
如果我们不想在每个tick上读取平均价格,我们可以只在添加另一个订单时才读取它。
因此,我们必须在循环中浏览所有 "必要 "的订单,并计算出这个平均价格。然后,当当前价格 在所需方向上偏离计算出的平均价格时,我们应该再次向循环充电,修改所有订单。
如果我们不想在每个tick上读取平均价格,可以只在添加另一个订单时读取。
在蜡烛的生命 中,每件乐器都是在同一时间关闭的?我说的不是ticks,我说的是固定指标缓冲区的最小和最大读数)。
我不是在说ticks,我是说我们应该固定在一个较小的时间框架上计算的指标缓冲区的最小和最大读数,在一个较大的时间框架的间隙,我将尝试在屏幕上显示它 在这种情况下,最小的时间框架是H1(但它有不同的时间框架)。
[img]https://charts.mql5.com/13/642/eurgbp-w1-instaforex-group.png[/img]
我将考虑05.12这一周(红色十字线),上图所示的指标的这个条形图清楚地显示,周末的货币对总的运动是下降了95点,但它没有显示在这一周内有多少点是下降或上升的。
在这个屏幕上,你可以看到本周H1图表上这个指标 的动态。
[img]https://charts.mql5.com/13/642/eurgbp-h1-instaforex-group.png[/img]
指标的最小值是400,然后上升到700,并在160上收盘(两个屏幕上的数字差异并不重要)。
我需要在一个指标中的一个柱状图中的所有这些值,以及最小、最大和收盘(在这种情况下,在维基上)。最好是在你在时间框架的设置中指定的当前时间框架上。
我是通过从mcl5网站上复制mt4 insta做的。
如果不难,请解释一下,当订单网格分布不均时(OrderType()<2),我如何计算平均价格。这就是全部。
我希望你能想出办法。
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic) {
if(OrderType()==OP_BUY) {
_BuyProfit+=OrderProfit()+OrderSwap()+OrderCommission(); // совокупный профит по всем Sell
_BuyLot+=OrderLots(); //совокупный лот по всем Sell
}
if(OrderType()==OP_SELL) {
_SellProfit+=OrderProfit()+OrderSwap()+OrderCommission(); // совокупный профит по всем Sell
_SellLot+=OrderLots(); //совокупный лот по всем Sell
}
}}}
double TickValue= MarketInfo(_Symbol,MODE_TICKVALUE);
if(_BuyLot > 0) { BuyAwerage = NormalizeDouble(Bid-(_BuyProfit/(TickValue*_BuyLot))*_Point,_Digits); } else { BuyAwerage=0; }// безубыток buy
if(_SellLot > 0) { SellAwerage= NormalizeDouble(Ask+(_SellProfit/(TickValue*_SellLot))*_Point,_Digits); } else { SellAwerage=0; } // безубыток sell
if(_BuyLot-_SellLot! = 0) { AllAwerage= NormalizeDouble(((_BuyLot>_SellLot)?Bid:Ask)-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))*_Point),_Digits); } else { AllAwerage=0; } // общий безубыток
希望你能掌握其中的诀窍。
double TickValue= MarketInfo(_Symbol,MODE_TICKVALUE);
我们能不能谈一谈这个问题?
以存款货币 计算的工具价格的最小变化金额
每个工具的点值是不同的,不等于 "1",例如EUR/USD。
以存款货币 计算的工具价格的最小变化金额
每个工具的点值是不同的,不等于 "1",例如EUR/USD。
是的,现在我明白了
事实证明,你也可以设置一个浮动的停止,例如(eqi=balance*1.1)或(eqi=balance*0.9)。
有这样的工具吗?
是的,现在明白了。
但事实证明,你也可以设置浮动止损,例如(eqi=balance*1.1)或(eqi=balance*0.9)。
有这样的工具吗?