当前位置: 首页 > news >正文

深圳网站建设南山国内精美网站界面网址

深圳网站建设南山,国内精美网站界面网址,网站空间怎么弄,2024年个体工商户年报怎么填MT5编程#xff0c;有两种方式#xff0c;一种是函数式编程#xff0c;一种是面向对象编程。 面向对象编程#xff0c;会让我们编写代码变得非常简单。 面向对象编程#xff0c;主要是要熟悉4个类库。 #include Trade\PositionInfo.mqh #include Trade\Tra…MT5编程有两种方式一种是函数式编程一种是面向对象编程。 面向对象编程会让我们编写代码变得非常简单。 面向对象编程主要是要熟悉4个类库。 #include Trade\PositionInfo.mqh #include Trade\Trade.mqh #include Trade\SymbolInfo.mqh #include Trade\OrderInfo.mqh 其中  PositionInfo 是持仓单信息  OrderInfo    是挂单信息 SymbolInfo  是品种信息 Trade    是交易类库 使用之前需要定义各种对象的实例 CPositionInfo m_position; // trade position object CTrade m_trade; // trading object CSymbolInfo m_symbol; // symbol info object COrderInfo m_order; // pending orders object 交易之前在初始化函数里面要指定一些相应的属性 //---m_trade.SetExpertMagicNumber(m_magic); //指定魔术号 //---if(IsFillingTypeAllowed(SYMBOL_FILLING_FOK))m_trade.SetTypeFilling(ORDER_FILLING_FOK);elseif(IsFillingTypeAllowed(SYMBOL_FILLING_IOC))m_trade.SetTypeFilling(ORDER_FILLING_IOC);elsem_trade.SetTypeFilling(ORDER_FILLING_RETURN); //---m_trade.SetAsyncMode(true); //指定异步模式有了这条可瞬时下单上万单m_trade.SetDeviationInPoints(m_slippage); 下面就不一一介绍了我给出一个挂单EA的全部源码可直接下载下去好好学习。 //------------------------------------------------------------------ //| EA Stop Order(barabashkakvns edition).mq5 | //------------------------------------------------------------------ #property copyright Copyright © 2011, Хлыстов Владимир #property link cmillionnarod.ru #property version 2.00 #property description Advisor opens a grid of stop orders #property description When the specified profit level is reached, #property description it closes all positions and deletes all pending orders //--- #include Trade\PositionInfo.mqh #include Trade\Trade.mqh #include Trade\SymbolInfo.mqh #include Trade\OrderInfo.mqh CPositionInfo m_position; // trade position object CTrade m_trade; // trading object CSymbolInfo m_symbol; // symbol info object COrderInfo m_order; // pending orders object //--- input parameters input double InpProfitClose 5; // Profit purpose (in money) input bool InpBuyStop true; // Use Buy stop input bool InpSellStop true; // Use Sell stop input int InpMaxOrders 10; // Maximum pending orders input ushort InpStopLoss 0; // StopLoss (0 - off) input ushort InpTakeProfit 0; // TakeProfit (0 - off) input ushort InpDistance 100; // Distance from current price input double InpLots 0.1; // Lots input double InpLotRatio 1.5; // Lot Ratio input ulong m_magic72994760; // magic number //--- ulong m_slippage10; // slippagedouble ExtStopLoss0.0; double ExtTakeProfit0.0; //--- //--- bool m_bln_close_allfalse; // true - you must close all positions //------------------------------------------------------------------ //| Expert initialization function | //------------------------------------------------------------------ int OnInit(){if(InpLotRatio0.0){string text__FUNCTION__, ERROR: The parameter \Lot Ratio\ can not be less than or equal to zero;Print(text);Alert(text);return(INIT_PARAMETERS_INCORRECT);} //---if(!m_symbol.Name(Symbol())) // sets symbol namereturn(INIT_FAILED);RefreshRates();string err_text;if(!CheckVolumeValue(InpLots,err_text)){Print(__FUNCTION__,, ERROR: ,err_text);return(INIT_PARAMETERS_INCORRECT);} //---m_trade.SetExpertMagicNumber(m_magic); //---if(IsFillingTypeAllowed(SYMBOL_FILLING_FOK))m_trade.SetTypeFilling(ORDER_FILLING_FOK);elseif(IsFillingTypeAllowed(SYMBOL_FILLING_IOC))m_trade.SetTypeFilling(ORDER_FILLING_IOC);elsem_trade.SetTypeFilling(ORDER_FILLING_RETURN); //---m_trade.SetAsyncMode(true);m_trade.SetDeviationInPoints(m_slippage); //---ExtStopLossInpStopLoss*m_symbol.Point();ExtTakeProfitInpTakeProfit*m_symbol.Point(); //---m_bln_close_allfalse; // true - you must close all positions //---return(INIT_SUCCEEDED);} //------------------------------------------------------------------ //| Expert deinitialization function | //------------------------------------------------------------------ void OnDeinit(const int reason){ //---}double Ask,Bid; //------------------------------------------------------------------ //| | //------------------------------------------------------------------ int RefreshRates0(string symbol){if(symbol)symbol_Symbol;MqlTick last_tick;SymbolInfoTick(symbol,last_tick);double Bid0last_tick.bid;SymbolInfoTick(_Symbol,last_tick);Bidlast_tick.bid;Asklast_tick.ask;if(Bid00)Print(刷新数据失败,请检查MT5是不是掉线了,或者打开对应图表加速数据图表更新 symbol);if((Bid0)0)return(0);elsereturn(1);}input bool 启用新增功能1; //------------------------------------------------------------------ //| | //------------------------------------------------------------------ void funx(){if(启用新增功能false)return;if(A_Mq4_FirstOpen_Price(0)0)if(BidA_Mq4_FirstOpen_Price(0))if(Countlots(1)Countlots(0))m_trade.Buy(Countlots(1)-Countlots(0), m_symbol.Name(), Ask, 0.0, 0.0, _sc);if(BidA_Mq4_FirstOpen_Price(1))if(Countlots(1)Countlots(0))m_trade.Sell(Countlots(0)-Countlots(1), m_symbol.Name(), Bid, 0.0, 0.0, _sc);} //------------------------------------------------------------------ //| Expert tick function | //------------------------------------------------------------------ void OnTick(){RefreshRates0();funx();if(m_bln_close_all){CloseAllPositions();DeleteAllOrders();if(CalculateAllPositions()0.0 CalculateAllPendingOrders()0.0)m_bln_close_allfalse;} //---double Profit0.0;for(int iPositionsTotal()-1;i0;i--)if(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()m_symbol.Name() m_position.Magic()m_magic)Profitm_position.Commission()m_position.Swap()m_position.Profit(); //---if(ProfitInpProfitClose) // close all{m_bln_close_alltrue;return;} //---if(CalculateAllPendingOrders()!0){MoveOrder();return;} //---if(!RefreshRates())return;int StopsLevelm_symbol.StopsLevel();if(StopsLevel0)StopsLevelm_symbol.Spread()*3;for(int i1; iInpMaxOrders; i){if(InpDistance*iStopsLevel){double Lot(i1)?InpLots:LotCheck(InpLots*(double)(i-1)*InpLotRatio);if(Lot!0.0){if(InpBuyStop){double Pricem_symbol.NormalizePrice(m_symbol.Ask()(double)InpDistance*(double)i*m_symbol.Point());double sl(InpStopLoss0)?0.0:m_symbol.NormalizePrice(Price-ExtStopLoss);double tp(InpTakeProfit0)?0.0:m_symbol.NormalizePrice(PriceExtTakeProfit);m_trade.BuyStop(Lot,Price,m_symbol.Name(),sl,tp);}if(InpSellStop){double Pricem_symbol.NormalizePrice(m_symbol.Bid()-(double)InpDistance*(double)i*m_symbol.Point());double sl(InpStopLoss0)?0.0:m_symbol.NormalizePrice(PriceExtStopLoss);double tp(InpTakeProfit0)?0.0:m_symbol.NormalizePrice(Price-ExtTakeProfit);m_trade.SellStop(Lot,Price,m_symbol.Name(),sl,tp);}}}} //---} //------------------------------------------------------------------ //| TradeTransaction function | //------------------------------------------------------------------ void OnTradeTransaction(const MqlTradeTransaction trans,const MqlTradeRequest request,const MqlTradeResult result){ //---} //------------------------------------------------------------------ //| Refreshes the symbol quotes data | //------------------------------------------------------------------ bool RefreshRates(void){ //--- refresh ratesif(!m_symbol.RefreshRates()){Print(RefreshRates error);return(false);} //--- protection against the return value of zeroif(m_symbol.Ask()0 || m_symbol.Bid()0)return(false); //---return(true);} //------------------------------------------------------------------ //| Check the correctness of the order volume | //------------------------------------------------------------------ bool CheckVolumeValue(double volume,string error_description){ //--- minimal allowed volume for trade operationsdouble min_volumem_symbol.LotsMin();if(volumemin_volume){error_descriptionStringFormat(Volume is less than the minimal allowed SYMBOL_VOLUME_MIN%.2f,min_volume);return(false);} //--- maximal allowed volume of trade operationsdouble max_volumem_symbol.LotsMax();if(volumemax_volume){error_descriptionStringFormat(Volume is greater than the maximal allowed SYMBOL_VOLUME_MAX%.2f,max_volume);return(false);} //--- get minimal step of volume changingdouble volume_stepm_symbol.LotsStep();int ratio(int)MathRound(volume/volume_step);if(MathAbs(ratio*volume_step-volume)0.1){error_descriptionStringFormat(Volume is not a multiple of the minimal step SYMBOL_VOLUME_STEP%.2f, the closest correct volume is %.2f,volume_step,ratio*volume_step);return(false);}error_descriptionCorrect volume value;return(true);} //------------------------------------------------------------------ //| Checks if the specified filling mode is allowed | //------------------------------------------------------------------ bool IsFillingTypeAllowed(int fill_type){ //--- Obtain the value of the property that describes allowed filling modesint fillingm_symbol.TradeFillFlags(); //--- Return true, if mode fill_type is allowedreturn((filling fill_type)fill_type);} //------------------------------------------------------------------ //| Lot Check | //------------------------------------------------------------------ double LotCheck(double lots){ //--- calculate maximum volumedouble volumeNormalizeDouble(lots,2);double stepvolm_symbol.LotsStep();if(stepvol0.0)volumestepvol*MathFloor(volume/stepvol); //---double minvolm_symbol.LotsMin();if(volumeminvol)volumeminvol; //---double maxvolm_symbol.LotsMax();if(volumemaxvol)volumemaxvol;return(volume);} //------------------------------------------------------------------ //| Close all positions | //------------------------------------------------------------------ void CloseAllPositions(){for(int iPositionsTotal()-1;i0;i--) // returns the number of current positionsif(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()m_symbol.Name() m_position.Magic()m_magic)m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol} //------------------------------------------------------------------ //| Calculate all positions | //------------------------------------------------------------------ int CalculateAllPositions(){int total0;for(int iPositionsTotal()-1;i0;i--)if(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()m_symbol.Name() m_position.Magic()m_magic)total; //---return(total);}//------------------------------------------------------------------ int CountT(ENUM_POSITION_TYPE i0){int total0;for(int iPositionsTotal()-1;i0;i--)if(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()m_symbol.Name() m_position.Magic()m_magic)if(m_position.PositionType()i0)total; //---return(total);}//------------------------------------------------------------------ //| | //------------------------------------------------------------------ double Countlots(ENUM_POSITION_TYPE i0){double total0;for(int iPositionsTotal()-1;i0;i--)if(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()m_symbol.Name() m_position.Magic()m_magic)if(m_position.PositionType()i0)totaltotalm_position.Volume(); //---return(total);}//------------------------------------------------------------------ //| | //------------------------------------------------------------------ double A_Mq4_FirstOpen_Price(ENUM_POSITION_TYPE Type){double A_Mq4_FirstOpen_Price0;for(int i0; iPositionsTotal(); i)// for(int iPositionsTotal()-1;i0;i--)if(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()m_symbol.Name() m_position.Magic()m_magic)if(m_position.PositionType()Type){A_Mq4_FirstOpen_Pricem_position.PriceOpen();break;}return(A_Mq4_FirstOpen_Price);} //------------------------------------------------------------------ //| Calculate all pending orders for symbol | //------------------------------------------------------------------ int CalculateAllPendingOrders(){int total0;for(int iOrdersTotal()-1;i0;i--) // returns the number of current ordersif(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its propertiesif(m_order.Symbol()m_symbol.Name() m_order.Magic()m_magic)total; //---return(total);} //------------------------------------------------------------------ //| Delete all pending orders | //------------------------------------------------------------------ void DeleteAllOrders(){for(int iOrdersTotal()-1;i0;i--) // returns the number of current ordersif(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its propertiesif(m_order.Symbol()m_symbol.Name() m_order.Magic()m_magic)m_trade.OrderDelete(m_order.Ticket());} //------------------------------------------------------------------ //------------------------------------------------------------------ void MoveOrder(){int StopsLevelm_symbol.StopsLevel();if(StopsLevel0)StopsLevelm_symbol.Spread()*3;int b0;int s0;for(int i0;iOrdersTotal();i) // returns the number of current ordersif(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its propertiesif(m_order.Symbol()m_symbol.Name() m_order.Magic()m_magic){if(m_order.OrderType()ORDER_TYPE_BUY_STOP){RefreshRates();b;double zone(StopsLevel(b-1)*InpDistance)*m_symbol.Point();double newPriceOpenm_symbol.NormalizePrice(m_symbol.Ask()zone);if(m_order.PriceOpen()newPriceOpen){Print(BUY:,m_order.Ticket(),,,m_order.PriceOpen(),-,newPriceOpen,-,m_symbol.Ask());if(NormalizeDouble(newPriceOpen-m_order.PriceOpen(),8)!0){m_trade.OrderModify(m_order.Ticket(),newPriceOpen,m_order.StopLoss(),m_order.TakeProfit(),ORDER_TIME_GTC,0);}}}if(m_order.OrderType()ORDER_TYPE_SELL_STOP){RefreshRates();s;double zone(StopsLevel(s-1)*InpDistance)*m_symbol.Point();double newPriceOpenm_symbol.NormalizePrice(m_symbol.Bid()-zone);if(m_order.PriceOpen()newPriceOpen){Print(SELL:,m_order.Ticket(),,,m_order.PriceOpen(),-,newPriceOpen,-,m_symbol.Bid());if(NormalizeDouble(newPriceOpen-m_order.PriceOpen(),8)!0){m_trade.OrderModify(m_order.Ticket(),newPriceOpen,m_order.StopLoss(),m_order.TakeProfit(),ORDER_TIME_GTC,0);}}}}} //------------------------------------------------------------------
http://www.eeditor.cn/news/119452/

