新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 865 1...858859860861862863864865866867868869870871872...1953 新评论 Taras Slobodyanik 2019.05.29 19:21 #8641 Yan Barmin: 困惑。我如何获得MT4上未平仓订单(非挂单)的真实利润(亏损),包括所有佣金、掉期等?(OrderProfit() + OrderSwap() + OrderCommission() 或只是OrderProfit() 或其他?我希望在订单结束后能赚到一些钱。 OrderProfit() + OrderSwap() + OrderCommission() Konstantin Lebedev 2019.05.31 16:09 #8642 如何在地下室窗口的蜡烛上放置这些体积的数字,即在底部,或使所有的数字都作为一条线水平地放在中心,如果地下室不起作用。如果能得到帮助,我将非常感激。 #property indicator_chart_window #property indicator_width1 2#property indicator_width2 2#property indicator_width3 2#property indicator_width4 4#property indicator_width5 4#property indicator_color1 SkyBlue#property indicator_color2 Maroon#property indicator_color3 黄色#property indicator_color4 Blue#property indicator_color5 DeepPink外部int BarsToCount = 990;外部字符串pus1 = ""。外部字符串p_s = "点数设置"。外部 bool use_points = true。外来的int distance_point = 5;外部颜色 color_point_u = Lime;外部颜色 color_point_d = DeepPink;外部颜色 color_point_s = 黄色。外来的inttern size_point = 14;外部字符串 pus2 = ""。外部字符串s_w = "Way"。外部 bool use_show_same_way = true。外部 bool use_show_daily_way = true;外部字符串 pus3 = ""。外部字符串al = "Alerts"。外部 bool use_alerts = false。外部字符串up_alert = "Up"。extern string down_alert = "Down";双倍增加[]。双降[]。double mid[];double up2[]。双倍下降2[]。双重无[]。static int prevtime = 0;//int init(){IndicatorShortName("A")。return(0);}//int deinit(){字符串name_de。for(int c=BarsToCount;c>=0;c--){name_de="Vol_"+DoubleToStr(c,0)。if(ObjectFind(name_de)!=-1) ObjectDelete(name_de);}return(0);}//////////////////////////////////////////int start(){////////////up[0]=EMPTY_VALUE。down[0]=EMPTY_VALUE。mid[0]=EMPTY_VALUE。if(Close[0]>Open[0]) up[0]=Volume[0];if(Close[0]<Open[0]) down[0]=Volume[0];if(Close[0]==Open[0]) mid[0]=Volume[0];////////////////如果(use_points)Ob_cre(0);if(!use_points)Ob_del(0)。////////////如果(Time[0] == prevtime) 返回(0)。prevtime = Time[0];///////////////////////////for(int c=BarsToCount;c>=1;c--){////////////如果(use_points)Ob_cre(c);if(!use_points)Ob_del(c);////////////up[c]=EMPTY_VALUE。down[c]=EMPTY_VALUE。mid[c]=EMPTY_VALUE。up2[c]=EMPTY_VALUE。down2[c]=EMPTY_VALUE。/////////////////如果(Close[c]>Open[c]) up[c]=Volume[c]。如果(Close[c]<Open[c]) down[c]=Volume[c];if(Close[c]==Open[c]) mid[c]=Volume[c];none[c]=Volume[c]+Volume[c]/6;//////////////如果(use_show_same_way){如果(Close[c]>Open[c] && Close[c+1]>Open[c+1]){up2[c]=Volume[c]; up2[c+1]=Volume[c+1];up[c]=EMPTY_VALUE; up[c+1]=EMPTY_VALUE。}如果(Close[c]<Open[c] && Close[c+1]<Open[c+1]){down2[c]=Volume[c]; down2[c+1]=Volume[c+1];down[c]=EMPTY_VALUE; down[c+1]=EMPTY_VALUE。}}如果(use_alerts){if(up2[1]!=EMPTY_VALUE && up2[4]==EMPTY_VALUE) Alert(up_alert);if(down2[1]!=EMPTY_VALUE && down2[4]==EMPTY_VALUE) Alert(down_alert);}}return(0);}//func//+------------------------------------------------------------------+///////////////////////////////空白Ob_cre(int num_of_bar)。{string name="Vol_"+DoubleToStr(num_of_bar,0)。color col_po;如果(Close[num_of_bar]>Open[num_of_bar]) col_po=color_point_u;如果(Close[num_of_bar]<Open[num_of_bar]) col_po=color_point_d;如果(Close[num_of_bar]==Open[num_of_bar]) col_po=color_point_s;如果(ObjectFind(name)==-1){ObjectCreate(name,OBJ_TEXT,0,0)。}ObjectSet(name,OBJPROP_TIME1,Time[num_of_bar])。ObjectSet(name,OBJPROP_PRICE1,High[num_of_bar]+distance_point*Point) 。ObjectSet(name,OBJPROP_ANGLE,90)。ObjectSetText(name,DoubleToStr(Volume[num_of_bar],0),size_point, "Arrial",col_po)。ObjectSet(name,OBJPROP_ANCHOR,ANCHOR_CENTER)。}//空白 Ob_del(int num_of_bar){string name="Vol_"+DoubleToStr(num_of_bar,0)。} 附加的文件: 2019-05-31_170618.png 10 kb Any questions from newcomers 初学者的问题 MQL4 MT4 MetaTrader [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 SEM 2019.05.31 16:34 #8643 我创建了一个基于欧元兑美元 的合成符号,名为ZIGZAG(以避免名称冲突)。 我导入了分钟条形图,所有的东西都成功导入了,但在重新请求时,条形图的数量 是0。在 "历史/符号 "文件夹中,有一个创建的39mb 的文件 "2019.hcc",在 "ticks "文件夹中,所有东西都是空的。改变了终端(当前版本来自2019年5月30日),电脑--到处都不工作。 可能的错误是什么? 附加的文件: simvol.zip 809 kb ZIGZAG_config.zip 2 kb aleger 2019.05.31 20:54 #8644 SEM:我创建了一个基于欧元兑美元 的合成符号,名为ZIGZAG(以避免名称冲突)。 我导入了分钟条形图,所有的东西都成功导入了,但在重新请求时,条形图的数量 是0。在 "历史/符号 "文件夹中,有一个创建的39mb 的文件 "2019.hcc",在 "ticks "文件夹中,所有东西都是空的。改变了终端(当前版本为2019年5月30日),电脑--到处都不工作。 可能的错误是什么? 在匹配的名称中 oleqas1 2019.05.31 21:32 #8645 大家好,请问如何改进演示版的MT4文章平衡,并使其可以改变?酌情改变演示平衡的可能性会是什么。或者是充值.或者撤销模拟,让模拟的交易与真实的交易一样接近? Artyom Trishkin 2019.05.31 22:13 #8646 oleqas1: 你好,请问你想如何改进模拟版的MT4文章余额,并使其可编辑?自己演示平衡的可能性会是什么,以改变。或者是充值.或者提取模拟资金,使模拟交易接近真实交易?MetaTrader4将不再被更新--这个平台的开发早就停止了。最多,重大的错误正在被修复。 转到MetaTrader5并使用TesterWithdrawal()。 Документация по MQL5: Общие функции / TesterWithdrawal www.mql5.com Общие функции / TesterWithdrawal - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 yiduwi 2019.06.01 08:29 #8647 你好,请问如何计算欧洲时段3天内的波动率? nelenaby 2019.06.01 16:42 #8648 你好,如果有比如说买入止损点和买入限价。 一个买入止损点被打开,修改buyimit并设置一个新的买入止损点。 打开buyimit需要修改buystop并设置一个新的buyimit。 我尝试这样做,它打开了,但错误信息OrderModify error 1, OrderModify error 130。如何解决这个问题,我想不出来。请帮助我。 void OnTick() { price_buystop = NormalizeDouble(Ask+StopLoss*Point,Digits); price_buyLimit = NormalizeDouble(price_buystop-StopLoss*2*Point,Digits); price_buy = PriceOpenLastPos(); //для байстоп if (BuyStopCount()==0)//если нет байстопа { TP= NormalizeDouble(price_buystop + TakeProfit*Point,Digits); SL= NormalizeDouble(price_buystop - StopLoss*Point,Digits); if(CountBuy()==0)// и нет открытых бай { int ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,price_buystop,Slippage,SL,TP,"buystop",Magic,0,Blue); if (ticket <0) Print ("Не удалось открыть buystop "); } if (CountBuy()>=1) // если нет байстоп но есть открытая { price_buystop = NormalizeDouble(price_buy + StopLoss*Point,Digits); int ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,price_buystop,Slippage,SL,TP,"buystop",Magic,0,Blue); if (ticket <0) Print ("Не удалось открыть buystop "); } } else { //если есть байстоп модифицируем if (CountBuy()>=1)//и есть открытые и байстоп { price_buystop = NormalizeDouble(price_buy+StopLoss*Point,Digits); TP= NormalizeDouble(price_buystop + TakeProfit*Point,Digits); SL= NormalizeDouble(price_buystop - StopLoss*Point,Digits); bool res = OrderModify(OrderTicket(),price_buystop,SL,TP,0,Blue); } } //для байлимит if (BuyLimitCount()==0) // если нет байлимит { TP= NormalizeDouble(price_buyLimit + TakeProfit*Point,Digits); SL= NormalizeDouble(price_buyLimit - StopLoss*Point,Digits); if(CountBuy()==0)// и нет открытых открываем { int ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lots,price_buyLimit,Slippage,SL,TP,"BuyLimit",Magic,0,Blue); if (ticket <0) Print ("Не удалось открыть BuyLimit "); } if (CountBuy()>=1)// если открытая есть { price_buyLimit = NormalizeDouble(price_buy - StopLoss*Point,Digits); int ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lots,price_buyLimit,Slippage,SL,TP,"BuyLimit",Magic,0,Blue); if (ticket <0) Print ("Не удалось открыть BuyLimit "); } } else { // если есть байлимит и есть открытая if (CountBuy()>=1) { price_buyLimit = NormalizeDouble(price_buy-StopLoss*Point,Digits); TP= NormalizeDouble(price_buyLimit + TakeProfit*Point,Digits); SL= NormalizeDouble(price_buyLimit - StopLoss*Point,Digits); bool res = OrderModify(OrderTicket(),price_buyLimit,SL,TP,0,Blue); } } } //+------------------------------------------------------------------+ // проверяем есть ли байстоп ордера с конца int BuyStopCount() { int count = 0; for (int i=OrdersTotal()-1;i>=0;i--) { if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES) == true && OrderMagicNumber()== Magic && OrderType() == OP_BUYSTOP ) { count ++; } } return(count); } // проверяем есть ли ,байлимит ордера с конца int BuyLimitCount() { int count = 0; for (int i=OrdersTotal()-1;i>=0;i--) { if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES) == true && OrderMagicNumber()== Magic && OrderType() == OP_BUYLIMIT ) { count ++; } } return(count); } //проверяем открытые ордера покупку int CountBuy() { int count = 0; for (int trade = OrdersTotal()-1; trade>=0; trade --) { if (OrderSelect (trade, SELECT_BY_POS, MODE_TRADES) ==true) { if (OrderSymbol()==Symbol() && OrderMagicNumber()== Magic && OrderType()== OP_BUY) count++; } }return(count); } // возвращает цену открытия последней открытой позиции double PriceOpenLastPos() { int k=OrdersTotal(); double r =0; int i; for (i=0; i<k; i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { if (OrderSymbol()== Symbol() && OrderMagicNumber()== Magic && OrderType()== OP_BUY) r=OrderOpenPrice(); } }return (r); } Alexandr Sokolov 2019.06.01 17:45 #8649 在MT4的策略测试器中测试EA时,这些错误与什么有关? Artyom Trishkin 2019.06.01 17:46 #8650 Alexandr Sokolov:在MT4的策略测试器中测试EA时,这些错误与什么有关? 负载历史。F2. 1...858859860861862863864865866867868869870871872...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
困惑。我如何获得MT4上未平仓订单(非挂单)的真实利润(亏损),包括所有佣金、掉期等?(OrderProfit() + OrderSwap() + OrderCommission() 或只是OrderProfit() 或其他?我希望在订单结束后能赚到一些钱。
如何在地下室窗口的蜡烛上放置这些体积的数字,即在底部,或使所有的数字都作为一条线水平地放在中心,如果地下室不起作用。如果能得到帮助,我将非常感激。
#property indicator_chart_window
我创建了一个基于欧元兑美元 的合成符号,名为ZIGZAG(以避免名称冲突)。
我导入了分钟条形图,所有的东西都成功导入了,但在重新请求时,条形图的数量 是0。在 "历史/符号 "文件夹中,有一个创建的39mb 的文件 "2019.hcc",在 "ticks "文件夹中,所有东西都是空的。改变了终端(当前版本来自2019年5月30日),电脑--到处都不工作。
可能的错误是什么?
我创建了一个基于欧元兑美元 的合成符号,名为ZIGZAG(以避免名称冲突)。
我导入了分钟条形图,所有的东西都成功导入了,但在重新请求时,条形图的数量 是0。在 "历史/符号 "文件夹中,有一个创建的39mb 的文件 "2019.hcc",在 "ticks "文件夹中,所有东西都是空的。改变了终端(当前版本为2019年5月30日),电脑--到处都不工作。
可能的错误是什么?
你好,请问你想如何改进模拟版的MT4文章余额,并使其可编辑?自己演示平衡的可能性会是什么,以改变。或者是充值.或者提取模拟资金,使模拟交易接近真实交易?
MetaTrader4将不再被更新--这个平台的开发早就停止了。最多,重大的错误正在被修复。
转到MetaTrader5并使用TesterWithdrawal()。
你好,如果有比如说买入止损点和买入限价。
一个买入止损点被打开,修改buyimit并设置一个新的买入止损点。
打开buyimit需要修改buystop并设置一个新的buyimit。
我尝试这样做,它打开了,但错误信息OrderModify error 1, OrderModify error 130。如何解决这个问题,我想不出来。请帮助我。
在MT4的策略测试器中测试EA时,这些错误与什么有关?
在MT4的策略测试器中测试EA时,这些错误与什么有关?