[存档!]免费撰写顾问文章 - 页 21 1...141516171819202122232425262728...94 新评论 olegplus 2010.02.02 11:56 #201 Vinin >>: Лучше убери. Смесь ломанного и еще неизвестно чего. Жуткая вещь получается. Хотя можешь в читабельный вид перевести. 专家顾问只在买入时工作。 请让它在卖出时也能与待定订单一起工作。 工作要领:在距离当前价格50个点的地方设置买入止损和买入限价,TP为100。 从下往上每隔50个点有两道命令,从上往下有两道命令。 专家顾问的工作方式是,两边都应该有至少2个挂单。 提前感谢 :) #property copyright "Slobodyan Oleg" #property link "http://www.metaquotes.net" extern int Orders = 2; extern double Lots = 0.01; extern double StepLevel = 50.0; extern int StopLoss = 3000; extern int Profit = 100; double gd_104 = 0.0; int CheckBS() { double l_ord_open_price_12; double ld_20 = 0; int l_count_8 = 0; int l_ord_total_0 = OrdersTotal(); for (int l_pos_4 = 0; l_pos_4 < l_ord_total_0; l_pos_4++) { if (OrderSelect( l_pos_4, SELECT_BY_POS, MODE_TRADES) == TRUE) { if (OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_BUYSTOP && OrderMagicNumber() == 1) { if (OrderOpenPrice() - Ask > ld_20 && OrderOpenPrice() - Ask > 0.0) { ld_20 = OrderOpenPrice() - Ask; l_ord_open_price_12 = OrderOpenPrice(); l_count_8++; } } } } if ( l_count_8 == 0) { l_ord_open_price_12 = NormalizeDouble(Bid - StepLevel * Point, Digits); OrderSend(Symbol(), OP_SELLSTOP, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 1, 0, Navy); } if ( l_count_8 < Orders && l_count_8 != 0) { l_ord_open_price_12 = NormalizeDouble( l_ord_open_price_12 + StepLevel * Point, Digits); OrderSend(Symbol(), OP_SELLSTOP, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 1, 0, Navy); } return (1); } int CheckBL() { double l_ord_open_price_12; double ld_20 = 0; int l_count_8 = 0; int l_ord_total_0 = OrdersTotal(); for (int l_pos_4 = 0; l_pos_4 < l_ord_total_0; l_pos_4++) { if (OrderSelect( l_pos_4, SELECT_BY_POS, MODE_TRADES) == TRUE) { if (OrderSymbol() == Symbol() && OrderType() == OP_SELL || OrderType() == OP_SELLLIMIT && OrderMagicNumber() == 2) { if (Bid - OrderOpenPrice() > ld_20 && Bid - OrderOpenPrice() > 0.0) { ld_20 = Bid - OrderOpenPrice(); l_ord_open_price_12 = OrderOpenPrice(); l_count_8++; } } } } if ( l_count_8 == 0) { l_ord_open_price_12 = NormalizeDouble(Ask - StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYLIMIT, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 2, 0, Navy); } if ( l_count_8 < Orders && l_count_8 != 0) { l_ord_open_price_12 = NormalizeDouble( l_ord_open_price_12 - StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYLIMIT, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 2, 0, Navy); } return (1); } int CheckBS_min() { double l_ord_open_price_12; double ld_20 = Ask; int l_count_8 = 0; int l_ord_total_0 = OrdersTotal(); for (int l_pos_4 = 0; l_pos_4 < l_ord_total_0; l_pos_4++) { if (OrderSelect( l_pos_4, SELECT_BY_POS, MODE_TRADES) == TRUE) { if (OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_BUYSTOP && OrderMagicNumber() == 1) { if (OrderOpenPrice() - Ask < ld_20 && OrderOpenPrice() - Ask > 0.0) { ld_20 = OrderOpenPrice() - Ask; l_ord_open_price_12 = OrderOpenPrice(); l_count_8++; } } } } if ( l_count_8 == 0) { l_ord_open_price_12 = NormalizeDouble(Ask + StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYSTOP, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 1, 0, Navy); } if ( l_ord_open_price_12 - Ask >= 2.0 * StepLevel * Point && l_count_8 != 0) { l_ord_open_price_12 = NormalizeDouble( l_ord_open_price_12 - StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYSTOP, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 1, 0, Navy); } return (1); } int CheckBL_min() { double l_ord_open_price_12; double ld_20 = Ask; int l_count_8 = 0; int l_ord_total_0 = OrdersTotal(); for (int l_pos_4 = 0; l_pos_4 < l_ord_total_0; l_pos_4++) { if (OrderSelect( l_pos_4, SELECT_BY_POS, MODE_TRADES) == TRUE) { if (OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_BUYLIMIT && OrderMagicNumber() == 2) { if (Ask - OrderOpenPrice() < ld_20 && Ask - OrderOpenPrice() >= 0.0) { ld_20 = Ask - OrderOpenPrice(); l_ord_open_price_12 = OrderOpenPrice(); l_count_8++; } } olegplus 2010.02.02 11:57 #202 } } if ( l_count_8 == 0) { l_ord_open_price_12 = NormalizeDouble(Ask - StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYLIMIT, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 2, 0, Navy); } if (Ask - l_ord_open_price_12 >= 2.0 * StepLevel * Point - 2.0 * (Ask - Bid) && l_count_8 != 0) { l_ord_open_price_12 = NormalizeDouble( l_ord_open_price_12 + StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYLIMIT, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 2, 0, Navy); } return (1); } int init() { return (0); } int deinit() { return (0); } int start() { gd_104 = 0; CheckBS(); CheckBL(); CheckBS_min(); CheckBL_min(); return (0); } 附加的文件: yolka_1.mq4 6 kb Victor Nikolaev 2010.02.02 12:02 #203 Vinin писал(а)>> 看看吧。看起来它工作得很好。 修正了一个错误。 附加的文件: maxmmovingxaveragec02_1.mq4 4 kb [删除] 2010.02.02 15:27 #204 Vinin >>: Ошибочку одну исправил 谢谢你,维克多,如果有必要,我会与你联系。 金塔拉斯 维尔纽斯。 [删除] 2010.02.02 16:30 #205 Vinin >>: Ошибочку одну исправил 维克多,当你有时间时,请为另一辆车做同样的事。 真诚的。 Victor Nikolaev 2010.02.02 16:38 #206 dadi писал(а)>> 维克多,当你有时间时,请为另一辆车做同样的事。 恭敬地说。 我会努力,但那是为了什么。 [删除] 2010.02.02 17:06 #207 Vinin >>: Попробую, только вот зачем 当你需要确定方向时,单程油漆会给你节省很多不必要的麻烦。 附加的文件: wpsjwondefullostopaline.mq4 1 kb [删除] 2010.02.02 17:09 #208 我看到,由于某些原因,在名字上加了一些不必要的字母...... Victor Nikolaev 2010.02.02 17:32 #209 dadi писал(а)>> 我是用手工作的,我把这个放在上面,它给了一个很好的入口和出口,而没有被 "穿越"。 当你需要快速定位时,单方向的颜色可以节省不必要的麻烦。 也许这些圆点根本就没有必要? Victor Nikolaev 2010.02.02 17:44 #210 dadi писал(а)>> 如果你想用手工作,就把它放在上面,得到一个好的入口和出口,而不需要穿越,但当你需要确定方向时,单向的颜色避免了不必要的麻烦。 附加的文件: maxmmovingxaveragec03.mq4 3 kb 1...141516171819202122232425262728...94 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
Лучше убери. Смесь ломанного и еще неизвестно чего. Жуткая вещь получается. Хотя можешь в читабельный вид перевести.
专家顾问只在买入时工作。请让它在卖出时也能与待定订单一起工作。
工作要领:在距离当前价格50个点的地方设置买入止损和买入限价,TP为100。
从下往上每隔50个点有两道命令,从上往下有两道命令。
专家顾问的工作方式是,两边都应该有至少2个挂单。
提前感谢 :)
看看吧。看起来它工作得很好。
修正了一个错误。
Ошибочку одну исправил
谢谢你,维克多,如果有必要,我会与你联系。
金塔拉斯
维尔纽斯。
Ошибочку одну исправил
维克多,当你有时间时,请为另一辆车做同样的事。
真诚的。
维克多,当你有时间时,请为另一辆车做同样的事。
恭敬地说。
我会努力,但那是为了什么。
Попробую, только вот зачем
当你需要确定方向时,单程油漆会给你节省很多不必要的麻烦。
我是用手工作的,我把这个放在上面,它给了一个很好的入口和出口,而没有被 "穿越"。 当你需要快速定位时,单方向的颜色可以节省不必要的麻烦。
也许这些圆点根本就没有必要?
如果你想用手工作,就把它放在上面,得到一个好的入口和出口,而不需要穿越,但当你需要确定方向时,单向的颜色避免了不必要的麻烦。