相关文章:

  • 怎么做网站后缀识别符号才不会变做视频网站多大空间够
  • 网站内的搜索怎么做的中国信用网站建设的重要性
  • 房产经纪人怎么做网站建立电子商务网站目的
  • 网站页面布局优化电子行业网站
  • 中国建设银行人才招聘网站做韦恩图网站
  • 网站建设与程序编辑哈尔滨多语言网站建设
  • 新乡做网站的公司移动网站开发语言
  • 苏州公司网站建设价格WordPress使用百度分享插件
  • 潍坊高端网站设计天津品牌网站建设公司
  • 马鞍山市 网站建设网站建设需要工作计划
  • 考生登录贵州省住房和城乡建设厅网站wordpress页面访问权限
  • 做服装必须看的十大网站wordpress 签到 积分
  • 专题网站建设方案做一家直播卖货的网站
  • 广东营销网站制作第一推广网
  • c 网站开发简单实例教程做网站的公司搞什么活动
  • 苏州网站建设服务番禺区移动端网站制作
  • 海外网站推广的公司网站建设时间计划图
  • 深圳哪家网站设计比较好wordpress js验证码
  • 玉树市公司网站建设快速搭建网站的工具有哪些
  • 聊城公司网站建设帮朋友做网站 知乎
  • 抽奖的网站怎么做的网站建设一般预付比例多少
  • 毕业设计网站模板微信公众号的网站超链接怎么做
  • 献县做网站广东网站建设哪家专业
  • 济南网站搜索排名app开发比较好的公司
  • 大庆企业做网站东莞网站建设制作公司
  • 网站效果图设计方案wordpress默认主题12
  • 做网站界面重庆专业微信网站制作
  • 钓鱼网站怎么制作html教做布艺的网站
  • 怎样创建网站发招聘信息wordpress快速建站
  • 住房和城乡建设部网站唐山建设商城网站公司