新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1594 1...158715881589159015911592159315941595159615971598159916001601...1953 新评论 Tretyakov Rostyslav 2021.08.19 14:58 #15931 законопослушный гражданин:谢谢但在这个函数中: doubleGetProfitFromStart()黄色只是函数的名称,我说得对吗?原则上,它可以是任何东西? 是的,我这样称呼它是为了让它变得更清楚从开始获得利润 законопослушный гражданин 2021.08.19 19:25 #15932 MakarFX: 是的,我这样命名是为了让它更清楚地了解从开始获得利润 谢谢你。 在专家勾选功能中 void OnTick() - 事实证明,代码行:if(CountOrders()==0&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE))不仅是EA最初启动时的第一个订单触发器 但也包括根据条件关闭订单后的每次运行。 if(GetProfitFromStart()>CountProfit || GetProfitFromStart()<CountLoss*-1) { if (IsTesting()) { CloseOrder(); ObjectSetInteger(0,"lab_Button",OBJPROP_STATE,false); } else { CloseOrder(); } } 我的理解是否正确? Petronet 2021.08.19 19:46 #15933 MakarFX:所有亏损订单的损失金额我一定是又误解了 或每个亏损订单的损失金额或所有亏损订单的累计损失... 如果你只需要一次打印,你最好以脚本的形式进行 你不必这样做,你可以这样做 你的代码很有帮助,现在同样的信息没有显示100次,只有4-10次。也许应该增加else运算符。 Tretyakov Rostyslav 2021.08.19 20:40 #15934 Petronet: 你的代码很有帮助,现在同样的信息没有显示100次,只有4-10次。也许需要增加else运算符。 代码是如何写的,在哪里写的? Tretyakov Rostyslav 2021.08.19 20:45 #15935 законопослушный гражданин:谢谢你。在专家勾选功能中void OnTick() - 事实证明,代码行:if(CountOrders()==0&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE))不仅是EA最初启动时的第一个订单触发器但也包括根据条件关闭订单后的每次运行。我的理解正确吗? 这些是运行EA的条件,如果( 如果)(CountOrders()==0(没有订单)&&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE))( 并且按钮被 按下),那么我们可以交易 Petronet 2021.08.20 18:16 #15936 MakarFX: 代码是如何写的,在哪里写的? 该代码被插入EA的int start()函数的主体 中。我添加了else运算符,它搞砸了一个空变量,数据的重复已经停止,但当两个连续的减去利润时,数据的重复发生在10和2-3次。评论了我原来的循环,它提供了100次相同的信息。你工作的那个。 int start() { //for (int trade = OrdersHistoryTotal() - 1; trade >= 0; trade--) //{ //if ( OrderSelect(trade, SELECT_BY_POS,MODE_HISTORY)) //{ //old_order_type = OrderType(); //if ( OrderProfit()<0 ) //последний закрытый советником ордер был убыточным, значит, следующий ордер открываем в направлении, противоположном закрытому с убытком //{ //Print("Закрылись с минусом:", OrderProfit()); //break; //прекращаем поиск //} //} //break; //} for(int pos=0; pos<OrdersHistoryTotal(); pos++) { if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY)) { if(OrderSymbol()==_Symbol) { if(OrderCloseTime()>=TimeStart) { if(OrderProfit()<0) {cnt=OrderProfit(); Print("ордера с минусом", cnt); TimeStart=TimeCurrent(); cnt=0;} else gg=gg+1; } } } } Tretyakov Rostyslav 2021.08.20 19:07 #15937 Petronet: 该代码被插入EA的int start()函数的主体 中。我添加了else运算符,其中螺丝空变量,数据的重复已经停止,但当连续两次亏损时,数据的重复出现10次和2-3次。评论了我原来的循环,它提供了100次相同的信息。你工作的那个。 // это в глобальные переменные datetime TimeStart; // это в init() TimeStart=Time[0]; 当出现无利可图的交易时,将打印一次 Eugen8519 2021.08.21 09:53 #15938 大家好,我插入了一个函数,在周五晚上8:30关闭头寸 但顾问没有看到今天是星期五,每天都在平仓。 它看起来像这样 input bool UseTimeLimitClose = true; // -- Funktion ein/ausschalten -- enum daysOfWeek { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5 }; input daysOfWeek closday = 5; // -- Handel bis Tag -- input int Close_Hour = 20; // -- Handel bis Uhrzeit Std.-- input int Close_min = 30; void OnTick() if(UseTimeLimitClose) { MqlDateTime TimeNow; TimeToStruct(TimeCurrent(),TimeNow); if ( TimeNow.day_of_week >= closday && TimeNow.hour >= Close_Hour && TimeNow.min >= Close_min ) { CloseAllPositions(); } Tretyakov Rostyslav 2021.08.21 10:10 #15939 Eugen8519: 大家好,我插入了一个函数,在周五晚上8:30关闭头寸 但顾问没有看到今天是星期五,每天都在平仓。 像这样站着 void OnTick() if(UseTimeLimitClose) { if (TimeDayOfWeek(TimeCurrent())==closday && TimeHour(TimeCurrent())>= Close_Hour && TimeMinute(TimeCurrent()) >= Close_min ) { CloseAllPositions(); } Tretyakov Rostyslav 2021.08.21 10:34 #15940 请告知如何将其输出到一个外部变量中。 double levelss[7] = {0,0.236,0.382,0.5,0.618,1,1.618}; // Уровни Fibo 1...158715881589159015911592159315941595159615971598159916001601...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢
但在这个函数中: doubleGetProfitFromStart()
黄色只是函数的名称,我说得对吗?
原则上,它可以是任何东西?
是的,我这样命名是为了让它更清楚地了解从开始获得利润
谢谢你。
在专家勾选功能中
void OnTick() - 事实证明,代码行:if(CountOrders()==0&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE))不仅是EA最初启动时的第一个订单触发器
但也包括根据条件关闭订单后的每次运行。
我的理解是否正确?
所有亏损订单的损失金额
我一定是又误解了
或每个亏损订单的损失金额
或所有亏损订单的累计损失...
如果你只需要一次打印,你最好以脚本的形式进行
你不必这样做,你可以这样做
你的代码很有帮助,现在同样的信息没有显示100次,只有4-10次。也许需要增加else运算符。
谢谢你。
在专家勾选功能中
void OnTick() - 事实证明,代码行:if(CountOrders()==0&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE))不仅是EA最初启动时的第一个订单触发器
但也包括根据条件关闭订单后的每次运行。
我的理解正确吗?
这些是运行EA的条件,如果( 如果)(CountOrders()==0(没有订单)&&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE))( 并且按钮被 按下),那么我们可以交易
代码是如何写的,在哪里写的?
该代码被插入EA的int start()函数的主体 中。我添加了else运算符,其中螺丝空变量,数据的重复已经停止,但当连续两次亏损时,数据的重复出现10次和2-3次。评论了我原来的循环,它提供了100次相同的信息。你工作的那个。
当出现无利可图的交易时,将打印一次
但顾问没有看到今天是星期五,每天都在平仓。
它看起来像这样
大家好,我插入了一个函数,在周五晚上8:30关闭头寸
但顾问没有看到今天是星期五,每天都在平仓。
像这样站着
请告知如何将其输出到一个外部变量中。