我将免费撰写一份顾问报告 - 页 161 1...154155156157158159160161162163164165166167168...171 新评论 Radmir Serebrennikov 2021.12.02 18:50 #1601 大家好!谁能写一个与当前价格绑定的2射线的指标? 一般来说:在离价格(买入价和卖出价)一定距离处放置两条水平射线--一条在下面,另一条在上面。该距离可以在指示器设置 中设置。谢谢你! Vladimir Karputov 2021.12.03 04:09 #1602 Radmir Serebrennikov #:大家好!谁能写一个与当前价格绑定的2射线的指标?一般来说:在离价格(买入价和卖出价)一定距离处放置两条水平射线--一条在下面,另一条在上面。该距离可以在指示器设置 中设置。谢谢你! 代码:动态高和低 图1: 动态高和低 Dynamic High and Low www.mql5.com Индикатор без индикаторных буферов - просто две линии на постоянном расстоянии от цены Radmir Serebrennikov 2021.12.04 17:56 #1603 Vladimir Karputov #:代码:动态高和低图1. 动态高和低 非常感谢!!! xi43blck 2021.12.04 21:17 #1604 谁能在mt5中写一个脚本,运行后给出一个有bdb bar的可用工具列表? Bdb bar,它也是反转,最低点低于前一个,收盘在前30%,反之,高于前一个,收盘在后30%。大约有3千种乐器。 And05 2021.12.25 20:09 #1605 Salud!出现了使用文件中的数据进行交易的需求。从本质上讲,一个机器人从文件中提取一对,方向,计算手数风险...我搜索了一下,没有找到类似的东西,你有类似的东西吗? Namiq Acalov 2022.01.05 09:35 #1606 你好。祝你新年快乐!请帮助我在MQL5 中添加命令,在signal="buy "时关闭所有的买入头寸。 反之亦然,所有的买入头寸将在signal="sell "时被关闭。预先感谢你。 Vladimir Karputov 2022.01.05 09:38 #1607 Namiq Acalov #:你好。祝你新年快乐!请帮助我在MQL5 中添加命令,在signal="buy "时关闭所有的买入头寸。 反之亦然,所有的买入头寸将在signal="sell "时被关闭。预先感谢你。 使用文章几乎是一个构造函数来创建一个EA--你需要将参数'InpCloseOpposite'设置为'true' input group "Additional features" *** input bool InpCloseOpposite = true; // Positions: Close opposite *** Почти конструктор для создания советника www.mql5.com Предлагаю свой набор торговых функций в виде готового советника. Представленный способ позволяет получать множество торговых стратегий простым добавлением индикаторов и изменением входных параметров. Namiq Acalov 2022.01.05 09:45 #1608 Vladimir Karputov #:使用文章几乎构造函数来创建一个EA--你需要将'InpCloseOpposite'参数设置为'true'。 谢谢你,弗拉基米尔。我现在正在读它 Grigory Zakordonsky 2022.01.06 19:34 #1609 晚上好,亲爱的专家们。请教如何找到网格中第一个订单的手数? 我的问题是如何为infopanel指定最大的缩减值(缩减本身是计算出来的,但它是浮动的;如何从它那里得到最大的值)。 我得到了一个很好的反馈,我正在尝试MQL4的例子,我通过尝试和错误卡在了这两个位置上( SanAlex 2022.01.07 03:12 #1610 Namiq Acalov #:你好。祝你新年快乐!请帮助我在MQL5 中添加命令,在signal="buy "时关闭所有的买入头寸。 反之亦然,所有的买入头寸将在signal="sell "时被关闭。预先感谢你。 该函数取自弗拉基米尔-卡尔普托夫的 代码 //+------------------------------------------------------------------+ //| ClosePosition.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" //--- #define InpMagic 0 //--- #include <Trade\Trade.mqh> #include <Trade\SymbolInfo.mqh> #include <Trade\PositionInfo.mqh> #include <Trade\AccountInfo.mqh> //--- CTrade m_trade; // trading object CSymbolInfo m_symbol; // symbol info object CPositionInfo m_position; // trade position object CAccountInfo m_account; // account info wrapper //--- input double InpLots =0.1; // Lots input int InpTakeProfit =50; // Take Profit (in pips) //--- double m_adjusted_point; // point value adjusted for 3 or 5 points double m_take_profit=0.0; //--- string m_name[]= {"Buy","Sell","CloseBuy","CloseSell"}; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- initialize common information m_symbol.Name(Symbol()); // symbol m_trade.SetExpertMagicNumber(InpMagic); // magic m_trade.SetMarginMode(); m_trade.SetTypeFillingBySymbol(Symbol()); //--- tuning for 3 or 5 digits int digits_adjust=1; if(m_symbol.Digits()==3 || m_symbol.Digits()==5) digits_adjust=10; m_adjusted_point=m_symbol.Point()*digits_adjust; //--- set default deviation for trading in adjusted points m_take_profit =InpTakeProfit*m_adjusted_point; //--- set default deviation for trading in adjusted points m_trade.SetDeviationInPoints(3*digits_adjust); //--- int u=15; for(int y=0; y<ArraySize(m_name); y++) { ButtonCreate(m_name[y],5,u,170,15,8); u=u+17; } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { for(int y=0; y<ArraySize(m_name); y++) { ObjectDelete(0,Symbol()+m_name[y]); } //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- if(!RefreshRates()) return; if(ObjectGetInteger(0,Symbol()+"Buy",OBJPROP_STATE)!=0) { ObjectSetInteger(0,Symbol()+"Buy",OBJPROP_STATE,0); double priceAsk=m_symbol.Ask(); double tpAsk =m_symbol.Bid()+m_take_profit; //--- check for free money if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_BUY,InpLots,priceAsk)<0.0) printf("We have no money. Free Margin = %f",m_account.FreeMargin()); else { //--- open position if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,InpLots,priceAsk,0.0,tpAsk)) printf("Position by %s to be opened",Symbol()); else { printf("Error opening BUY position by %s : '%s'",Symbol(),m_trade.ResultComment()); printf("Open parameters : price=%f,TP=%f",priceAsk,tpAsk); } } } if(ObjectGetInteger(0,Symbol()+"Sell",OBJPROP_STATE)!=0) { ObjectSetInteger(0,Symbol()+"Sell",OBJPROP_STATE,0); double priceBid=m_symbol.Bid(); double tpBid =m_symbol.Ask()-m_take_profit; //--- check for free money if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_SELL,InpLots,priceBid)<0.0) printf("We have no money. Free Margin = %f",m_account.FreeMargin()); else { //--- open position if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,InpLots,priceBid,0.0,tpBid)) printf("Position by %s to be opened",Symbol()); else { printf("Error opening SELL position by %s : '%s'",Symbol(),m_trade.ResultComment()); printf("Open parameters : price=%f,TP=%f",priceBid,tpBid); } } } if(ObjectGetInteger(0,Symbol()+"CloseBuy",OBJPROP_STATE)!=0) { ObjectSetInteger(0,Symbol()+"CloseBuy",OBJPROP_STATE,0); ClosePositions(POSITION_TYPE_BUY); } if(ObjectGetInteger(0,Symbol()+"CloseSell",OBJPROP_STATE)!=0) { ObjectSetInteger(0,Symbol()+"CloseSell",OBJPROP_STATE,0); ClosePositions(POSITION_TYPE_SELL); } } //+------------------------------------------------------------------+ //| Refreshes the symbol quotes data | //+------------------------------------------------------------------+ bool RefreshRates(void) { //--- refresh rates if(!m_symbol.RefreshRates()) { Print(__FILE__," ",__FUNCTION__,", ERROR: ","RefreshRates error"); return(false); } //--- protection against the return value of "zero" if(m_symbol.Ask()==0 || m_symbol.Bid()==0) { Print(__FILE__," ",__FUNCTION__,", ERROR: ","Ask == 0.0 OR Bid == 0.0"); return(false); } //--- return(true); } //+------------------------------------------------------------------+ //| Close positions | //+------------------------------------------------------------------+ void ClosePositions(const ENUM_POSITION_TYPE pos_type) { for(int i=PositionsTotal()-1; i>=0; i--) // returns the number of current positions if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==InpMagic) if(m_position.PositionType()==pos_type) { if(m_position.PositionType()==POSITION_TYPE_BUY) { if(!m_trade.PositionClose(m_position.Ticket())) // close a position by the specified m_symbol Print(__FILE__," ",__FUNCTION__,", ERROR: ","BUY PositionClose ",m_position.Ticket(),", ",m_trade.ResultRetcodeDescription()); } if(m_position.PositionType()==POSITION_TYPE_SELL) { if(!m_trade.PositionClose(m_position.Ticket())) // close a position by the specified m_symbol Print(__FILE__," ",__FUNCTION__,", ERROR: ","SELL PositionClose ",m_position.Ticket(),", ",m_trade.ResultRetcodeDescription()); } } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void ButtonCreate(string name,int Xdist,int Ydist,int Xsize,int Ysize,int FONTSIZE=12) { if(ObjectFind(0,Symbol()+name)<0) ObjectCreate(0,Symbol()+name,OBJ_BUTTON,0,100,100); ObjectSetInteger(0,Symbol()+name,OBJPROP_COLOR,clrWhite); ObjectSetInteger(0,Symbol()+name,OBJPROP_BGCOLOR,clrDimGray); ObjectSetInteger(0,Symbol()+name,OBJPROP_XDISTANCE,Xdist); ObjectSetInteger(0,Symbol()+name,OBJPROP_YDISTANCE,Ydist); ObjectSetInteger(0,Symbol()+name,OBJPROP_XSIZE,Xsize); ObjectSetInteger(0,Symbol()+name,OBJPROP_YSIZE,Ysize); ObjectSetString(0,Symbol()+name,OBJPROP_FONT,"Sans Serif"); ObjectSetString(0,Symbol()+name,OBJPROP_TEXT,name); ObjectSetInteger(0,Symbol()+name,OBJPROP_FONTSIZE,FONTSIZE); ObjectSetInteger(0,Symbol()+name,OBJPROP_SELECTABLE,false); } //+------------------------------------------------------------------+ 1...154155156157158159160161162163164165166167168...171 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
大家好!谁能写一个与当前价格绑定的2射线的指标?
一般来说:在离价格(买入价和卖出价)一定距离处放置两条水平射线--一条在下面,另一条在上面。该距离可以在指示器设置 中设置。谢谢你!
大家好!谁能写一个与当前价格绑定的2射线的指标?
一般来说:在离价格(买入价和卖出价)一定距离处放置两条水平射线--一条在下面,另一条在上面。该距离可以在指示器设置 中设置。谢谢你!
代码:动态高和低
图1: 动态高和低
代码:动态高和低
图1. 动态高和低
使用文章几乎是一个构造函数来创建一个EA--你需要将参数'InpCloseOpposite'设置为'true'
使用文章几乎构造函数来创建一个EA--你需要将'InpCloseOpposite'参数设置为'true'。
晚上好,亲爱的专家们。请教如何找到网格中第一个订单的手数?
我的问题是如何为infopanel指定最大的缩减值(缩减本身是计算出来的,但它是浮动的;如何从它那里得到最大的值)。
我得到了一个很好的反馈,我正在尝试MQL4的例子,我通过尝试和错误卡在了这两个位置上(
该函数取自弗拉基米尔-卡尔普托夫的 代码