如何让一个程序员对基于你的IDEA编写EA产生100%的兴趣 - 页 11 1...45678910111213 新评论 [删除] 2008.03.10 01:06 #101 或者在这个EA中组织一个可调的获利设置。 以下是完整的代码。 [删除] 2008.03.10 01:10 #102 //+------------------------------------------------------------------+ //| Gray.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern double lot=1; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int tiket=0; //---- if (iVolume(NULL,0,0)==1){ Print("WATR1="+iCustom( NULL, 0, "WATR", 0, 0) ); Print("WATR2="+iCustom( NULL, 0, "WATR", 1, 0) ); if (iCustom( NULL, 0, "WATR", 0, 2)<1000 && iCustom( NULL, 0, "WATR", 1, 1)<1000) {tiket =OrderSend(Symbol(),OP_SELL,lot,Bid,3,iCustom( NULL, 0, "WATR", 1, 0),0,NULL,16384,0,Red);} if (iCustom( NULL, 0, "WATR", 1, 2)<1000 && iCustom( NULL, 0, "WATR", 0, 1)<1000) {tiket= OrderSend(Symbol(),OP_BUY,lot,Ask,3, iCustom( NULL, 0, "WATR", 0, 0),0,NULL,16384,0,Green);} CheckOrders(); //---- return(0); } //+------------------------------------------------------------------+ } void CheckOrders(){ int pos=0; int total=OrdersTotal(); for (pos=0;pos<total;pos++) { if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true){ if (OrderType()==OP_BUY && OrderStopLoss()<iCustom( NULL, 0, "WATR", 0, 1))OrderModify(OrderTicket(),OrderOpenPrice(),iCustom( NULL, 0, "WATR", 0, 1),OrderTakeProfit(),0,Green); if (OrderType()==OP_SELL && OrderStopLoss()>iCustom( NULL, 0, "WATR", 1, 1))OrderModify(OrderTicket(),OrderOpenPrice(),iCustom( NULL, 0, "WATR", 1, 1),OrderTakeProfit(),0,Red); } } } registr 2008.03.10 10:02 #103 Ultramarin: 或者在这个EA中组织一个可调的获利设置。 以下是完整的代码。 你试过吗? Aleksandr Pak 2008.03.10 11:13 #104 Registr: Ultramarin。 或者在这个EA中组织一个可调的获利设置。 以下是完整的代码。 你试过工作吗? 如果这就是完整的EA代码,那么,Registr 已经给了你最好的建议。 Alexey Klenov 2008.03.10 12:36 #105 我现在可以补充几点意见 1.属于起始函数的return(0)运算符 至少应该在一个大括号下面重复。因为它只有在满足成交量为1的条件下才会被执行。 其余的时候,启动功能应该错误地关闭。 被调用的指标值<1000的2个条件可能是为了表明在条形图上没有一个缓冲区的值。 即一种交叉(指标颜色的变化及其与当前价格的相对位置)。 恐怕在这种情况下,它只对那些当前价格值大于1000的符号有效(例如,PDR)。 如果指标在当前条形图上只画一种颜色(该条形图上另一个缓冲区的值为0)。 否则,在几乎所有的货币对上,指标的当前值将总是小于1000,并且条件将在每个柱子上触发。 3.我建议采取以下新条的条件 int time; int start { if (time!=Time[1]) { // расчет индикатора и выполение действий с ордерами //----- //----- //----- //----- time=Time[1]; } return(0); } registr 2008.03.10 20:36 #106 olyakish: 我现在可以补充几点意见 1.属于起始函数的return(0)运算符至少应该在一个大括号下面重复。因为现在只有在满足成交量为1的条件下才会被执行。 其余的时候,启动功能应该错误地关闭。 被调用的指标值<1000的2个条件可能是为了表明在条形图上没有一个缓冲区的值。 即一种交叉(指标颜色的变化及其与当前价格的相对位置)。 恐怕在这种情况下,它只对那些当前价格值大于1000的符号有效(例如,PDR)。 如果指标在当前条形图上只画一种颜色(该条形图上另一个缓冲区的值为0)。 否则,在几乎所有的货币对上,指标的当前值将总是小于1000,并且条件将在每个柱子上触发。 3.我建议采取以下新条的条件 你最好告诉他要按哪些键...:) Alexey Klenov 2008.03.10 23:46 #107 哦,还有一件事。 4.调用自定义指标 12次,至少是亵渎神明的行为 :) 在你的情况下,6次就够了(我算过这么多次)。 在我看来,你的EA的处理速度不会增加两倍,而是1.5倍。 这些行动只是(代码优化),不能与参数的优化相混淆 //+------------------------------------------------------------------+ //| Gray.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| https://www.metaquotes.net | //| обработал напильником olyakish | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "https://www.metaquotes.net" extern double lot=1; extern string rem01="Профит в пунктах от текущей цены"; extern int TP=100; int time; double WATR[2,3];// первое измерение - индекс буфера; второе измерение - индекс бара //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int tiket=0; if (Time[1]!=time) { WATR[0,0]=iCustom( NULL, 0, "WATR", 0, 0); WATR[1,0]=iCustom( NULL, 0, "WATR", 1, 0); WATR[0,1]=iCustom( NULL, 0, "WATR", 0, 1); WATR[1,1]=iCustom( NULL, 0, "WATR", 1, 1); WATR[0,2]=iCustom( NULL, 0, "WATR", 0, 2); WATR[1,2]=iCustom( NULL, 0, "WATR", 1, 2); Print("WATR1=",WATR[0,0]); Print("WATR2=",WATR[1,0]); if (WATR[0,2]>0 && WATR[1,1]>0) // проверить это место (правильно ли будет направелние открытия по индикатору) { tiket= OrderSend(Symbol(),OP_BUY,lot,Ask,3,WATR[0,0],Bid+TP*Point,NULL,16384,0,Green); } if (WATR[1,2]>0 && WATR[0,1]>0) // проверить это место (правильно ли будет направелние открытия по индикатору) { tiket =OrderSend(Symbol(),OP_SELL,lot,Bid,3,WATR[1,0],Ask-TP*Point,NULL,16384,0,Red); } CheckOrders(); time=Time[1]; } return(0); } //+------------------------------------------------------------------+ void CheckOrders() { int pos=0; int total=OrdersTotal(); for (pos=0;pos<total;pos++) { if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true) { if (OrderType()==OP_BUY && OrderStopLoss()<WATR[0,1]){OrderModify(OrderTicket(),OrderOpenPrice(),WATR[0,1],OrderTakeProfit(),0,Green);} if (OrderType()==OP_SELL && OrderStopLoss()>WATR[1,1]){OrderModify(OrderTicket(),OrderOpenPrice(),WATR[1,1],OrderTakeProfit(),0,Red);} } } return(0); // на самом деле нужно просто return но так вроде писать нельзя ... } //+------------------------------------------------------------------+ 至少要像这样 检查 [删除] 2008.03.11 10:12 #108 不幸的是,这并不奏效。 [删除] 2008.03.11 10:16 #109 谁能解释一下 有两个完全相同的EA,其参数绝对相同 一个人在同一时间买入,另一个人在同一时间卖出 进入和退出的时刻是相同的 它们如何同时消失得干干净净? [删除] 2008.03.11 10:49 #110 Ultramarin: 它们如何能够干净地合并? 在传播方面。 1...45678910111213 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
或者在这个EA中组织一个可调的获利设置。
以下是完整的代码。
或者在这个EA中组织一个可调的获利设置。
以下是完整的代码。
或者在这个EA中组织一个可调的获利设置。
以下是完整的代码。
我现在可以补充几点意见
1.属于起始函数的return(0)运算符 至少应该在一个大括号下面重复。因为它只有在满足成交量为1的条件下才会被执行。
其余的时候,启动功能应该错误地关闭。
被调用的指标值<1000的2个条件可能是为了表明在条形图上没有一个缓冲区的值。
即一种交叉(指标颜色的变化及其与当前价格的相对位置)。
恐怕在这种情况下,它只对那些当前价格值大于1000的符号有效(例如,PDR)。
如果指标在当前条形图上只画一种颜色(该条形图上另一个缓冲区的值为0)。
否则,在几乎所有的货币对上,指标的当前值将总是小于1000,并且条件将在每个柱子上触发。
3.我建议采取以下新条的条件
我现在可以补充几点意见
1.属于起始函数的return(0)运算符至少应该在一个大括号下面重复。因为现在只有在满足成交量为1的条件下才会被执行。
其余的时候,启动功能应该错误地关闭。
被调用的指标值<1000的2个条件可能是为了表明在条形图上没有一个缓冲区的值。
即一种交叉(指标颜色的变化及其与当前价格的相对位置)。
恐怕在这种情况下,它只对那些当前价格值大于1000的符号有效(例如,PDR)。
如果指标在当前条形图上只画一种颜色(该条形图上另一个缓冲区的值为0)。
否则,在几乎所有的货币对上,指标的当前值将总是小于1000,并且条件将在每个柱子上触发。
3.我建议采取以下新条的条件
哦,还有一件事。
4.调用自定义指标 12次,至少是亵渎神明的行为 :)
在你的情况下,6次就够了(我算过这么多次)。
在我看来,你的EA的处理速度不会增加两倍,而是1.5倍。 这些行动只是(代码优化),不能与参数的优化相混淆
至少要像这样
检查
谁能解释一下
有两个完全相同的EA,其参数绝对相同
一个人在同一时间买入,另一个人在同一时间卖出
进入和退出的时刻是相同的
它们如何同时消失得干干净净?
它们如何能够干净地合并?