学习如何赚取村民的钱 [第2集] ! - 页 298 1...291292293294295296297298299300301302303304305...473 新评论 [删除] 2014.02.04 16:56 #2971 这就是测试的重点--如果我们长时间下跌,只开买单,系统就应该死亡(我重复一遍--没有卖单,这是一个原则问题)。现在它被修复了。 khorosh 2014.02.04 17:51 #2972 YOUNGA: 我发现股权曲线是模拟的--是的,马丁格尔在相反的一面。手数的计算公式是lastlot = NormalizeDouble(R/(StopLoss-Step*(CountTrades(OP_BUY))),2) R=5...50 水平间的步距 曲线可能很吸引人,这是个品味问题,但以这样的最大缩减量每年赚取10%的收益是不值得同情的。 [删除] 2014.02.04 18:05 #2973 好吧,那是一半的条目;-)我无法以任何方式提高利润率(每年可能有20%左右)。到目前为止,我已经展示了一种地段计算的方法。 [删除] 2014.02.04 20:34 #2974 Roman.: 我必须像视频中那样做...起初...IMHO。然后看... 如同吩咐:)))) 初始存款10000 初始地段1 随机进入,一对卖,一对买 TR ~10pip SL ~40bp 触发止损时,手数 "翻倍"。 附加的文件: 31012014_eurusd_gbpusd_test.ex5 11 kb Роман 2014.02.05 14:25 #2975 pako: 如同吩咐:)))) 初始存款10000 初始地段1 随机进入,一对卖,一对买 TR ~10pip SL ~40bp 止损触发时,手数 "翻倍" 为什么要编码--封闭? 看看吧--图案是这样的吗/不是? 这是在4。 int start() // -----------------------СТАРТ ЭКСПЕРТА--------------- { //while(GetAsyncKeyState(16)){Sleep(500);} // if(iTime(Symbol(),s_signal_period,0) == prevtime) return(0); //ждем нового бара на сигнальном таймфрейме // prevtime = iTime(Symbol(),s_signal_period,0); //если появился новый бар, то включаемся if (IsExpertStopped) { Comment("Не удалось инициализировать советник!"); return (0);} if (IsExpertFailed) { Comment("Критическая ошибка! Советник остановлен."); return (0);} //---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- int time = 0; // время - для определения факта работы только с крайним закрытым ордером bool pos1 = false, pos2 = false; //---Поиск крайних отработавших ордеров для открытия очередных позиций на увеличенных при лоссе и стартовых при профите объёмах for (int orderIndex = (OrdersHistoryTotal() - 1); orderIndex >= 0; orderIndex--) { if (!OrderSelect(orderIndex, SELECT_BY_POS, MODE_HISTORY)) {Print(" Ошибка при доступе к исторической базе (",GetLastError(),")");continue;} if ((OrderSymbol() != Symb1) || (OrderMagicNumber() != MagicNumber)) continue; //------------------------- Принимаем в расчет только ордер, закрытый cамым крайним ----------------------- if (time<OrderCloseTime()) //(сравниваем его с хранящимся в переменной time) { time=OrderCloseTime(); //если время закрытия ордера больше - ложим его в переменную int lastType = OrderType(); double lastLots1 = OrderLots(); double lastProfit1 = OrderProfit() + OrderSwap(); } } time = 0; for (orderIndex = (OrdersHistoryTotal() - 1); orderIndex >= 0; orderIndex--) { if (!OrderSelect(orderIndex, SELECT_BY_POS, MODE_HISTORY)) {Print(" Ошибка при доступе к исторической базе (",GetLastError(),")");continue;} if ((OrderSymbol () != Symb2) || (OrderMagicNumber() != MagicNumber)) continue; //------------------------- Принимаем в расчет только ордер, закрытый cамым крайним ----------------------- if (time<OrderCloseTime()) //(сравниваем его с хранящимся в переменной time) { time=OrderCloseTime(); //если время закрытия ордера больше - ложим его в переменную lastType = OrderType(); double lastLots2 = OrderLots(); double lastProfit2 = OrderProfit() + OrderSwap(); } } //-------------------------------- продолжение стартовым после профита или увеличение по мартину ----------------------------------------------------------------- pos1 = ExistPositions(Symb1,-1,MagicNumber,0); pos2 = ExistPositions(Symb2,-1,MagicNumber,0); if (pos1 == false && pos2 == false) // при отсутствии позиций в рынке по символам { // Анализ крайних двух ордеров по двум инструментам на профит для принятия решения по объёму следующих if (lastProfit1 > 0 && lastProfit2 > 0) { //---Ордер закрылся с прибылью - обнуляем счетчик итераций, счетчик для подсчета последовательного убытка позиций колен лавины, //---текущий и суммарный убыток и открываемся стартовым лотом по тренду // Ордера закрылись в профит, открыться стартовым лотом if (MathRand() > 16384) { WmOrderSend(Symb1, OP_BUY, Lots, MarketInfo(Symb1,MODE_ASK), MarketInfo(Symb1,MODE_BID) - StopLossPips * MarketInfo(Symb1,MODE_POINT), MarketInfo(Symb1,MODE_BID) + TakeProfitPips * MarketInfo(Symb1,MODE_POINT), " старт ", MagicNumber); WmOrderSend(Symb2, OP_SELL, Lots, MarketInfo(Symb2,MODE_BID), MarketInfo(Symb2,MODE_ASK) + StopLossPips * MarketInfo(Symb2,MODE_POINT), MarketInfo(Symb2,MODE_ASK) - TakeProfitPips * MarketInfo(Symb2,MODE_POINT), " старт ", MagicNumber); } else { WmOrderSend(Symb1, OP_SELL, Lots, MarketInfo(Symb1,MODE_BID), MarketInfo(Symb1,MODE_ASK) + StopLossPips * MarketInfo(Symb1,MODE_POINT), MarketInfo(Symb1,MODE_ASK) - TakeProfitPips * MarketInfo(Symb1,MODE_POINT), " старт ", MagicNumber); WmOrderSend(Symb2, OP_BUY, Lots, MarketInfo(Symb2,MODE_ASK), MarketInfo(Symb2,MODE_BID) - StopLossPips * MarketInfo(Symb2,MODE_POINT), MarketInfo(Symb2,MODE_BID) + TakeProfitPips * MarketInfo(Symb2,MODE_POINT), " старт ", MagicNumber); } } if (lastProfit1 < 0 && lastProfit2 > 0) { // Ордер по первому символу закрылся с убытком - открываемся по нему увеличенными объёмами Lots_New = lastLots1 * 2; // ---------НОРМАЛИЗАЦИЯ НОВЫХ РАСЧЕТНЫХ ЛОТОВ И ОТКРЫТИЕ ОЧЕРЕДНОЙ ПОЗИЦИИ... Lots_New = NormalizeLots(Lots_New); if (MathRand() > 16384) { WmOrderSend(Symb2, OP_BUY, Lots, MarketInfo(Symb2,MODE_ASK), MarketInfo(Symb2,MODE_BID) - StopLossPips * MarketInfo(Symb2,MODE_POINT), MarketInfo(Symb2,MODE_BID) + TakeProfitPips * MarketInfo(Symb2,MODE_POINT), " бАх ", MagicNumber); WmOrderSend(Symb1, OP_SELL, Lots_New, MarketInfo(Symb1,MODE_BID), MarketInfo(Symb1,MODE_ASK) + StopLossPips * MarketInfo(Symb1,MODE_POINT), MarketInfo(Symb1,MODE_ASK) - TakeProfitPips * MarketInfo(Symb1,MODE_POINT), " бАх ", MagicNumber); } else { WmOrderSend(Symb2, OP_SELL, Lots, MarketInfo(Symb2,MODE_BID), MarketInfo(Symb2,MODE_ASK) + StopLossPips * MarketInfo(Symb2,MODE_POINT), MarketInfo(Symb2,MODE_ASK) - TakeProfitPips * MarketInfo(Symb2,MODE_POINT), " бАх ", MagicNumber); WmOrderSend(Symb1, OP_BUY, Lots_New, MarketInfo(Symb1,MODE_ASK), MarketInfo(Symb1,MODE_BID) - StopLossPips * MarketInfo(Symb1,MODE_POINT), MarketInfo(Symb1,MODE_BID) + TakeProfitPips * MarketInfo(Symb1,MODE_POINT), " бАх ", MagicNumber); } } if (lastProfit1 > 0 && lastProfit2 < 0) { // Ордер по первому символу закрылся с убытком - открываемся по нему увеличенными объёмами Lots_New = lastLots2 * 2; // Последующие лоты открываются в соответствие с классическим мартином - удвоение // ---------НОРМАЛИЗАЦИЯ НОВЫХ РАСЧЕТНЫХ ЛОТОВ И ОТКРЫТИЕ ОЧЕРЕДНОЙ ПОЗИЦИИ... Lots_New = NormalizeLots(Lots_New); if (MathRand() > 16384) { WmOrderSend(Symb1, OP_BUY, Lots, MarketInfo(Symb1,MODE_ASK), MarketInfo(Symb1,MODE_BID) - StopLossPips * MarketInfo(Symb1,MODE_POINT), MarketInfo(Symb1,MODE_BID) + TakeProfitPips * MarketInfo(Symb1,MODE_POINT), " бАх ", MagicNumber); WmOrderSend(Symb2, OP_SELL, Lots_New, MarketInfo(Symb2,MODE_BID), MarketInfo(Symb2,MODE_ASK) + StopLossPips * MarketInfo(Symb2,MODE_POINT), MarketInfo(Symb2,MODE_ASK) - TakeProfitPips * MarketInfo(Symb2,MODE_POINT), " бАх ", MagicNumber); } else { WmOrderSend(Symb1, OP_SELL, Lots, MarketInfo(Symb1,MODE_BID), MarketInfo(Symb1,MODE_ASK) + StopLossPips * MarketInfo(Symb1,MODE_POINT), MarketInfo(Symb1,MODE_ASK) - TakeProfitPips * MarketInfo(Symb1,MODE_POINT), " бАх ", MagicNumber); WmOrderSend(Symb2, OP_BUY, Lots_New, MarketInfo(Symb2,MODE_ASK), MarketInfo(Symb2,MODE_BID) - StopLossPips * MarketInfo(Symb2,MODE_POINT), MarketInfo(Symb2,MODE_BID) + TakeProfitPips * MarketInfo(Symb2,MODE_POINT), " бАх ", MagicNumber); } } if (lastProfit1 < 0 && lastProfit2 < 0) // Этого варианта нет на видео - удваивает объёмы на обоих символах { Lots_New1 = lastLots1 * 2; Lots_New2 = lastLots2 * 2; // ---------НОРМАЛИЗАЦИЯ НОВЫХ РАСЧЕТНЫХ ЛОТОВ И ОТКРЫТИЕ ОЧЕРЕДНОЙ ПОЗИЦИИ... Lots_New = NormalizeLots(Lots_New); if (MathRand() > 16384) { WmOrderSend(Symb2, OP_BUY, Lots_New2, MarketInfo(Symb2,MODE_ASK), MarketInfo(Symb2,MODE_BID) - StopLossPips * MarketInfo(Symb2,MODE_POINT), MarketInfo(Symb2,MODE_BID) + TakeProfitPips * MarketInfo(Symb2,MODE_POINT), " бАх ", MagicNumber); WmOrderSend(Symb1, OP_SELL, Lots_New1, MarketInfo(Symb1,MODE_BID), MarketInfo(Symb1,MODE_ASK) + StopLossPips * MarketInfo(Symb1,MODE_POINT), MarketInfo(Symb1,MODE_ASK) - TakeProfitPips * MarketInfo(Symb1,MODE_POINT), " бАх ", MagicNumber); } else { WmOrderSend(Symb2, OP_SELL, Lots_New2, MarketInfo(Symb2,MODE_BID), MarketInfo(Symb2,MODE_ASK) + StopLossPips * MarketInfo(Symb2,MODE_POINT), MarketInfo(Symb2,MODE_ASK) - TakeProfitPips * MarketInfo(Symb2,MODE_POINT), " бАх ", MagicNumber); WmOrderSend(Symb1, OP_BUY, Lots_New1, MarketInfo(Symb1,MODE_ASK), MarketInfo(Symb1,MODE_BID) - StopLossPips * MarketInfo(Symb1,MODE_POINT), MarketInfo(Symb1,MODE_BID) + TakeProfitPips * MarketInfo(Symb1,MODE_POINT), " бАх ", MagicNumber); } } } //--------------------------------------------------------------------------------------------------- // ----------------------- Свежих закрытых ордеров не было - открытие стартовым лотом ------------ pos1 = ExistPositions(Symb1,-1,MagicNumber,0); pos2 = ExistPositions(Symb2,-1,MagicNumber,0); if (pos1 == false && pos2 == false) // при отсутствии позиций в рынке по символам { if (MathRand() > 16384) { WmOrderSend(Symb1, OP_BUY, Lots, MarketInfo(Symb1,MODE_ASK), MarketInfo(Symb1,MODE_BID) - StopLossPips * MarketInfo(Symb1,MODE_POINT), MarketInfo(Symb1,MODE_BID) + TakeProfitPips * MarketInfo(Symb1,MODE_POINT), " старт ", MagicNumber); WmOrderSend(Symb2, OP_SELL, Lots, MarketInfo(Symb2,MODE_BID), MarketInfo(Symb2,MODE_ASK) + StopLossPips * MarketInfo(Symb2,MODE_POINT), MarketInfo(Symb2,MODE_ASK) - TakeProfitPips * MarketInfo(Symb2,MODE_POINT), " старт ", MagicNumber); } else { WmOrderSend(Symb1, OP_SELL, Lots, MarketInfo(Symb1,MODE_BID), MarketInfo(Symb1,MODE_ASK) + StopLossPips * MarketInfo(Symb1,MODE_POINT), MarketInfo(Symb1,MODE_ASK) - TakeProfitPips * MarketInfo(Symb1,MODE_POINT), " старт ", MagicNumber); WmOrderSend(Symb2, OP_BUY, Lots, MarketInfo(Symb2,MODE_ASK), MarketInfo(Symb2,MODE_BID) - StopLossPips * MarketInfo(Symb2,MODE_POINT), MarketInfo(Symb2,MODE_BID) + TakeProfitPips * MarketInfo(Symb2,MODE_POINT), " старт ", MagicNumber); } } Print (" lastProfit1 = ", lastProfit1, " lastProfit2 = ", lastProfit2); return(0); // ВЫХОД ИЗ СТАРТ } 附加的文件: fcusvedptz.mq4 22 kb zymzspzmcy.ex4 10 kb [删除] 2014.02.05 18:42 #2976 Roman.: 为什么密码被锁定? 看--这个计划是这样的/不是? "知识产权":)))) 在一些事件之后,不要烛照源代码(() 而你没有建议,例如MQ或WinDoof,这可能都是有原因的:)) 不,那里的逻辑很简单。 随机基因0:1 如果0-出售,如果1-购买 如果他们都以正数收盘,赔率为1 否则,系数2,计数器1 以此类推 还是输了:)))) (( Роман 2014.02.05 21:49 #2977 pako: "知识产权":)))) 在一些事件之后,不要烛照源代码(() 而你没有建议,例如MQ或WinDoof,这可能都是有原因的:)) 不,那里的逻辑很简单。 随机基因0:1 如果0-出售,如果1-购买 如果两者都接近加号,赔率为1 如果他们都以正数收盘,赔率是2,反数是1。 以此类推 还是输了:)))) (( 我明白了。视频中的情况并非如此。如果一个在加号上,另一个在减号上,那么减号上的那个lot_previous * 2。正面关闭的那个人打开了开始的那个人。录像上有一切。 我稍后会亲自写下这五条...... [删除] 2014.02.06 09:48 #2978 Roman.: 我明白了。视频中的情况并非如此。如果一个在加号上,另一个在减号上,那么减号上的那个lot_previous * 2。正面关闭的那个人打开了开始的那个人。录像上有一切。 我稍后会亲自写下这五条...... 你是对的,我没有仔细看,我道歉。 Роман 2014.02.06 10:35 #2979 pako: 你是对的,我没有仔细看,我道歉。:-) Oleg 2014.02.06 16:43 #2980 Roman.: :-) (很抱歉,EA的交易方式不同,你是不是又改了什么?) 1...291292293294295296297298299300301302303304305...473 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这就是测试的重点--如果我们长时间下跌,只开买单,系统就应该死亡(我重复一遍--没有卖单,这是一个原则问题)。现在它被修复了。
我发现股权曲线是模拟的--是的,马丁格尔在相反的一面。手数的计算公式是lastlot = NormalizeDouble(R/(StopLoss-Step*(CountTrades(OP_BUY))),2) R=5...50 水平间的步距
我必须像视频中那样做...起初...IMHO。然后看...
如同吩咐:))))
初始存款10000
初始地段1
随机进入,一对卖,一对买
TR ~10pip
SL ~40bp
触发止损时,手数 "翻倍"。
如同吩咐:))))
初始存款10000
初始地段1
随机进入,一对卖,一对买
TR ~10pip
SL ~40bp
止损触发时,手数 "翻倍"
为什么要编码--封闭?
看看吧--图案是这样的吗/不是?
这是在4。
为什么密码被锁定?
看--这个计划是这样的/不是?
"知识产权":)))) 在一些事件之后,不要烛照源代码(()
而你没有建议,例如MQ或WinDoof,这可能都是有原因的:))
不,那里的逻辑很简单。
随机基因0:1
如果0-出售,如果1-购买
如果他们都以正数收盘,赔率为1
否则,系数2,计数器1
以此类推
还是输了:)))) ((
"知识产权":)))) 在一些事件之后,不要烛照源代码(()
而你没有建议,例如MQ或WinDoof,这可能都是有原因的:))
不,那里的逻辑很简单。
随机基因0:1
如果0-出售,如果1-购买
如果两者都接近加号,赔率为1
如果他们都以正数收盘,赔率是2,反数是1。
以此类推
还是输了:)))) ((
我明白了。视频中的情况并非如此。如果一个在加号上,另一个在减号上,那么减号上的那个lot_previous * 2。正面关闭的那个人打开了开始的那个人。录像上有一切。
我稍后会亲自写下这五条......
我明白了。视频中的情况并非如此。如果一个在加号上,另一个在减号上,那么减号上的那个lot_previous * 2。正面关闭的那个人打开了开始的那个人。录像上有一切。
我稍后会亲自写下这五条......
你是对的,我没有仔细看,我道歉。
你是对的,我没有仔细看,我道歉。
:-)
(很抱歉,EA的交易方式不同,你是不是又改了什么?)