[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 71 1...646566676869707172737475767778...537 新评论 100yan 2011.02.07 13:32 #701 DhP: 在这种情况下,MagicNumber不会改变,除非这是由EA代码提供的。 谢谢大家! volshebnik 2011.02.07 13:48 #702 Roman.: 解决方案。 用于买入(卖出--以此类推)。 1.MA断裂 - 在第3、2和1条上获得MA值--比较。如果第3条的MA值>2,第2条<1,那就是一个突破。 2.然后--分形--穿透--做交易的信号 就MA的枚举而言--放在外部(可优化的)变量中。 Period_MA(你可以用第2步设置从2到240),MODE--(MA的计算方法--从0到3的变化范围第1步),PRICE_TYPE--(价格常数--从0到6的变化范围第1步),我听说在日内工作时MA计算平均值(收盘价不重要),在日烛工作时MA计算各日的收盘价。 周期--你在每次后续的优化中手动改变它--1、5、15、30、60、240......。 按iMA上的F1--再次仔细阅读那里的一切。 当然,还要像往常一样优化TP和止损。 P.S. 不要忘了写一份关于测试结果的信息...:-))) TF=1分钟的测试结果没有产生盈利的变体,即使我们每天优化一次EA。 --- 2011.02.07 14:04 #703 DhP: 当一个位置被部分关闭时,你可以改变魔术。我相信你可以很容易地写出这个。你可能拥有mql社区所没有的知识,或者你只是不理解这个问题,或者你天真地认为OrderClose函数会改变魔力。 --- 2011.02.07 14:08 #704 gince: 我明白,我没有初始的flag[i+1] 设置。如果是这样,我在哪里以及如何做? 如果我设置为1,那么当我启动指标时,它(指标)将等待变化。 正确的方法是这样的。 if ((flag[i]==1 || flag[i]==0) && условие продажи) 条件是未初始化的标志=0(或采取EMPTY_VALUE....)。 gince 2011.02.07 14:18 #705 sergeev: 正确的做法是这样的。 条件是未初始化标志=0(或取EMPTY_VALUE....)。 谢谢大家。我做了我想做的事。 Роман 2011.02.07 14:53 #706 volshebnik: 对TF=1分钟的测试结果没有产生盈利的选项,即使你每天优化一次EA。 TF越低,噪音就越大... volshebnik 2011.02.07 15:02 #707 Roman.: TF越低,噪音就越大... 是的,但如果该策略是正确的,在我看来,它应该在任何TF上工作,只是参数不同。TF=5分钟的测试结果也没有给出盈利的选项。 Роман 2011.02.07 15:29 #708 volshebnik: 是的,但如果该策略是正确的,在我看来,它应该在任何TF上工作,只是参数不同。对TF=5分钟的测试结果也没有给出任何有利可图的选项。 该战略在那里是正确的。我现在醉了。我正在休息。 [Deleted] 2011.02.07 16:01 #709 sergeev: 你的代码中仍然有一个错误。 记住:挂单中的止损和接管不是基于当前价格,而是基于订单的开盘价格。 特别感谢和尊重你 :))))) 纠正了错误(希望现在所有的错误:))。)+添加的限制器。对于那些真正需要为已下订单分配魔法号码的人来说,这将是非常有用的。 好好享受吧! #property copyright "Copyright © 2010 - 2011, Хлыстов Владимир, в редакции AMRo" #property link "cmillion@narod.ru, nemo811@mail.ru" #property show_inputs /* Иногда требуется помочь советнику добавить ордер, но чтобы советник его принял за свой необходим Magic номер. Для выставления ордера с таким номером и предназначен этот скрипт. Возможна одновременная установка до 6 типов ордеров. При сбоях связи или резком движении цены будет выполнено 10 попыток выставления ордера, после чего скрипт закончит работу. */ //-------------------------------------------------------------------- extern int Magic = 0; //уникальный номер ордера extern bool BUY = false; //открыть ордер BUY extern bool BUY_STOP = false; //поставить ордер BUY STOP extern bool BUY_LIMIT = false; //поставить ордер BUY LIMIT extern bool SELL = false; //открыть ордер SELL extern bool SELL_STOP = false; //поставить ордер SELL STOP extern bool SELL_LIMIT = false; //поставить ордер SELL LIMIT extern double Lot = 0.1; //объем ордера extern int takeprofit = 0; //уровень выставления TP, если 0, то TP не выставляется extern int stoploss = 0; //уровень выставления SL, если 0, то SL не выставляется extern int DistanceSet = 40; //расстояние от рынка для отложенника extern int slippage = 3; //максимально допустимое отклонение цены для рыночных ордеров //-------------------------------------------------------------------- double SL,TP; //-------------------------------------------------------------------- int start() { if (BUY) { if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy"); } if (SELL) { if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0; OPENORDER ("Sell"); } if (BUY_STOP) { if (takeprofit!=0) TP = NormalizeDouble(Ask + DistanceSet*Point + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask + DistanceSet*Point - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy Stop"); } if (SELL_STOP) { if (takeprofit!=0) TP = NormalizeDouble(Bid - DistanceSet*Point - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid - DistanceSet*Point + stoploss*Point,Digits); else SL=0; OPENORDER ("Sell Stop"); } if (BUY_LIMIT) { if (takeprofit!=0) TP = NormalizeDouble(Ask - DistanceSet*Point + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - DistanceSet*Point - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy Limit"); } if (SELL_LIMIT) { if (takeprofit!=0) TP = NormalizeDouble(Bid + DistanceSet*Point - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid + DistanceSet*Point + stoploss*Point,Digits); else SL=0; OPENORDER ("Sell Limit"); } return(0); } //-------------------------------------------------------------------- void OPENORDER(string ord) { int error,err; while (true) { error=true; if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Buy Stop" ) error=OrderSend(Symbol(),OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Sell Stop") error=OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid - DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Buy Limit" ) error=OrderSend(Symbol(),OP_BUYLIMIT, Lot,NormalizeDouble(Ask - DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Sell Limit") error=OrderSend(Symbol(),OP_SELLLIMIT,Lot,NormalizeDouble(Bid + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0); if (error==-1) //неудачная попытка { ShowERROR(); err++;Sleep(2000);RefreshRates(); } if (error || err >10) return; } return; } //-------------------------------------------------------------------- void ShowERROR() { int err=GetLastError(); switch ( err ) { case 1: return; case 2: Alert("Нет связи с торговым сервером ",Symbol());return; case 3: Alert("Error неправильные параметры ",Symbol());return; case 130: Alert("Error близкие стопы Ticket ",Symbol());return; case 134: Alert("Недостаточно денег ",Symbol());return; case 146: Alert("Error Подсистема торговли занята ",Symbol());return; case 129: Alert("Error Неправильная цена ",Symbol());return; case 131: Alert("Error Неправильный объем ",Symbol());return; case 4200:Alert("Error Объект уже существует ",Symbol());return; default: Alert("Error " ,err," ",Symbol());return; } } //-------------------------------------------------------------------- volshebnik 2011.02.07 16:03 #710 Roman.: 那里有一个真正的陌生人。我现在就像风筝一样高。我在休息。 在TF上也是如此=15分钟。在这个策略中还看不到任何 "忠诚度",可能还在前面显示出来。(祝您休息愉快)) 1...646566676869707172737475767778...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在这种情况下,MagicNumber不会改变,除非这是由EA代码提供的。
谢谢大家!
解决方案。
用于买入(卖出--以此类推)。
1.MA断裂 - 在第3、2和1条上获得MA值--比较。如果第3条的MA值>2,第2条<1,那就是一个突破。
2.然后--分形--穿透--做交易的信号
就MA的枚举而言--放在外部(可优化的)变量中。
Period_MA(你可以用第2步设置从2到240),MODE--(MA的计算方法--从0到3的变化范围第1步),PRICE_TYPE--(价格常数--从0到6的变化范围第1步),我听说在日内工作时MA计算平均值(收盘价不重要),在日烛工作时MA计算各日的收盘价。
周期--你在每次后续的优化中手动改变它--1、5、15、30、60、240......。
按iMA上的F1--再次仔细阅读那里的一切。
当然,还要像往常一样优化TP和止损。
P.S. 不要忘了写一份关于测试结果的信息...:-)))当一个位置被部分关闭时,你可以改变魔术。我相信你可以很容易地写出这个。
你可能拥有mql社区所没有的知识,或者你只是不理解这个问题,或者你天真地认为OrderClose函数会改变魔力。
我明白,我没有初始的flag[i+1] 设置。如果是这样,我在哪里以及如何做?
如果我设置为1,那么当我启动指标时,它(指标)将等待变化。
正确的方法是这样的。
条件是未初始化的标志=0(或采取EMPTY_VALUE....)。正确的做法是这样的。
条件是未初始化标志=0(或取EMPTY_VALUE....)。谢谢大家。我做了我想做的事。
对TF=1分钟的测试结果没有产生盈利的选项,即使你每天优化一次EA。
TF越低,噪音就越大...
TF越低,噪音就越大...
是的,但如果该策略是正确的,在我看来,它应该在任何TF上工作,只是参数不同。对TF=5分钟的测试结果也没有给出任何有利可图的选项。
该战略在那里是正确的。我现在醉了。我正在休息。
你的代码中仍然有一个错误。
记住:挂单中的止损和接管不是基于当前价格,而是基于订单的开盘价格。
特别感谢和尊重你 :)))))
纠正了错误(希望现在所有的错误:))。)+添加的限制器。对于那些真正需要为已下订单分配魔法号码的人来说,这将是非常有用的。
好好享受吧!
那里有一个真正的陌生人。我现在就像风筝一样高。我在休息。