[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 207 1...200201202203204205206207208209210211212213214...432 新评论 TarasBY 2013.03.08 07:56 #2061 solnce600: 先生们,请告诉我如何编码(可能在条件语句中)一个简单的想法 -如果一笔交易以止损点平仓 -在止损价开立另一笔交易 谢谢你请看一看。 vlad-755 2013.03.08 08:17 #2062 Roger:1.你不能在init()函数中打开订单。 (在策略测试器中,这仍然可以工作,但在演示中不能工作)。2.当你关闭订单时,你应该从终点算到起点,而不是像你的情况那样反过来。谢谢你的答复。 在这种情况下,循环运算符在测试器中被调查,这就是为什么订单在init()中被打开以进行简化,这在真实的EA中不会发生。 改变订单选择的顺序确实会导致它们在一个刻度内被关闭(我在下面给出了程序的代码和测试者日志的报告)。 似乎很奇怪,MQL4不允许我改变订单的工作顺序。 如果你知道原因,请告知,因为根据EA的工作逻辑,我将完全按照订单打开的顺序关闭订单。真诚的。舒尔金。Код программы. //+------------------------------------------------------------------+ //| Poligon1.mq4 | //| 21 февраля 2013 года. | //|Тестирование оператора цикла for. | //+------------------------------------------------------------------+ #property copyright "21 февраля 2013 года." #property link "" //+------------------------------------------------------------------+ //|Объявленные переменные | //+------------------------------------------------------------------+ int Mn=357;//Magic number int i;//Показатель счётчика итераций double PriTP;//TP серии int Tick;//Счётчик тиков //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //----Установка серии ордеров OrderSend(Symbol(),OP_BUY,0.5,Ask,0,NormalizeDouble(Bid-35*Point,Digits), NormalizeDouble(Ask+35*Point,Digits),NULL,Mn,0,CLR_NONE);//OP_BUY OrderSend(Symbol(),OP_BUY,1,Ask,0,NormalizeDouble(Bid-25*Point,Digits), NormalizeDouble(Ask+25*Point,Digits),NULL,Mn,0,CLR_NONE);//OP_BUY OrderSend(Symbol(),OP_BUY,1.5,Ask,0,NormalizeDouble(Bid-15*Point,Digits), NormalizeDouble(Ask+15*Point,Digits),NULL,Mn,0,CLR_NONE);//OP_BUY OrderSend(Symbol(),OP_BUY,2.5,Ask,0,NormalizeDouble(Bid-15*Point,Digits), NormalizeDouble(Ask+15*Point,Digits),NULL,Mn,0,CLR_NONE);//OP_BUY OrderSend(Symbol(),OP_BUY,3.5,Ask,0,NormalizeDouble(Bid-15*Point,Digits), NormalizeDouble(Ask+15*Point,Digits),NULL,Mn,0,CLR_NONE);//OP_BUY OrderSend(Symbol(),OP_BUYLIMIT,1,NormalizeDouble(Ask-15*Point,Digits),0, NormalizeDouble(Bid-40*Point,Digits),NormalizeDouble(Ask+25*Point,Digits), NULL,Mn,0,CLR_NONE);//OP_BUYLIMIT OrderSend(Symbol(),OP_SELLSTOP,3,NormalizeDouble(Ask-30*Point,Digits),0, NormalizeDouble(Bid+15*Point,Digits),NormalizeDouble(Ask-75*Point,Digits), NULL,Mn,0,CLR_NONE);//OP_SELLSTOP //---- PriTP=Bid;//PriTP Print("Кс0:"," OrdersTotal=",OrdersTotal());//Сообщение //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- Tick++;//Tick // Print("Кс1:"," Tick=",Tick);//Сообщение //---- // for(i=0;i<OrdersTotal();i++)//Инициализация цикла for(i=OrdersTotal()-1; i>=0; i--)// { Print("Кс2:"," Tick=",Tick," i=",i);//Сообщение if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)//Выбор ордера i { if(OrderSymbol()==Symbol())//Символ { if(OrderMagicNumber()==Mn)//Идентификационное число { if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP)//Тип операции текущего выбранного ордера { OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE);//Закрытие позиции }//Закрыто if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP) }//Закрыто if(OrderMagicNumber()==Mn) }//Закрыто if(OrderSymbol()==Symbol() }//Закрыто if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) }//Закрыто for(i=0;i<OrdersTotal();i++) //---- return(0); } //+------------------------------------------------------------------+Записи в журнале тестера. 2013.03.08 13:28:19 Poligon1 EURUSD,M15: removed 2013.03.08 10:14:14 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс2: Tick=3 i=0 2013.03.08 10:14:14 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс2: Tick=3 i=1 2013.03.08 10:13:50 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс2: Tick=2 i=0 2013.03.08 10:13:50 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс2: Tick=2 i=1 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: close #1 buy 0.50 EURUSD at 1.3397 sl: 1.3360 tp: 1.3432 at price 1.3395 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс2: Tick=1 i=0 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: close #2 buy 1.00 EURUSD at 1.3397 sl: 1.3370 tp: 1.3422 at price 1.3395 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс2: Tick=1 i=1 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: close #3 buy 1.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 at price 1.3395 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс2: Tick=1 i=2 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: close #4 buy 2.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 at price 1.3395 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс2: Tick=1 i=3 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: close #5 buy 3.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 at price 1.3395 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс2: Tick=1 i=4 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс2: Tick=1 i=5 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс2: Tick=1 i=6 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: Кс0: OrdersTotal=7 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: open #7 sell stop 3.00 EURUSD at 1.3367 sl: 1.3410 tp: 1.3322 ok 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: open #6 buy limit 1.00 EURUSD at 1.3382 sl: 1.3355 tp: 1.3422 ok 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: open #5 buy 3.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 ok 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: open #4 buy 2.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 ok 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: open #3 buy 1.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 ok 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: open #2 buy 1.00 EURUSD at 1.3397 sl: 1.3370 tp: 1.3422 ok 2013.03.08 10:13:26 2013.02.11 12:15 Poligon1 EURUSD,M15: open #1 buy 0.50 EURUSD at 1.3397 sl: 1.3360 tp: 1.3432 ok 2013.03.08 10:13:26 Poligon1 test started 2013.03.08 10:13:24 Poligon1 EURUSD,M15: loaded successfully ANDREY 2013.03.08 09:09 #2063 非常感谢你提供的有价值的信息,我一定会在今后努力考虑你所告诉我的一切。 ANDREY 2013.03.08 09:10 #2064 borilunad: 你不可能完全在止损价开仓,但你可以有条件地在相同或相反的方向开仓! 这里是Kim的 "有用的函数 "中的一个函数调用,你可以把它放在一个条件中。 isCloseLastPosByStop - 返回通过止损关闭最后一个位置的标志 如果(isCloseLastPosByStop() ==0)或...==1)和任何你想要的...... 你可以在这里找到这个功能:https://www.mql5.com/ru/forum/131859 并把它放在起点之外! 我请求你!你可以自己做这一切,勤奋、准确和耐心,否则你不会从提示中学到任何东西!"。 只有通过自己的充分努力,才能获得知识!进入日常的探究性工作!好运! 非常感谢你提供的有价值的信息,我一定会在今后努力考虑你所告诉我的一切。 Mikhail Ermakov 2013.03.09 03:39 #2065 日子过得不错。请告诉我,是否存在TC可以改变或删除订单的评论的情况?非常感谢你。 Виктор 2013.03.09 04:31 #2066 Gek34:请告诉我,是否存在TC可以改变或删除订单的评论的情况...? 作为一个例子。 本机评论e121220_3in1 01 翻转后增加了DCe121220_3in1 01[调换]也就是说,如果我们搜索一个带有注释的订单,我们应该初步确定原生注释行的长度,在搜索过程中,我们只检查相应长度的变更后的注释的第一部分。或者检查本地字符串是否在被检查的注释中。 Alexander 2013.03.09 05:59 #2067 Shurkin:谢谢你的答复。 在这种情况下,循环运算器的工作在测试器中被准确调查,这就是为什么订单在init()中被打开以进行简化,这在真实的EA中不会发生。 改变订单选择的顺序确实会导致在一个刻度内关闭订单(程序的代码和测试者日志的报告在下面给出)。 似乎很奇怪,MQL4不允许我选择订单。 如果你知道原因,请告知,因为专家顾问的工作逻辑表明,订单应该完全按照其打开的顺序关闭。 真诚的。舒尔金。 试试这个结构 for(i=0, int k=0; i<OrdersTotal();i++,k++)// { Print("Кс2:"," Tick=",Tick," i=",i);//Сообщение if(OrderSelect(k,SELECT_BY_POS,MODE_TRADES)==true)//Выбор ордера i { if(OrderSymbol()==Symbol())//Символ { if(OrderMagicNumber()==Mn)//Идентификационное число { if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP)//Тип операции текущего выбранного ордера { OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE);//Закрытие позиции k--; }//Закрыто if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP) }//Закрыто if(OrderMagicNumber()==Mn) }//Закрыто if(OrderSymbol()==Symbol() }//Закрыто if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) }//Закрыто for(i=0;i<OrdersTotal();i++) Dima.A 2013.03.09 08:56 #2068 Gek34:日子过得不错。请告诉我,是否存在TC可以改变或删除订单的评论的情况?非常感谢你。 我们经历了对一个订单的评论的完全改变。另外,在部分关闭期间,魔法有时会被清零(部分关闭是由服务器发起的)。现在,有一个单独的、循环的顾问来控制后者,它监测 "外来 "订单和其他不一致的情况,通过推送信息 及时通知。 Konstantin Drozdov 2013.03.09 11:22 #2069 请告知如何正确书写该条件。1.如果订单符号=符号和订单Magik=1352.如果没有未决的 BAYSTOP订单3.如果没有未平仓的订单BAY或者(如果有)止损>开盘价4.如果价格在MA和分形之间上升下达悬而未决的买入止损单像这样写。 static bool flag ; if(NewBar()==true) flag = true; for(int i=0;i<total-1;i++) { OrderSelect(i,SELECT_BY_POS); if(OrderSymbol()==Symbol() && OrderMagicNumber()==135) { if(OrderType()<=OP_BUYSTOP) { if((OrderType()<=OP_BUY) || (OrderType()==OP_BUY && OrderStopLoss()>OrderOpenPrice())) { if(Ask<m && Ask>ma && frUP>0 && flag) { double price = NormalizeDouble(frUP+30*Point+(Ask-Bid)*Point,Digits); double stoploss = NormalizeDouble(price-sl*Point-30*Point,Digits); double takeprofit = NormalizeDouble(price+tp*Point,Digits); int ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,5,stoploss,takeprofit,"R",135,TimeCurrent()+55000,Blue); if(ticket>0) { Alert("R!Отложенный ордер BUYSTOP!!! ",Symbol()); flag = false; } else { Print("Lots= ", Lots,"price= ", price,"stoploss= ", stoploss,"takeprofit= ", takeprofit,"Ошибка № ",GetLastError()); return; } } } } } } 不工作!告诉我这是什么错误? polycomp 2013.03.09 17:19 #2070 请告知什么会导致以下问题。有一个使用外部功能 的指标。编译后的库代码位于 libraries 文件夹中,描述符--位于 include 中。连接 #include <lib_Zemckikh.mqh>.在指标的第一次运行期间,所有库的功能都正常工作,指标在图表上显示。在改变参数后(在对指标进行新的计算后),库函数不被调用,指标不被显示,在改变参数后的 "专家 "标签中没有条目。如果你排除了库的连接,将所需的函数放在指标文件中(直接用函数编译),一切都能正常工作。我不明白哪里出了问题。我不想污染论坛,我不把代码附在上面。如果你需要,我可以亲自送去给你。 1...200201202203204205206207208209210211212213214...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
先生们,请告诉我如何编码(可能在条件语句中)一个简单的想法
-如果一笔交易以止损点平仓
-在止损价开立另一笔交易
谢谢你
1.你不能在init()函数中打开订单。 (在策略测试器中,这仍然可以工作,但在演示中不能工作)。
2.当你关闭订单时,你应该从终点算到起点,而不是像你的情况那样反过来。
谢谢你的答复。
在这种情况下,循环运算符在测试器中被调查,这就是为什么订单在init()中被打开以进行简化,这在真实的EA中不会发生。
改变订单选择的顺序确实会导致它们在一个刻度内被关闭(我在下面给出了程序的代码和测试者日志的报告)。
似乎很奇怪,MQL4不允许我改变订单的工作顺序。 如果你知道原因,请告知,因为根据EA的工作逻辑,我将完全按照订单打开的顺序关闭订单。
真诚的。舒尔金。
你不可能完全在止损价开仓,但你可以有条件地在相同或相反的方向开仓!
这里是Kim的 "有用的函数 "中的一个函数调用,你可以把它放在一个条件中。
isCloseLastPosByStop - 返回通过止损关闭最后一个位置的标志
如果(isCloseLastPosByStop() ==0)或...==1)和任何你想要的......
你可以在这里找到这个功能:https://www.mql5.com/ru/forum/131859
并把它放在起点之外!
我请求你!你可以自己做这一切,勤奋、准确和耐心,否则你不会从提示中学到任何东西!"。
只有通过自己的充分努力,才能获得知识!进入日常的探究性工作!好运!
日子过得不错。
请告诉我,是否存在TC可以改变或删除订单的评论的情况?
非常感谢你。
请告诉我,是否存在TC可以改变或删除订单的评论的情况...?
本机评论
e121220_3in1 01
翻转后增加了DC
e121220_3in1 01[调换]
也就是说,如果我们搜索一个带有注释的订单,我们应该初步确定原生注释行的长度,在搜索过程中,我们只检查相应长度的变更后的注释的第一部分。或者检查本地字符串是否在被检查的注释中。
Shurkin:
谢谢你的答复。
在这种情况下,循环运算器的工作在测试器中被准确调查,这就是为什么订单在init()中被打开以进行简化,这在真实的EA中不会发生。
改变订单选择的顺序确实会导致在一个刻度内关闭订单(程序的代码和测试者日志的报告在下面给出)。
似乎很奇怪,MQL4不允许我选择订单。 如果你知道原因,请告知,因为专家顾问的工作逻辑表明,订单应该完全按照其打开的顺序关闭。
真诚的。舒尔金。
试试这个结构
日子过得不错。
请告诉我,是否存在TC可以改变或删除订单的评论的情况?
非常感谢你。
我们经历了对一个订单的评论的完全改变。另外,在部分关闭期间,魔法有时会被清零(部分关闭是由服务器发起的)。现在,有一个单独的、循环的顾问来控制后者,它监测 "外来 "订单和其他不一致的情况,通过推送信息 及时通知。
请告知如何正确书写该条件。
1.如果订单符号=符号和订单Magik=135
2.如果没有未决的 BAYSTOP订单
3.如果没有未平仓的订单BAY或者(如果有)止损>开盘价
4.如果价格在MA和分形之间上升
下达悬而未决的买入止损单
像这样写。
不工作!告诉我这是什么错误?
请告知什么会导致以下问题。
有一个使用外部功能 的指标。编译后的库代码位于 libraries 文件夹中,描述符--位于 include 中。
连接 #include <lib_Zemckikh.mqh>.在指标的第一次运行期间,所有库的功能都正常工作,指标在图表上显示。在改变参数后(在对指标进行新的计算后),库函数不被调用,指标不被显示,在改变参数后的 "专家 "标签中没有条目。
如果你排除了库的连接,将所需的函数放在指标文件中(直接用函数编译),一切都能正常工作。
我不明白哪里出了问题。我不想污染论坛,我不把代码附在上面。如果你需要,我可以亲自送去给你。