Привет, hdb,
Я слежу за этой идеей с давних пор на форумах MoneyTec (Simspeed), ET (ElectricSavant) и Oanda (MarkVH и Sympatico) и я думал о том, как разработать эксперта для улучшения первого скрипта, который Вы послали на форум, возможно, мы могли бы работать вместе, чтобы достичь чего-то быстрее :) Пожалуйста, дайте мне знать, если вы заинтересованы, мой e-mail: artefactodigital@gmail.com.
С наилучшими пожеланиями,
Фернандо.
Я слежу за этой идеей с давних пор на форумах MoneyTec (Simspeed), ET (ElectricSavant) и Oanda (MarkVH и Sympatico) и я думал о том, как разработать эксперта для улучшения первого скрипта, который Вы послали на форум, возможно, мы могли бы работать вместе, чтобы достичь чего-то быстрее :) Пожалуйста, дайте мне знать, если вы заинтересованы, мой e-mail: artefactodigital@gmail.com.
С наилучшими пожеланиями,
Фернандо.
Здесь представлена версия 1.1 "Grid maker"... скрипт или советник, который устанавливает и поддерживает серию равномерно распределенных ордеров на покупку или продажу. <br / translate="no"> Эта версия является либо скриптом, либо советником, вы можете изменить частоту обновления, выбрать лонги и/или шорты, и т.д... см. параметры для объяснения.
Я думаю, что протестировал большинство вариантов, но нет никаких гарантий, что это работает во всех случаях! Если вы попробуете и найдете проблемы, дайте мне знать.
Возможно, это последняя версия, которую я выкладываю. Я разработал ее для тестирования MT4. Будущие версии будут более сложными, требующими внешних данных, таких как уровни поддержки и сопротивления, поэтому выкладывать их будет нецелесообразно.
Я думаю, что протестировал большинство вариантов, но нет никаких гарантий, что это работает во всех случаях! Если вы попробуете и найдете проблемы, дайте мне знать.
Возможно, это последняя версия, которую я выкладываю. Я разработал ее для тестирования MT4. Будущие версии будут более сложными, требующими внешних данных, таких как уровни поддержки и сопротивления, поэтому выкладывать их будет нецелесообразно.
Хорошо, звучит неплохо... см. мой e-mail...
кстати, вы можете пробовать, использовать, менять его, но, пожалуйста, не продавайте его!
Я не даю никаких гарантий относительно его эффективного рабочего состояния и любые торговые операции, которые вы можете проводить с ним, вы осуществляете на свой страх и риск.
Я не несу никакой ответственности за прямые или косвенные убытки, связанные с этим скриптом.
Если вы используете его, пожалуйста, периодически оставляйте отзывы - результаты, настройки, ошибки, наблюдения и т.д.
наслаждайтесь
Я не даю никаких гарантий относительно его эффективного рабочего состояния и любые торговые операции, которые вы можете проводить с ним, вы осуществляете на свой страх и риск.
Я не несу никакой ответственности за прямые или косвенные убытки, связанные с этим скриптом.
Если вы используете его, пожалуйста, периодически оставляйте отзывы - результаты, настройки, ошибки, наблюдения и т.д.
наслаждайтесь
ок, поехали... одно крупное движение рынка спустя, сетка выжила!!! Я открыл демо-счет две недели назад с 50k.
Я потерял 1k, тестируя гридмейкер, а затем, прямо перед падением евро, я поставил эксперта GridMaker по умолчанию на 9 валютных пар:
EUR/CHF, USD/JPY, GBP/JPY, EUR/GBP, USD/CHF, AUD/USD, GBP/USD, EUR/USD, EUR/JPY.
Расстояние между сетками составляет 6 тиков для всех валют, а TP на уровне 6 тиков. Я установил размер лота 0,1. Я выставлял длинные и короткие позиции каждые 6 тиков для каждой валютной пары.
Обновление происходило каждые 15 минут (т.е. сетка регенерировалась каждые 15 минут), за исключением EUR/USD и GBP/USD с интервалом 5 минут.
Баланс увеличился на 10 тыс. (20%), использованная маржа - 13 тыс. (26%), свободная маржа - 26 тыс. (52%), нереализованный доход от прибыли и убытков -19 тыс.
Чистый результат евро-бана (пока что) заключается в том, что я потерял -9k. Я ожидал гораздо худшего!
Сетка пополняет баланс со скоростью от 600 до 2000 в день!
Я с нетерпением жду, как это будет выглядеть на следующей неделе.
Да здравствует сетка!!!
Я потерял 1k, тестируя гридмейкер, а затем, прямо перед падением евро, я поставил эксперта GridMaker по умолчанию на 9 валютных пар:
EUR/CHF, USD/JPY, GBP/JPY, EUR/GBP, USD/CHF, AUD/USD, GBP/USD, EUR/USD, EUR/JPY.
Расстояние между сетками составляет 6 тиков для всех валют, а TP на уровне 6 тиков. Я установил размер лота 0,1. Я выставлял длинные и короткие позиции каждые 6 тиков для каждой валютной пары.
Обновление происходило каждые 15 минут (т.е. сетка регенерировалась каждые 15 минут), за исключением EUR/USD и GBP/USD с интервалом 5 минут.
Баланс увеличился на 10 тыс. (20%), использованная маржа - 13 тыс. (26%), свободная маржа - 26 тыс. (52%), нереализованный доход от прибыли и убытков -19 тыс.
Чистый результат евро-бана (пока что) заключается в том, что я потерял -9k. Я ожидал гораздо худшего!
Сетка пополняет баланс со скоростью от 600 до 2000 в день!
Я с нетерпением жду, как это будет выглядеть на следующей неделе.
Да здравствует сетка!!!
Так, так, неделя прошла, а сетка действительно пострадала! Моя вина, потому что я не сделал необходимые расчеты размера лота / расстояния между сетками.
необходимых для того, чтобы понять, какой удар можно принять с имеющимся капиталом.
В любом случае, баланс развивается довольно хорошо: от 700 до 1800 в день прирост - баланс сейчас 65k (начинал с 49k, так что это +16k).
Использованная маржа сейчас 15k, доступная маржа 21k - все еще много места для добавления позиций, когда это необходимо.
Нереализованный доход -29k, что дает чистый убыток в 13k, на 4 хуже, чем на прошлой неделе.
Положительным моментом является то, что я изменил настройки, чтобы избежать встречных сделок (флаг CounterTrade false), и нереализованный p&l, кажется, стабилизировался.
На одном этапе он был на уровне -36k.
Что мне нравится в этом форвард-тесте, так это то, что он начался с большого удара - падения евро на прошлой неделе - так что теперь будет интересно посмотреть, как и когда система восстановится.
система восстановится. Я не сомневаюсь, что так и будет.
Я просто не могу дождаться результатов на следующей неделе!!!
ps. У меня есть версия 1.2 с возможностью изменения TP и добавления SL. Напишите здесь, если хотите.
необходимых для того, чтобы понять, какой удар можно принять с имеющимся капиталом.
В любом случае, баланс развивается довольно хорошо: от 700 до 1800 в день прирост - баланс сейчас 65k (начинал с 49k, так что это +16k).
Использованная маржа сейчас 15k, доступная маржа 21k - все еще много места для добавления позиций, когда это необходимо.
Нереализованный доход -29k, что дает чистый убыток в 13k, на 4 хуже, чем на прошлой неделе.
Положительным моментом является то, что я изменил настройки, чтобы избежать встречных сделок (флаг CounterTrade false), и нереализованный p&l, кажется, стабилизировался.
На одном этапе он был на уровне -36k.
Что мне нравится в этом форвард-тесте, так это то, что он начался с большого удара - падения евро на прошлой неделе - так что теперь будет интересно посмотреть, как и когда система восстановится.
система восстановится. Я не сомневаюсь, что так и будет.
Я просто не могу дождаться результатов на следующей неделе!!!
ps. У меня есть версия 1.2 с возможностью изменения TP и добавления SL. Напишите здесь, если хотите.
Я немного поиграл с этой программой. Просто запустил все по умолчанию на всех парах...
Должен сказать, что я был очень впечатлен его работой.
Есть только один большой нюанс.
Давайте возьмем только короткие позиции... по мере падения цены активируются короткие ордера... но много раз вы можете получить 2 ордера на короткой стороне, прежде чем цена решит развернуться.
т.е. тейк-профит находится по той же цене, что и следующий короткий, который будет инициирован, и не учитывает спред, т.е. цены покупки и продажи.
поэтому для того, чтобы предотвратить открытие 2 ордеров до того, как цена развернется в длинную сторону, TP должен произойти в то же время, когда будет размещен следующий короткий ордер.
Я думаю, если это возможно, моя просадка в настоящее время может быть сокращена вдвое...
Я предполагаю, что ваша последняя версия этой системы решит эту проблему.
Так что если бы вы могли опубликовать его, это было бы замечательно...
Должен сказать, что я был очень впечатлен его работой.
Есть только один большой нюанс.
Давайте возьмем только короткие позиции... по мере падения цены активируются короткие ордера... но много раз вы можете получить 2 ордера на короткой стороне, прежде чем цена решит развернуться.
т.е. тейк-профит находится по той же цене, что и следующий короткий, который будет инициирован, и не учитывает спред, т.е. цены покупки и продажи.
поэтому для того, чтобы предотвратить открытие 2 ордеров до того, как цена развернется в длинную сторону, TP должен произойти в то же время, когда будет размещен следующий короткий ордер.
Я думаю, если это возможно, моя просадка в настоящее время может быть сокращена вдвое...
Я предполагаю, что ваша последняя версия этой системы решит эту проблему.
Так что если бы вы могли опубликовать его, это было бы замечательно...
Привет,
Я рад, что ты находишь это интересным. Я тоже.
я никак не могу одновременно иметь TP = размер сетки и исключить возможность иметь 2 открытые позиции на развороте.
Это не проблема программного обеспечения, а просто связано со спредами.
Единственная возможность теоретически полностью исключить это - терять спред каждый раз:
т.е. при спреде в 4 тика вы выходите в короткую позицию по 1.2006 (бид), TP по 1.2000 (аск) и короткую позицию по 1.1996 (бид).
Вы просто теряете 4/10 диапазона.
В новой версии можно установить размер сетки и TP на разные числа, так что можно реализовать то, что вы ищете.
можно установить сетку на 10, а TP на 6, если спред 4 пункта.
Я не уверен, что это уменьшит dd в два раза - но это определенно значительно уменьшит вашу прибыль.
Дайте мне знать.
ps. v1.2 в следующем посте
Я рад, что ты находишь это интересным. Я тоже.
я никак не могу одновременно иметь TP = размер сетки и исключить возможность иметь 2 открытые позиции на развороте.
Это не проблема программного обеспечения, а просто связано со спредами.
Единственная возможность теоретически полностью исключить это - терять спред каждый раз:
т.е. при спреде в 4 тика вы выходите в короткую позицию по 1.2006 (бид), TP по 1.2000 (аск) и короткую позицию по 1.1996 (бид).
Вы просто теряете 4/10 диапазона.
В новой версии можно установить размер сетки и TP на разные числа, так что можно реализовать то, что вы ищете.
можно установить сетку на 10, а TP на 6, если спред 4 пункта.
Я не уверен, что это уменьшит dd в два раза - но это определенно значительно уменьшит вашу прибыль.
Дайте мне знать.
ps. v1.2 в следующем посте
вот версия 1.2 гридмейкера.
единственные отличия:
1) я добавил опциональный стоплосс, если он вам нужен. 0 означает отсутствие стоплосса, любое положительное число означает стоплосс.
Если вы используете стоплосс в сетке, вы должны сделать его большим.
2) вы можете указать TP, отличный от размера сетки. darkstonexa, в предыдущем сообщении, хочет устранить двойные "висячие" позиции.
Моим первоначальным намерением было попробовать большие ТП относительно размера сетки.
сохраните его в папке советника (что-то вроде C:\Program Files\MetaTrader 4\experts\) и, по желанию, скопируйте в папку scripts
, если хотите использовать его как скрипт (C:\Program Files\MetaTrader 4\experts\scripts\).
У меня есть скрипт для удаления открытых ордеров сетки, если вы хотите... это довольно полезно, если вы хотите изменить настройки.
ПРИМЕЧАНИЕ: настройки по умолчанию могли измениться со времен последней версии. убедитесь, что вы установили ваши предпочтительные настройки перед перекомпиляцией.
ВОПРОС к администратору: возможно, я должен поместить подобные вещи в библиотеку советников... это правильно?
единственные отличия:
1) я добавил опциональный стоплосс, если он вам нужен. 0 означает отсутствие стоплосса, любое положительное число означает стоплосс.
Если вы используете стоплосс в сетке, вы должны сделать его большим.
2) вы можете указать TP, отличный от размера сетки. darkstonexa, в предыдущем сообщении, хочет устранить двойные "висячие" позиции.
Моим первоначальным намерением было попробовать большие ТП относительно размера сетки.
сохраните его в папке советника (что-то вроде C:\Program Files\MetaTrader 4\experts\) и, по желанию, скопируйте в папку scripts
, если хотите использовать его как скрипт (C:\Program Files\MetaTrader 4\experts\scripts\).
У меня есть скрипт для удаления открытых ордеров сетки, если вы хотите... это довольно полезно, если вы хотите изменить настройки.
ПРИМЕЧАНИЕ: настройки по умолчанию могли измениться со времен последней версии. убедитесь, что вы установили ваши предпочтительные настройки перед перекомпиляцией.
ВОПРОС к администратору: возможно, я должен поместить подобные вещи в библиотеку советников... это правильно?
//+------------------------------------------------------------------+ //| MakeGrid.mq4 | //| Copyright © 2005, hdb | //| http://www.dubois1.net/hdb | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, hdb" #property link "http://www.dubois1.net/hdb" //#property version "1.2beta" extern string GridName = "Grid"; // identifies the grid. allows for several co-existing grids extern double Lots = 0.1; // extern double GridSize = 6; // pips between orders - grid or mesh size extern double GridSteps = 10; // total number of orders to place extern double TakeProfit = 6 ; // number of ticks to take profit. normally is = grid size but u can override extern double StopLoss = 0; // if u want to add a stop loss. normal grids dont use stop losses extern double UpdateInterval = 15; // update orders every x minutes extern bool wantLongs = true; // do we want long positions extern bool wantShorts = true; // do we want short positions extern bool wantBreakout = true; // do we want longs above price, shorts below price extern bool wantCounter = false; // do we want longs below price, shorts above price extern bool limitEMA34 = false; // do we want longs above ema only, shorts below ema only extern double LastUpdate = 0; // counter used to note time of last update //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- #property show_inputs // shows the parameters - thanks Slawa... if ( TakeProfit <= 0 ) // { TakeProfit = GridSize; } //---- return(0); } //+------------------------------------------------------------------------+ //| tests if there is an open position or order in the region of atRate | //| will check for longs if checkLongs is true, else will check | //| for shorts | //+------------------------------------------------------------------------+ bool IsPosition(double atRate, double inRange, bool checkLongs ) { int totalorders = OrdersTotal(); for(int j=0;j<totalorders;j++) // scan all orders and positions... { OrderSelect(j, SELECT_BY_POS); if ( OrderSymbol()==Symbol() && OrderComment() == GridName ) // only look if mygrid and symbol... { int type = OrderType(); if (MathAbs( OrderOpenPrice() - atRate) < inRange) // dont look for exact price but price proximity (less than gridsize) { if ( ( checkLongs && ( type == OP_BUY || type == OP_BUYLIMIT || type == OP_BUYSTOP ) ) || (!checkLongs && ( type == OP_SELL || type == OP_SELLLIMIT || type == OP_SELLSTOP ) ) ) { return(true); } } } } return(false); } //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- int i, j,k, ticket, entermode, totalorders; bool doit; double point, startrate, traderate; //---- if (MathAbs(CurTime()-LastUpdate)> UpdateInterval*60) // we update the first time it is called and every UpdateInterval minutes { LastUpdate = CurTime(); Print("Updating"); point = MarketInfo(Symbol(),MODE_POINT); startrate = ( Ask + point*GridSize/2 ) / point / GridSize; // round to a number of ticks divisible by GridSize k = startrate ; k = k * GridSize ; startrate = k * point - GridSize*GridSteps/2*point ; // calculate the lowest entry point double EMA34=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,0); for( i=0;i<GridSteps;i++) { traderate = startrate + i*point*GridSize; if ( wantLongs && (!limitEMA34 || traderate > EMA34)) { if (!IsPosition(traderate,point*GridSize,true) ) // test if i have no open orders close to my price: if so, put one on { double myStopLoss = 0; if ( StopLoss > 0 ) { myStopLoss = traderate-point*StopLoss ; } if ( traderate > Ask ) { entermode = OP_BUYSTOP; } else { entermode = OP_BUYLIMIT ; } if ( (traderate > Ask ) && (wantBreakout) || ((traderate < Ask ) && (wantCounter)) ) { ticket=OrderSend(Symbol(),entermode,Lots,traderate,0,myStopLoss,traderate+point*TakeProfit,GridName,16384,0,Green); } } } if ( wantShorts && (!limitEMA34 || traderate < EMA34)) { if (!IsPosition(traderate,point*GridSize,false) ) // test if i have no open orders close to my price: if so, put one on { myStopLoss = 0; if ( StopLoss > 0 ) { myStopLoss = traderate+point*StopLoss ; } if ( traderate > Bid ) { entermode = OP_SELLLIMIT; } else { entermode = OP_SELLSTOP ; } if ( (traderate < Bid ) && (wantBreakout) || ((traderate > Bid ) && (wantCounter)) ) { ticket=OrderSend(Symbol(),entermode,Lots,traderate,0,myStopLoss,traderate-point*TakeProfit,GridName,16384,0,Red); } } } } } return(0); } //+------------------------------------------------------------------+
Это здорово...
Это просто решение проблемы, когда есть опция TP.
Возможно, я переоценил размер просадки... но это, надеюсь, остановит многие случаи, когда я видел 2 ордера в конце диапазона.
каждый с убытком в $2000+ уйдут в прошлое :)
Теперь последнее, что может быть полезным, это разработка опции истечения срока действия лимитных ордеров...
Сейчас у вас установлено, что они не истекают...
поэтому приходится удалять вручную.
В настоящее время у меня есть куча ордеров, которым около 3 дней и которые вряд ли будут исполнены в ближайшее время...
Что ж, я хотел бы сказать, что это отличная работа... :)
Это просто решение проблемы, когда есть опция TP.
Возможно, я переоценил размер просадки... но это, надеюсь, остановит многие случаи, когда я видел 2 ордера в конце диапазона.
каждый с убытком в $2000+ уйдут в прошлое :)
Теперь последнее, что может быть полезным, это разработка опции истечения срока действия лимитных ордеров...
Сейчас у вас установлено, что они не истекают...
поэтому приходится удалять вручную.
В настоящее время у меня есть куча ордеров, которым около 3 дней и которые вряд ли будут исполнены в ближайшее время...
Что ж, я хотел бы сказать, что это отличная работа... :)
вот скрипт для удаления всех открытых ордеров для определенной валютной пары. код немного неприятный, но, кажется, работает.
//+------------------------------------------------------------------+ //| RemoveGrid.mq4 | //| Copyright © 2005, hdb | //| http://www.dubois1.net/hdb | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, hdb" #property link "http://www.dubois1.net/hdb" extern string GridName = "Grid"; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { #property show_inputs // shows the parameters - thanks Slawa... //---- int total = OrdersTotal(); int i ; for(i=total-1; i>=0;i--) { OrderSelect(i, SELECT_BY_POS); int type = OrderType(); if ( OrderSymbol()==Symbol() && OrderComment() == GridName ) { bool result = false; switch(type) { case OP_BUY : result = true ; case OP_SELL : result = true ; //Close pending orders case OP_BUYLIMIT : result = OrderDelete( OrderTicket() ); case OP_BUYSTOP : result = OrderDelete( OrderTicket() ); case OP_SELLLIMIT : result = OrderDelete( OrderTicket() ); case OP_SELLSTOP : result = OrderDelete( OrderTicket() ); } if(result == false) { // Alert("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() ); // Sleep(3000); } } } //---- return(0); } //+------------------------------------------------------------------+
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Эта версия является либо скриптом, либо советником, вы можете изменить частоту обновления, выбрать лонги и/или шорты, и т.д... см. параметры для объяснения.
Я думаю, что протестировал большинство вариантов, но нет никаких гарантий, что это работает во всех случаях! Если вы попробуете и найдете проблемы, дайте мне знать.
Возможно, это последняя версия, которую я выкладываю. Я разработал ее для тестирования MT4. Будущие версии будут более сложными, требующими внешних данных, таких как уровни поддержки и сопротивления, поэтому выкладывать их будет нецелесообразно.