Закрытая тема
26.07.2014, 00:06
Аватар для zhserg
zhserg zhserg вне форума Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Уважаемые, прикрутите сигнал к индюку, он меняет цвет при пересечении уровней 0,25 и -0,25. нужен сигнал при этих пересечениях.
zhserg.ru советники, скрипты, индикаторы на заказ

Последний раз редактировалось zhserg; 26.07.2014 в 00:09.
26.07.2014, 00:13
Аватар для zhserg
zhserg zhserg вне форума Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Ребята,поменяйте пожалуйста советнику вид ордеров.Чтобы вместо стоповых,он ставил лимитники.Поменяйте пожалуйста.
zhserg.ru советники, скрипты, индикаторы на заказ
1megavolt1 , Alley , Box 
26.07.2014, 00:33
Аватар для Box
Box Box вне форума Активный участник
Регистрация: 07.03.2013 / Сообщений: 30
Поблагодарили 69 раз(а) / Репутация: 70
Спасибо! но он почему то ошибку выдаёт ((
26.07.2014, 00:40
Аватар для zhserg
zhserg zhserg вне форума Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Спасибо! но он почему то ошибку выдаёт ((
Потому что просто поменять "вид ордеров" в большинстве своем не правильно...
zhserg.ru советники, скрипты, индикаторы на заказ
26.07.2014, 00:41
Аватар для Box
Box Box вне форума Активный участник
Регистрация: 07.03.2013 / Сообщений: 30
Поблагодарили 69 раз(а) / Репутация: 70
А как надо ?
26.07.2014, 01:47
Аватар для advanced
advanced advanced вне форума Элитный участник
Регистрация: 17.12.2010 / Сообщений: 438
Поблагодарили 1,472 раз(а) / Репутация: 1473
Поправил:
Fillelin,V papkie metatreidera "indicators" jiest obie peredielanyjie versii, piervaja versija indikatorv,kotoruju vy peredielali (TMA i T3) jiest v papkie "indicators" otkrytovo terminala,a vtoroj versii nietu...
Terminal peregruzhal nieskolko raz...dazhe restartiraval kompiuter-niepojavilis...
Posmotritie pozhalujsta,v chiom prichina ...
Spasibo vam ogromnojie
26.07.2014, 06:29
Аватар для phartovy
phartovy phartovy вне форума Интересующийся
Регистрация: 16.08.2013 / Сообщений: 13
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
zhserg, Спасибо огромное!!! Рисует он правда
26.07.2014, 07:19
Аватар для zhserg
zhserg zhserg вне форума Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Рисует он правда
Такой уж исходный индикатор, я же не волшебник
zhserg.ru советники, скрипты, индикаторы на заказ
26.07.2014, 09:25
Аватар для Slavich
Slavich Slavich вне форума Интересующийся
Регистрация: 22.12.2013 / Сообщений: 8
Поблагодарили 0 раз(а) / Репутация: 1
Помогите пожалуйста в доработке индикатора.

Индикатор предназначен для прогнозирования направления движения цены на следующей свече.

Проблема, с которой я столкнулся – это появление ложных сигналов. При присоединении индикатора к графику я вижу отличную статистику прибыльных сделок на истории (75-80% прибыльных сделок). Но во время тестирования в тестере стратегий, появляются сигналы на тех же свечах за исключением 1-2 свечей (просто не появляются сигналы на них ) в течение суток на 15-ти минутном таймфрейме плюс много ложных сигналов. На других таймфреймах то же самое. Мое подозрение пало на неправильный расчет баров при тестировании, в MQL4 я не силен, точно утверждать не могу. Причем индикатор НЕ РИСУЕТ. Он делает расчет уже на основе исторических данных – тиковых объемов и цен открытия и закрытия свечей с 1 по 6, то есть уже сформировавшихся, и выдает сигнал на нулевой (формирующейся) свече.

Прикрепляю скриншоты от 01 мая 2014г. Один из них – сигналы индикатора SOT_DOT_6 NEW.mq4 на истории пары EURCHF без ложных сигналов. Другой скрин - сигналы этого же индикатора после тестирования на тестере стратегий с ложными сигналами. Свечи с ложными сигналами выделены красными линиями. Например, в 04:15, 10:15, 14:00, 22:30, 22:45. Если сравнить эти скриншоты, то можно увидеть и другие ложные сигналы, но я не стал их отмечать, чтобы не загромождать скриншот.
Я заметил еще одну особенность в поведении ложных сигналов. Допустим, при тестировании на тестере стратегий у нас появился очередной сигнал на свече. Пока мы не знаем, ложный он или нет. Ждем появления следующего сигнала. После того, как появился следующий сигнал, удаляем индикатор с графика и затем снова присоединяем индикатор к графику. Если предыдущий сигнал не исчез с графика, то он был настоящим, если исчез – то был ложным. Если не дожидаться появления следующего сигнала, то даже после отрисовки нескольких свечей удаляя индикатор с графика и затем снова присоединяя его к графику, предыдущий сигнал в любом случае будет сохраняться, даже если в последствии выяснится, что он был ложным.
И еще я заметил такой момент.

Всего 2 условия, при которых появляется сигнал в начале формирования текущей свечи, например, для сигнала на покупку:
1. Средняя арифметическая скорость торговли на свече 1 (SOT1) больше средней арифметическая скорость торговли за последние 6 свечей, умноженной на 2., т. е. (SOT1>SOTAV2)
2. Цена закрытия свечи 2 должна быть меньше цены открытия свечи 2 и одновременно с этим цена закрытия свечи 1 должна быть меньше цены открытия свечи 2, т. е. (ClosePrice2<OpenPrice2) && (ClosePrice1<OpenPrice2).
Я из строк 179 и 188 кода исключил условие (SOT1>SOTAV2), оставил только условия по взаимному расположению свечей и протестировал индикатор в таком виде. Естественно, сигналов стало больше, так как исчез фильтр (SOT1>SOTAV2), но в тоже время сигналов во время тестирования больше, чем на истории. Хотя такого не должно быть, потому что сигнал появляется уже после формирования свечей.
Как видно на скриншотах, в 14:00 сигнала нет ни на истории, ни на тесте, хотя он должен появиться по условиям взаимного расположения свечей в 13:30 и 13:45. Тоже какая-то странность…

Помогите пожалуйста разобраться с этим.
26.07.2014, 09:36
Аватар для Fillelin
Fillelin Fillelin вне форума Местный знаток
Регистрация: 02.09.2011 / Сообщений: 211
Поблагодарили 617 раз(а) / Репутация: 619
Fillelin,V papkie metatreidera "indicators" jiest obie peredielanyjie versii, piervaja versija indikatorv,kotoruju vy peredielali (TMA i T3) jiest v papkie "indicators" otkrytovo terminala,a vtoroj versii nietu...
Terminal peregruzhal nieskolko raz...dazhe restartiraval kompiuter-niepojavilis...
Posmotritie pozhalujsta,v chiom prichina ...
Spasibo vam ogromnojie

Пробуйте так:
26.07.2014, 12:11
Аватар для advanced
advanced advanced вне форума Элитный участник
Регистрация: 17.12.2010 / Сообщений: 438
Поблагодарили 1,472 раз(а) / Репутация: 1473
Пробуйте так:
Poslie regulirovki nastrojek,leibly na drugich TMA ischiezajiet...no poslie obnovlienija grafika-pojavliajietsa...tak shto rabotat mozhno...

Spasibo vam Fillelin
27.07.2014, 15:20
Регистрация: 23.11.2011 / Адрес: Земля / Сообщений: 1,410
Поблагодарили 2,259 раз(а) / Репутация: 2260
Доброе утро. Помогите доработать советник на Белом тигре: он использует два индикатора, один - на графике, один - на осциллографе, смысл такой, что, когда сигналы на обоих индикаторах совпадают, например, они оба красные - происходит продажа, зеленые - покупка. Однако советник заключает сделки неправильно, мне кажется, что я не так прописал сигналы или условие выставления/закрытия ордеров. Помогите разобраться, подскажите что не так. Код советника ниже. Спасибо.

Скрытый текст

PHP код:
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern double Lots          0.1;
extern int    TakeProfit  100 ;
extern int    StopLoss     50 ;
extern int    Slippage      5;
extern string comment       "WT BOT";
extern int    Magic         123;


double Sig1Sig2Sig3Sig4SLTP;
int    ticket;


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
{
   if (
Digits == || Digits == 5)
   {
     
TakeProfit *= 10;
     
StopLoss   *= 10;
     
Slippage   *= 10;
   }
   return(
0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{

int Signal_1,Signal_2 ;
// индикатор в осциллографе
  
Sig1 iCustom(Symbol(), 0,  "SFCC5"31); //зеленый
  
Sig1 NormalizeDouble(Sig1,Digits);
  
Sig2 iCustom(Symbol(), 0,  "SFCC5"41); //красный
  
Sig2 NormalizeDouble(Sig2,Digits);
  
  
 
// индикатор на графике 
 
Sig3 iCustom(Symbol(), 0,  "SFCS5"11); //зеленый 
 
Sig3 NormalizeDouble(Sig3,Digits);
 
Sig4 iCustom(Symbol(), 0,  "SFCS5"01); //красный
 
Sig4 NormalizeDouble(Sig4,Digits);
 
 {
 if( 
Sig1 != EMPTY_VALUE && Sig2 == EMPTY_VALUE)Signal_1=1;//зеленый
 
if( Sig1 == EMPTY_VALUE && Sig2!= EMPTY_VALUE)Signal_1=2;//красный
 
if( Sig3 != EMPTY_VALUE && Sig4 == EMPTY_VALUE)Signal_2=1;//зеленый
 
if( Sig3 == EMPTY_VALUE && Sig4 != EMPTY_VALUE)Signal_2=2;//красный
  
}
  if((
Signal_1 ==&& Signal_2 == 1) && (CountSell() > 0)) //зеленый и есть ордера на продажу. то закрываем
  
{
      for (
int i OrdersTotal ()-1>=0i--)
      {
        if(
OrderSelect (iSELECT_BY_POSMODE_TRADES) == true)
        {
          if (
OrderMagicNumber () == Magic && OrderType() == OP_SELL )
              
OrderClose (OrderTicket(), OrderLots (), AskSlippageBlack);
        }
        
      } 
      
     }   
  
  
  
  if((
Signal_1 == && Signal_2 == 2) && (CountBuy() > 0))//красный и есть ордера на покупку. то закрываем

   
{
      for (
OrdersTotal ()-1>=0i--)
      {
        if(
OrderSelect (iSELECT_BY_POSMODE_TRADES) == true)
        {
          if (
OrderMagicNumber () == Magic && OrderType() == OP_BUY )
              
OrderClose (OrderTicket(), OrderLots (), BidSlippageBlack);
        }
        
      } 
      
     }
   if((
Signal_1 == && Signal_2 == 1) && (CountBuy() == 0))//зеленый и нет ордера на покупку. то открываем
    
{
      
SL NormalizeDouble(Ask StopLoss PointDigits);
      
TP NormalizeDouble(Ask TakeProfit PointDigits);
      
       
ticket OrderSend (Symbol(), OP_BUYLotsAskSlippage00commentMagic0Blue);
      if (
ticket 0
      {
       if( 
OrderSelect (ticketSELECT_BY_TICKETMODE_TRADES) == true)
         
OrderModify (ticketOrderOpenPrice(), SLTP0);
      }  
  }
    
  if((
Signal_1 == && Signal_2 == 2) &&( CountSell() == 0))//красный и нет ордера на продажу. то открываем
  
{
      
SL NormalizeDouble(Bid StopLoss PointDigits);
      
TP NormalizeDouble(Bid TakeProfit PointDigits);
      
      
ticket OrderSend (Symbol(), OP_SELLLotsBidSlippage00commentMagic0Red);
      if (
ticket 0
      {
       if( 
OrderSelect (ticketSELECT_BY_TICKETMODE_TRADES) == true)
         
OrderModify (ticketOrderOpenPrice(), SLTP0);
      }
  }
         

   return(
0);
}
//+------------------------------------------------------------------+
int CountSell ()
{
  
int count 0;
  for (
int trade OrdersTotal()-1trade >= 0trade--)
  {
   
OrderSelect (tradeSELECT_BY_POSMODE_TRADES);
   if (
OrderSymbol () == Symbol()&& OrderMagicNumber () == Magic)
   {
      if (
OrderType () == OP_SELL)
      
count++;
  }
 }
 return(
count);
}
//+------------------------------------------------------------------+

int CountBuy ()
{
  
int count 0;
  for (
int trade OrdersTotal()-1trade >= 0trade--)
  {
   
OrderSelect (tradeSELECT_BY_POSMODE_TRADES);
   if (
OrderSymbol () == Symbol()&& OrderMagicNumber () == Magic)
   {
      if (
OrderType () == OP_BUY)
      
count++;
  }
 }
 return(
count);
}
//+------------------------------------------------------------------+] 
[свернуть]
А ИНДЮКИ ГДЕ ?
С уважением Владимир!
http://forexsystems.ru/poleznye-dlya...tml#post467397

ГДЕ ЕСТЬ ЗАКОН - ТАМ НЕТ СВОБОДЫ
27.07.2014, 20:41
Аватар для viktor 12345
viktor 12345 viktor 12345 вне форума Местный знаток
Регистрация: 09.10.2013 / Сообщений: 611
Поблагодарили 619 раз(а) / Репутация: 620
Подскажите как в своём терминале запустить счёт если известны IP адреса торговых серверов для работы? В каком файле терминала прописывать ip адрес торгового сервера?
Слава Отчизне! России слава!
27.07.2014, 23:49
Аватар для NSerega
NSerega NSerega на форуме Администратор
Регистрация: 21.10.2012 / Сообщений: 3,487
Поблагодарили 2,116 раз(а) / Репутация: 2120
Сообщение от: viktor 12345
Подскажите как в своём терминале запустить счёт если известны IP адреса торговых серверов для работы? В каком файле терминала прописывать ip адрес торгового сервера?
А зачем в файл прописывать? В самом терминале заходите в "Сервис" -> "Настройки", выбираете вкладку "Сервер" и в строку "Сервер:" вбиваете ip адрес, ниже логин и пароль и "Ок".
28.07.2014, 10:57
Аватар для SYSTEMOFF
SYSTEMOFF SYSTEMOFF вне форума Интересующийся
Регистрация: 15.07.2014 / Сообщений: 9
Поблагодарили 0 раз(а) / Репутация: 1
Индюки вот
28.07.2014, 12:12
Аватар для incomeasset
incomeasset incomeasset на форуме Элитный участник
Регистрация: 10.06.2013 / Сообщений: 166
Поблагодарили 1,582 раз(а) / Репутация: 1583
Privet pomoghite pojalusta ispraviti alert v etot indikator u nevo esti alert no on pochemuto ne rabotaet... spasibo za ranee!
28.07.2014, 14:59
Аватар для vlad_123
vlad_123 vlad_123 вне форума Местный знаток
Регистрация: 29.01.2013 / Сообщений: 459
Поблагодарили 930 раз(а) / Репутация: 934
Для дорабатывающих/перерабатывающих советников под новые билды терминала - только что столкнулся с неожиданным "подарком" компилятора, который стал гораздо умнее...
Итак, в советнике есть цикл, пробегающий по всем открытым ордерам и закрывающий часть из них (например, OP_BUY) при определенном условии и использующий bool флаг, указывающий - была ли закрыта хоть одна позиция. Логика цикла представлена ниже:
Код:
bool flOrderWasClose = false;
for (int i=OrdersTotal()-1; i>=0; i--) {
 OrderSelect(i,...);
 flOrderWasClose = flOrderWasClose || OrderClose(OrderTicket(),...);
}
В старых билдах компилятор генерил код, который вызывал OrderClose() для всех ордеров, выбранных в OrderSelect().
В новых билдах (у меня - 670й) - OrderClose() срабатывал только один раз. Затем компилятор смотрел - ага, flOrderWasClose уже равна true, и дальше уже не изменится, значит OrderClose() можно не вызывать.

Я долго не мог понять, почему не закрываются все ордера при срабатывании условия, пока не вспомнил Webinar по Java, где чувак рассказывал про то, что тамошний runtime-оптимизатор тоже может выбрасывать часть кода, результат работы которого в дальнейшем не используется.

Так что - будьте внимательны! Новый компилер может быть хитрее, чем вы думаете

P.S. А тот код, который выше, я переписал так:
Код:
bool flOrderWasClose = false;
for (int i=OrdersTotal()-1; i>=0; i--) {
 OrderSelect(i,...);
 if (!flOrderWasClose) flOrderWasClose = flOrderWasClose || OrderClose(OrderTicket(),...);
 else OrderClose(OrderTicket(),...);
}
и это работает, как надо.

На заказ не программирую.
28.07.2014, 15:55
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
Для дорабатывающих/перерабатывающих советников под новые билды терминала - только что столкнулся с неожиданным "подарком" компилятора, который стал гораздо умнее...
Итак, в советнике есть цикл, пробегающий по всем открытым ордерам и закрывающий часть из них (например, OP_BUY) при определенном условии и использующий bool флаг, указывающий - была ли закрыта хоть одна позиция. Логика цикла представлена ниже:
Код:
bool flOrderWasClose = false;
for (int i=OrdersTotal()-1; i>=0; i--) {
 OrderSelect(i,...);
 flOrderWasClose = flOrderWasClose || OrderClose(OrderTicket(),...);
}
В старых билдах компилятор генерил код, который вызывал OrderClose() для всех ордеров, выбранных в OrderSelect().
В новых билдах (у меня - 670й) - OrderClose() срабатывал только один раз. Затем компилятор смотрел - ага, flOrderWasClose уже равна true, и дальше уже не изменится, значит OrderClose() можно не вызывать.

Я долго не мог понять, почему не закрываются все ордера при срабатывании условия, пока не вспомнил Webinar по Java, где чувак рассказывал про то, что тамошний runtime-оптимизатор тоже может выбрасывать часть кода, результат работы которого в дальнейшем не используется.

Так что - будьте внимательны! Новый компилер может быть хитрее, чем вы думаете

P.S. А тот код, который выше, я переписал так:
Код:
bool flOrderWasClose = false;
for (int i=OrdersTotal()-1; i>=0; i--) {
 OrderSelect(i,...);
 if (!flOrderWasClose) flOrderWasClose = flOrderWasClose || OrderClose(OrderTicket(),...);
 else OrderClose(OrderTicket(),...);
}
и это работает, как надо.
Попробуй лучше такой оператор _http://docs.mql4.com/ru/basis/operators/ternary здесь использовать. Думаю тебе понравится.
28.07.2014, 16:24
Аватар для vlad_123
vlad_123 vlad_123 вне форума Местный знаток
Регистрация: 29.01.2013 / Сообщений: 459
Поблагодарили 930 раз(а) / Репутация: 934
Попробуй лучше такой оператор _http://docs.mql4.com/ru/basis/operators/ternary здесь использовать. Думаю тебе понравится.
Не представляю, как этот оператор здесь можно использовать...
Функция OrderClose должна выполняться в любом случае...
Я, наверное, сильно упростил код - вместо OrderClose() на самом деле вызывается самописная функция, возвращающая true, если ордер был закрыт, но которая может ордер и не закрыть.
Эта самописная функция должна вызываться в любом случае, для каждого ордера.

P.S. А, теперь понял... ;-)

На заказ не программирую.

Последний раз редактировалось vlad_123; 28.07.2014 в 16:32.
29.07.2014, 12:32
Аватар для vlad_vl
vlad_vl vlad_vl вне форума Прохожий
Регистрация: 03.04.2014 / Сообщений: 1
Поблагодарили 0 раз(а) / Репутация: 1

По умолчанию Советник breakdownlevelday

Здравствуйте тестировал на валюте GBPUSD,постоянно сливает,решил попробовать поменять ордера на buylimit и selllimit, в итоге советник получился сливным на 87%.Может у кого есть идеи как его развернуть,т.е. сделать на 87 % прибыльным TP и SL 50 пунктов

StrategyTesterGBPUSD.rar
Закрытая тема

Метки
mql программирование, дописать индикатор, дописать эксперт, доработать советник, форекс программирование


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь профессионального программиста в написании МТС индикаторов советников. cmillion Поиск программиста, поиск заказов 96 05.09.2017 08:20
Написание экспертов, индикаторов. Улсуги VPS для ваших советников. RL.Maxim Temp, корзина, реклама 5 31.10.2009 21:55
Написание советников, индикаторов, скриптов для MT4 по Вашему ТЗ Impish Поиск программиста, поиск заказов 0 04.04.2009 21:30


Текущее время: 04:57. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO