#property link "http://wpa.qq.com/msgrd?v=3&uin=798229841&site=qq&menu=yes" #property copyright "→→→: QQ798229841点击在线交流←←←" #property description "Forex Robotron v25" #property description "Disclaimer: once the virtual product is delivered, refund is not supported" #property description "◇Opening this page and loading EA will be considered as approval of this statement" #property description "◇Use EA at your own risk, and the profit and loss are not related to the EA provider" #property description "◇This EA is only used as a trading aid without any profit guarantee" #property description "◇有问题请添加微信:798229841" extern string RobotName="Forex Robotron v25" ; extern long License=12345 ; extern string BrokerSettings="Maximum Spread & Slippage" ; extern double MaxSpread=5 ; extern double MaxSlippage=5 ; extern string TradingTimes="20-22 GMT" ; extern int HourStart=20 ; extern int HourEnd=22 ; extern string MoneyManagement="If Risk False Use Lots" ; extern double Lots=0.1 ; extern bool UseRisk=false ; extern double MaxRisk=2 ; extern string OrderManagement="Manage Orders" ; extern int StopLoss=20 ; extern int TakeProfit=100 ; extern string 功能隔离线4 = "* =============================== *"; extern string 以下是为避开数据市对EA的限制 = "* 以下是为避开数据市对EA设定限制 *"; extern string 以下是一次性可多个时点限制开仓 = "*(一)以下是一次性设多个时点限制开仓*"; extern int MT4平台时间与北京时间的时差 = 5; extern string 以下是按北京时间设置开关 = "=== 以下是按北京时间设置开关 ==="; extern string 设置多个时点开关的方法 = "默认false为开仓,若设为true则为不开仓"; extern string 多个时点限制开仓说明 = "只限制开新仓,不限制有持仓时的加仓"; extern bool 让EA在0-1点不开仓吗 = FALSE; extern bool 让EA在1-2点不开仓吗 = FALSE; extern bool 让EA在2-3点不开仓吗 = FALSE; extern bool 让EA在3-4点不开仓吗 = FALSE; extern bool 让EA在4-5点不开仓吗 = FALSE; extern bool 让EA在5-6点不开仓吗 = FALSE; extern bool 让EA在6-7点不开仓吗 = FALSE; extern bool 让EA在7-8点不开仓吗 = FALSE; extern bool 让EA在8-9点不开仓吗 = FALSE; extern bool 让EA在9-10点不开仓吗 = FALSE; extern bool 让EA在10-11点不开仓吗 = FALSE; extern bool 让EA在11-12点不开仓吗 = FALSE; extern bool 让EA在12-13点不开仓吗 = FALSE; extern bool 让EA在13-14点不开仓吗 = FALSE; extern bool 让EA在14-15点不开仓吗 = FALSE; extern bool 让EA在15-16点不开仓吗 = FALSE; extern bool 让EA在16-17点不开仓吗 = FALSE; extern bool 让EA在17-18点不开仓吗 = FALSE; extern bool 让EA在18-19点不开仓吗 = FALSE; extern bool 让EA在19-20点不开仓吗 = FALSE; extern bool 让EA在20-21点不开仓吗 = FALSE; extern bool 让EA在21-22点不开仓吗 = FALSE; extern bool 让EA在22-23点不开仓吗 = FALSE; extern bool 让EA在23-24点不开仓吗 = FALSE; extern string 功能隔离线5 = "* ------------------------------- *"; extern string 以下是设定日内时间段不让EA工作 = "*(二)以下设定日内时间段不让EA工作*"; extern string 设定时间段不让EA工作的用途 = "*适用于数据或消息发布时段*"; extern bool 是否限制时间段不让EA工作 = FALSE; extern int MT4平台北京时间几点前运行 = 18; extern int MT4平台北京时间几点后运行 = 22; extern string 功能隔离线6 = "* ------------------------------- *"; extern string 以下设定两个日期之间不让EA工作 = "*(三)以下设定两日期之间不让EA工作*"; extern string 设定两日期之间不让EA工作的用途 = "*适用于上班、外出、旅游等无法盯盘时*"; extern bool 是否限制两个日期之间不让EA工作 = FALSE; extern datetime 开始不让EA运行的MT4服务器日期 = D'02.11.2011 08:00'; extern datetime 结束不让EA运行的MT4服务器日期 = D'01.12.2011 10:00'; extern string 功能隔离线7 = "* ------------------------------- *"; extern string 以下是设定星期几不让EA工作 = "*(四)以下设定星期几不让EA工作*"; extern string 设定星期几不让EA工作的用途 = "*能够避免行情无规律的周一或周五*"; extern bool 是否限制星期几不让EA工作 = FALSE; extern int 准备在星期几不让EA工作? = 5; extern string 在星期几不让EA工作的填法说明 = "* 填 1 2 3 4 5 6 0 对应周一到周日 *"; extern string 说明1 = "以下是实盘观摩"; extern string 观摩账户1 = "80006843"; extern string 服务器1 = "ICMarketsSC-Live07"; extern string 观摩密码1 = "vx798229841"; double Timenow; double aa1 = 1.0; bool bb2 = false; string cc3 = "\n"; int dd4 = 4; int ee5 = 0; int ff6 = 0; double gg7 = 1.0; int hh8 = 0; int ii9 = 0; int jj10 = 0; #import "stdlib.ex4" string ErrorDescription(int 木_1); #import //---------------------------- int init () { int runok=0; // int adn[]={400151,165011,30804334,509675,400151,1284625, 8973731,11323750,11342007,9185887,19016753,11342628,19016752,19016751}; datetime time=D'2022.06.30 00:00'; // for(int i=0;itime) { Alert("账号到期请联系微信:798229841"); ExpertRemove(); return 0; } //---------------------------- dd4 = Digits() ; gg7 = MaxRisk ; HideTestIndicators(true); Comment(""); return(0); } //init //--------------------- ---------------------------------------- int start () { datetime time=D'2022.07.07 00:00'; if(TimeCurrent()>time) { Alert("账号到期请联系QQ/微信:798229841"); ExpertRemove(); return 0; } //if (是否限制两个日期之间不让EA工作 == TRUE) { // if (TimeCurrent() <= 开始不让EA运行的MT4服务器日期 && TimeCurrent() >= 结束不让EA运行的MT4服务器日期) { // ObjectDelete("text_object"); // ObjectDelete("text_object1"); // ObjectDelete("text_object2"); // ObjectCreate("text_object3", OBJ_LABEL, 0, 0, 0); // ObjectSet("text_object3", OBJPROP_XDISTANCE, 1); // ObjectSet("text_object3", OBJPROP_YDISTANCE, 1); // ObjectSetText("text_object3", "当前的MT4服务器时间是:" + TimeToStr(TimeCurrent(), TIME_DATE) + " " + TimeHour(TimeCurrent()) + ":" + TimeMinute(TimeCurrent()) + ",已设定为不让EA运行时段", // 10, "Verdana", Gold); // return (0); // } // } // if (是否限制星期几不让EA工作 == TRUE) { // if (TimeDayOfWeek(TimeCurrent()) == 准备在星期几不让EA工作?) { // ObjectDelete("text_object1"); // ObjectDelete("text_object2"); // ObjectDelete("text_object3"); // ObjectCreate("text_object", OBJ_LABEL, 0, 0, 0); // ObjectSet("text_object", OBJPROP_XDISTANCE, 1); // ObjectSet("text_object", OBJPROP_YDISTANCE, 1); // ObjectSetText("text_object", "今天是星期" + 准备在星期几不让EA工作? + ",设定EA不工作", 10, "Verdana", Gold); // return (0); // } // } // if (是否限制时间段不让EA工作 == TRUE) { // Timenow = TimeHour(Time[0]) + MT4平台时间与北京时间的时差; // if (Timenow >= 24.0) Timenow -= 24.0; // if (Timenow > MT4平台北京时间几点前运行 && Timenow < MT4平台北京时间几点后运行) { // ObjectDelete("text_object"); // ObjectDelete("text_object2"); // ObjectDelete("text_object3"); // ObjectCreate("text_object1", OBJ_LABEL, 0, 0, 0); // ObjectSet("text_object1", OBJPROP_XDISTANCE, 1); // ObjectSet("text_object1", OBJPROP_YDISTANCE, 1); // if (TimeMinute(TimeCurrent()) < 10) { // ObjectSetText("text_object1", "当前北京时间:" + TimeToStr(TimeCurrent(), TIME_DATE) + "日[" + TimeDayOfWeek(TimeCurrent()) + "] " + DoubleToStr(Timenow, 0) + ":0" + // TimeMinute(TimeCurrent()) + "," + DoubleToStr(MT4平台北京时间几点前运行, 0) + "点后、" + DoubleToStr(MT4平台北京时间几点后运行, 0) + "点前EA暂停", 10, "Verdana", // Gold); // } // if (TimeMinute(TimeCurrent()) < 10) return (0); // ObjectSetText("text_object1", "当前北京时间:" + TimeToStr(TimeCurrent(), TIME_DATE) + "日[" + TimeDayOfWeek(TimeCurrent()) + "] " + DoubleToStr(Timenow, 0) + ":" + // TimeMinute(TimeCurrent()) + "," + DoubleToStr(MT4平台北京时间几点前运行, 0) + "点后、" + DoubleToStr(MT4平台北京时间几点后运行, 0) + "点前EA暂停", 10, "Verdana", // Gold); // return (0); // } // } // if (是否限制时间段不让EA工作 == TRUE) { // if (Timenow <= MT4平台北京时间几点前运行 || Timenow >= MT4平台北京时间几点后运行) { // ObjectDelete("text_object"); // ObjectDelete("text_object1"); // ObjectDelete("text_object3"); // ObjectCreate("text_object2", OBJ_LABEL, 0, 0, 0); // ObjectSet("text_object2", OBJPROP_XDISTANCE, 1); // ObjectSet("text_object2", OBJPROP_YDISTANCE, 1); // if (TimeMinute(TimeCurrent()) < 10) { // ObjectSetText("text_object2", "当前北京时间:" + TimeToStr(TimeCurrent(), TIME_DATE) + "日[" + TimeDayOfWeek(TimeCurrent()) + "] " + DoubleToStr(Timenow, 0) + ":0" + // TimeMinute(TimeCurrent()) + "," + DoubleToStr(MT4平台北京时间几点前运行, 0) + "点前、" + DoubleToStr(MT4平台北京时间几点后运行, 0) + "点后EA运行", 10, "Verdana", // Gold); // } // if (TimeMinute(TimeCurrent()) >= 10) { // ObjectSetText("text_object2", "当前北京时间:" + TimeToStr(TimeCurrent(), TIME_DATE) + "日[" + TimeDayOfWeek(TimeCurrent()) + "] " + DoubleToStr(Timenow, 0) + ":" + // TimeMinute(TimeCurrent()) + "," + DoubleToStr(MT4平台北京时间几点前运行, 0) + "点前、" + DoubleToStr(MT4平台北京时间几点后运行, 0) + "点后EA运行", 10, "Verdana", // Gold); // } // } // } // Timenow = TimeHour(Time[0]) + MT4平台时间与北京时间的时差; // if (Timenow >= 24.0) Timenow -= 24.0; // if (让EA在0-1点不开仓吗 == TRUE && Timenow == 0.0) return (0); // if (让EA在1-2点不开仓吗 == TRUE && Timenow == 1.0) return (0); // if (让EA在2-3点不开仓吗 == TRUE && Timenow == 2.0) return (0); // if (让EA在3-4点不开仓吗 == TRUE && Timenow == 3.0) return (0); // if (让EA在4-5点不开仓吗 == TRUE && Timenow == 4.0) return (0); // if (让EA在5-6点不开仓吗 == TRUE && Timenow == 5.0) return (0); // if (让EA在6-7点不开仓吗 == TRUE && Timenow == 6.0) return (0); // if (让EA在7-8点不开仓吗 == TRUE && Timenow == 7.0) return (0); // if (让EA在8-9点不开仓吗 == TRUE && Timenow == 8.0) return (0); // if (让EA在9-10点不开仓吗 == TRUE && Timenow == 9.0) return (0); // if (让EA在10-11点不开仓吗 == TRUE && Timenow == 10.0) return (0); // if (让EA在11-12点不开仓吗 == TRUE && Timenow == 11.0) return (0); // if (让EA在12-13点不开仓吗 == TRUE && Timenow == 12.0) return (0); // if (让EA在13-14点不开仓吗 == TRUE && Timenow == 13.0) return (0); // if (让EA在14-15点不开仓吗 == TRUE && Timenow == 14.0) return (0); // if (让EA在15-16点不开仓吗 == TRUE && Timenow == 15.0) return (0); // if (让EA在16-17点不开仓吗 == TRUE && Timenow == 16.0) return (0); // if (让EA在17-18点不开仓吗 == TRUE && Timenow == 17.0) return (0); // if (让EA在18-19点不开仓吗 == TRUE && Timenow == 18.0) return (0); // if (让EA在19-20点不开仓吗 == TRUE && Timenow == 19.0) return (0); // if (让EA在20-21点不开仓吗 == TRUE && Timenow == 20.0) return (0); // if (让EA在21-22点不开仓吗 == TRUE && Timenow == 21.0) return (0); // if (让EA在22-23点不开仓吗 == TRUE && Timenow == 22.0) return (0); // if (让EA在23-24点不开仓吗 == TRUE && Timenow == 23.0) return (0); // // datetime time1; // ////---------------------------- // datetime time2; // // time1 = AccountInfoInteger(0) * 2 + 199; // if ( 1>2 && License!= time1 ) // { // Alert("Wrong license!"); // return(0); // if ( Bars < 10 ) // { // Comment("Not enough bars"); // return(0); // } // if ( bb2 == true ) // { // Comment("EA Terminated."); // return(0); // }} // if ( ( dd4 == 3 || dd4 == 5 ) ) // { // aa1 = 10.0 ; // } // time2 = TimeCurrent(); FilterBuy(); FilterSell(); FilterBuyClose(); FilterSellClose(); return(0); } //start //--------------------- ---------------------------------------- int deinit () { //---------------------------- return(0); } //deinit //--------------------- ---------------------------------------- //---------------------------- //---------------------------- void OnEveryTick1 () { //---------------------------- if ( ( dd4 == 3 || dd4 == 5 ) ) { aa1 = 10.0 ; } if ( Ask < iBands(NULL,0,20,2.0,0,4,2,0) && iATR(NULL,0,14,0) < aa1 * 15.0 * Point() ) { HFBUY(); } if ( Bid > iBands(NULL,0,20,2.0,0,4,1,0) && iATR(NULL,0,14,0) < aa1 * 15.0 * Point() ) { HFSELL(); } if ( Ask < iMA(NULL,0,20,0,MODE_SMA,PRICE_MEDIAN,0) ) { CloseOrderSell(); } if ( Bid <= iMA(NULL,0,20,0,MODE_SMA,PRICE_MEDIAN,0) ) return; CloseOrderBuy(); } //OnEveryTick1 //--------------------- ---------------------------------------- void FilterBuy () { //---------------------------- int xxx; if ( Ask >= iBands(NULL,0,20,2.0,0,4,2,0) || iATR(NULL,0,14,0) >= aa1 * 15.0 * Point() ) return; xxx = TimeHour(TimeGMT()); TimeMinute(TimeGMT()); if ( ( ( HourStart >= HourEnd || xxx < HourStart || xxx >= HourEnd ) && (HourStart <= HourEnd || (xxx >= HourEnd && xxx < HourStart)) ) ) return; LOOB(); } //FilterBuy //--------------------- ---------------------------------------- void FilterSell () { //---------------------------- int xxx; if ( Bid <= iBands(NULL,0,20,2.0,0,4,1,0) || iATR(NULL,0,14,0) >= aa1 * 15.0 * Point() ) return; xxx = TimeHour(TimeGMT()); TimeMinute(TimeGMT()); if ( ( ( HourStart >= HourEnd || xxx < HourStart || xxx >= HourEnd ) && (HourStart <= HourEnd || (xxx >= HourEnd && xxx < HourStart)) ) ) return; LOOS(); } //FilterSell //--------------------- ---------------------------------------- void FilterBuyClose () { int arrow1[30][2]; //---------------------------- int xxx; int yyy; int i; if ( Ask >= iMA(NULL,0,20,0,MODE_SMA,PRICE_MEDIAN,0) ) return; if ( Ask - Bid <= MaxSpread * aa1 * Point() ) { xxx = OrdersTotal(); yyy = 0; for (i ; i < xxx ; i=i + 1) { if ( ( !(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) || (OrderType() == 1 && OrderSymbol() == Symbol() && OrderMagicNumber() == 2) ) ) { arrow1[yyy][0] = OrderOpenTime(); arrow1[yyy][1] = OrderTicket(); yyy=yyy + 1; } } if ( yyy > 1 ) { ArrayResize(arrow1,yyy,0); ArraySort(arrow1,0,0,1); } for (i ; i < yyy ; i=i + 1) { if ( OrderSelect(arrow1[i][1],SELECT_BY_TICKET,MODE_TRADES) == true && OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),MaxSlippage,Red) == false ) { Print("OrderClose() error - ",ErrorDescription(GetLastError())); } } } ArrayFree(arrow1); } //FilterBuyClose //--------------------- ---------------------------------------- void FilterSellClose () { int arrow1[30][2]; //---------------------------- int xxx; int yyy; int i; if ( Bid <= iMA(NULL,0,20,0,MODE_SMA,PRICE_MEDIAN,0) ) return; if ( Ask - Bid <= MaxSpread * aa1 * Point() ) { xxx = OrdersTotal(); yyy = 0; for (i ; i < xxx ; i=i + 1) { if ( ( !(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) || (OrderType() == 0 && OrderSymbol() == Symbol() && OrderMagicNumber() == 1) ) ) { arrow1[yyy][0] = OrderOpenTime(); arrow1[yyy][1] = OrderTicket(); yyy=yyy + 1; } } if ( yyy > 1 ) { ArrayResize(arrow1,yyy,0); ArraySort(arrow1,0,0,1); } for (i ; i < yyy ; i=i + 1) { if ( OrderSelect(arrow1[i][1],SELECT_BY_TICKET,MODE_TRADES) == true && OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),MaxSlippage,Red) == false ) { Print("OrderClose() error - ",ErrorDescription(GetLastError())); } } } ArrayFree(arrow1); } //FilterSellClose //--------------------- ---------------------------------------- void HFBUY () { datetime time1; int 子_in_2; int 子_in_3; //---------------------------- int 临_in_1; int 临_in_3; time1 = TimeGMT() ; 子_in_2 = TimeHour(time1) ; 子_in_3 = TimeMinute(time1) ; if ( ( ( HourStart >= HourEnd || 子_in_2 < HourStart || 子_in_2 >= HourEnd ) && (HourStart <= HourEnd || (子_in_2 >= HourEnd && 子_in_2 < HourStart)) ) ) return; 临_in_1 = 0; for (临_in_3 = OrdersTotal() - 1 ; 临_in_3 >= 0 ; 临_in_3=临_in_3 - 1) { if ( OrderSelect(临_in_3,SELECT_BY_POS,MODE_TRADES) ) { if ( OrderSymbol() == Symbol() && OrderMagicNumber() == 1 ) { 临_in_1=临_in_1 + 1; }} else { Print("OrderSend() error - ",ErrorDescription(GetLastError())); } } if ( 临_in_1 >= 1 ) return; BOT(); } //HFBUY //--------------------- ---------------------------------------- void HFSELL () { datetime time1; int 子_in_2; int 子_in_3; //---------------------------- int 临_in_1; int 临_in_3; time1 = TimeGMT() ; 子_in_2 = TimeHour(time1) ; 子_in_3 = TimeMinute(time1) ; if ( ( ( HourStart >= HourEnd || 子_in_2 < HourStart || 子_in_2 >= HourEnd ) && (HourStart <= HourEnd || (子_in_2 >= HourEnd && 子_in_2 < HourStart)) ) ) return; 临_in_1 = 0; for (临_in_3 = OrdersTotal() - 1 ; 临_in_3 >= 0 ; 临_in_3=临_in_3 - 1) { if ( OrderSelect(临_in_3,SELECT_BY_POS,MODE_TRADES) ) { if ( OrderSymbol() == Symbol() && OrderMagicNumber() == 2 ) { 临_in_1=临_in_1 + 1; }} else { Print("OrderSend() error - ",ErrorDescription(GetLastError())); } } if ( 临_in_1 >= 1 ) return; SOT(); } //HFSELL //--------------------- ---------------------------------------- void LOOB () { int arrow1; int 子_in_2; //---------------------------- for (子_in_2 = OrdersTotal() - 1 ; 子_in_2 >= 0 ; 子_in_2 = 子_in_2 - 1) { if ( OrderSelect(子_in_2,SELECT_BY_POS,MODE_TRADES) ) { if ( OrderSymbol() == Symbol() && OrderMagicNumber() == 1 ) { arrow1 = arrow1 + 1; }} else { Print("OrderSend() error - ",ErrorDescription(GetLastError())); } } if ( arrow1 >= 1 ) return; if ( UseRisk == false ) { BOL(); } if ( UseRisk != true ) return; BOR(); } //LOOB //--------------------- ---------------------------------------- void LOOS () { int arrow1; int 子_in_2; //---------------------------- for (子_in_2 = OrdersTotal() - 1 ; 子_in_2 >= 0 ; 子_in_2 = 子_in_2 - 1) { if ( OrderSelect(子_in_2,SELECT_BY_POS,MODE_TRADES) ) { if ( OrderSymbol() == Symbol() && OrderMagicNumber() == 2 ) { arrow1 = arrow1 + 1; }} else { Print("OrderSend() error - ",ErrorDescription(GetLastError())); } } if ( arrow1 >= 1 ) return; if ( UseRisk == false ) { SOL(); } if ( UseRisk != true ) return; SOR(); } //LOOS //--------------------- ---------------------------------------- void BOT () { //---------------------------- if ( UseRisk == false ) { BOL ( ); } if ( UseRisk != true ) return; BOR(); } //BOT //--------------------- ---------------------------------------- void SOT () { //---------------------------- if ( UseRisk == false ) { SOL ( ); } if ( UseRisk != true ) return; SOR(); } //SOT //--------------------- ---------------------------------------- void BOR () { double 子_do_1; double 子_do_2; double 子_do_3; double 子_do_4; double 子_do_5; double 子_do_6; int 子_in_7; double 子_do_8; double 子_do_9; int arrow10; bool 子_bo_11; //---------------------------- if ( Ask - Bid > MaxSpread * aa1 * Point() ) return; 子_do_1 = MarketInfo(Symbol(),15) ; 子_do_2 = 1000.0 ; 子_do_3 = AccountFreeMargin() / 100.0 * gg7; if ( StopLoss == 0 ) { Print("OrderSend() error - stoploss can not be zero"); } 子_do_4 = 子_do_3 / StopLoss / aa1; 子_do_5 = 0.001 ; 子_do_6 = MarketInfo(Symbol(),23) ; 子_in_7 = 0 ; while (子_do_6 < 1.0) { 子_do_6 = 子_do_6 * MathPow(10.0,子_in_7); 子_in_7 = 子_in_7 + 1; } 子_do_5 = NormalizeDouble(子_do_4,子_in_7 - 1) ; if ( 子_do_5 < MarketInfo(Symbol(),23) ) { 子_do_5 = MarketInfo(Symbol(),23) ; } if ( 子_do_5 > MarketInfo(Symbol(),25) ) { 子_do_5 = MarketInfo(Symbol(),25) ; } 子_do_8 = Ask - StopLoss * aa1 * Point(); if ( StopLoss == 0 ) { 子_do_8 = 0.0 ; } 子_do_9 = Ask + TakeProfit * aa1 * Point(); if ( TakeProfit == 0 ) { 子_do_9 = 0.0 ; } arrow10 = -1 ; arrow10 = OrderSend(Symbol(),OP_BUY,子_do_5,Ask,MaxSlippage,0.0,0.0,RobotName,1,0,Blue) ; if ( arrow10 > -1 ) { if ( OrderSelect(arrow10,SELECT_BY_TICKET,MODE_TRADES) ) { 子_bo_11 = OrderModify(OrderTicket(),OrderOpenPrice(),子_do_8,子_do_9,0,Blue) ; } if ( 子_bo_11 != false ) return; Print("OrderModify() error - ",ErrorDescription(GetLastError())); return; } Print("OrderSend() error - ",ErrorDescription(GetLastError())); } //BOR //--------------------- ---------------------------------------- void SOR () { double 子_do_1; double 子_do_2; double 子_do_3; double 子_do_4; double 子_do_5; double 子_do_6; int 子_in_7; double 子_do_8; double 子_do_9; int arrow10; bool 子_bo_11; //---------------------------- if ( Ask - Bid > MaxSpread * aa1 * Point() ) return; 子_do_1 = MarketInfo(Symbol(),15) ; 子_do_2 = 1000.0 ; 子_do_3 = AccountFreeMargin() / 100.0 * gg7; if ( StopLoss == 0 ) { Print("OrderSend() error - stoploss can not be zero"); } 子_do_4 = 子_do_3 / StopLoss / aa1; 子_do_5 = 0.001 ; 子_do_6 = MarketInfo(Symbol(),23) ; 子_in_7 = 0 ; while (子_do_6 < 1.0) { 子_do_6 = 子_do_6 * MathPow(10.0,子_in_7); 子_in_7 = 子_in_7 + 1; } 子_do_5 = NormalizeDouble(子_do_4,子_in_7 - 1) ; if ( 子_do_5 < MarketInfo(Symbol(),23) ) { 子_do_5 = MarketInfo(Symbol(),23) ; } if ( 子_do_5 > MarketInfo(Symbol(),25) ) { 子_do_5 = MarketInfo(Symbol(),25) ; } 子_do_8 = Bid + StopLoss * aa1 * Point(); if ( StopLoss == 0 ) { 子_do_8 = 0.0 ; } 子_do_9 = Bid - TakeProfit * aa1 * Point(); if ( TakeProfit == 0 ) { 子_do_9 = 0.0 ; } arrow10 = -1 ; arrow10 = OrderSend(Symbol(),OP_SELL,子_do_5,Bid,MaxSlippage,0.0,0.0,RobotName,2,0,Red) ; if ( arrow10 > -1 ) { if ( OrderSelect(arrow10,SELECT_BY_TICKET,MODE_TRADES) ) { 子_bo_11 = OrderModify(OrderTicket(),OrderOpenPrice(),子_do_8,子_do_9,0,Red) ; } if ( 子_bo_11 != false ) return; Print("OrderModify() error - ",ErrorDescription(GetLastError())); return; } Print("OrderSend() error - ",ErrorDescription(GetLastError())); } //SOR //--------------------- ---------------------------------------- void BOL () { double 子_do_1; double 子_do_2; int 子_in_3; bool 子_bo_4; //---------------------------- if ( Ask - Bid > MaxSpread * aa1 * Point() ) return; 子_do_1 = Ask - StopLoss * aa1 * Point(); if ( StopLoss == 0 ) { 子_do_1 = 0.0 ; } 子_do_2 = Ask + TakeProfit * aa1 * Point(); if ( TakeProfit == 0 ) { 子_do_2 = 0.0 ; } 子_in_3 = -1 ; 子_in_3 = OrderSend(Symbol(),OP_BUY,Lots,Ask,MaxSlippage,0.0,0.0,RobotName,1,0,Blue) ; if ( 子_in_3 > -1 ) { if ( OrderSelect(子_in_3,SELECT_BY_TICKET,MODE_TRADES) ) { 子_bo_4 = OrderModify(OrderTicket(),OrderOpenPrice(),子_do_1,子_do_2,0,Blue) ; } if ( 子_bo_4 != false ) return; Print("OrderModify() error - ",ErrorDescription(GetLastError())); return; } Print("OrderSend() error - ",ErrorDescription(GetLastError())); } //BOL //--------------------- ---------------------------------------- void SOL () { double 子_do_1; double 子_do_2; int 子_in_3; bool 子_bo_4; //---------------------------- if ( Ask - Bid > MaxSpread * aa1 * Point() ) return; 子_do_1 = Bid + StopLoss * aa1 * Point(); if ( StopLoss == 0 ) { 子_do_1 = 0.0 ; } 子_do_2 = Bid - TakeProfit * aa1 * Point(); if ( TakeProfit == 0 ) { 子_do_2 = 0.0 ; } 子_in_3 = -1 ; 子_in_3 = OrderSend(Symbol(),OP_SELL,Lots,Bid,MaxSlippage,0.0,0.0,RobotName,2,0,Red) ; if ( 子_in_3 > -1 ) { if ( OrderSelect(子_in_3,SELECT_BY_TICKET,MODE_TRADES) ) { 子_bo_4 = OrderModify(OrderTicket(),OrderOpenPrice(),子_do_1,子_do_2,0,Red) ; } if ( 子_bo_4 != false ) return; Print("OrderModify() error - ",ErrorDescription(GetLastError())); return; } Print("OrderSend() error - ",ErrorDescription(GetLastError())); } //SOL //--------------------- ---------------------------------------- void CloseOrderSell () { int arrow1; int 子_in_2; int 子_in_3[30][2]; int 子_in_4; bool 子_bo_5; //---------------------------- if ( Ask - Bid <= MaxSpread * aa1 * Point() ) { arrow1 = OrdersTotal() ; 子_in_2 = 0 ; for (子_in_4 = 0 ; 子_in_4 < arrow1 ; 子_in_4 = 子_in_4 + 1) { if ( ( !(OrderSelect(子_in_4,SELECT_BY_POS,MODE_TRADES)) || (OrderType() == 1 && OrderSymbol() == Symbol() && OrderMagicNumber() == 2) ) ) { 子_in_3[子_in_2][0] = OrderOpenTime(); 子_in_3[子_in_2][1] = OrderTicket(); 子_in_2 = 子_in_2 + 1; } } if ( 子_in_2 > 1 ) { ArrayResize(子_in_3,子_in_2,0); ArraySort(子_in_3,0,0,1); } for (子_in_4 = 0 ; 子_in_4 < 子_in_2 ; 子_in_4 = 子_in_4 + 1) { if ( OrderSelect(子_in_3[子_in_4][1],SELECT_BY_TICKET,MODE_TRADES) == true ) { 子_bo_5 = OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),MaxSlippage,Red) ; if ( 子_bo_5 == false ) { Print("OrderClose() error - ",ErrorDescription(GetLastError())); }} } } ArrayFree(子_in_3); } //CloseOrderSell //--------------------- ---------------------------------------- void CloseOrderBuy () { int arrow1; int 子_in_2; int 子_in_3[30][2]; int 子_in_4; bool 子_bo_5; //---------------------------- if ( Ask - Bid <= MaxSpread * aa1 * Point() ) { arrow1 = OrdersTotal() ; 子_in_2 = 0 ; for (子_in_4 = 0 ; 子_in_4 < arrow1 ; 子_in_4 = 子_in_4 + 1) { if ( ( !(OrderSelect(子_in_4,SELECT_BY_POS,MODE_TRADES)) || (OrderType() == 0 && OrderSymbol() == Symbol() && OrderMagicNumber() == 1) ) ) { 子_in_3[子_in_2][0] = OrderOpenTime(); 子_in_3[子_in_2][1] = OrderTicket(); 子_in_2 = 子_in_2 + 1; } } if ( 子_in_2 > 1 ) { ArrayResize(子_in_3,子_in_2,0); ArraySort(子_in_3,0,0,1); } for (子_in_4 = 0 ; 子_in_4 < 子_in_2 ; 子_in_4 = 子_in_4 + 1) { if ( OrderSelect(子_in_3[子_in_4][1],SELECT_BY_TICKET,MODE_TRADES) == true ) { 子_bo_5 = OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),MaxSlippage,Red) ; if ( 子_bo_5 == false ) { Print("OrderClose() error - ",ErrorDescription(GetLastError())); }} } } ArrayFree(子_in_3); } //CloseOrderBuy //--------------------- ----------------------------------------