Ответ
 
Опции темы
Старый 21.12.2014, 10:10   #3321 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
Другими словами написать советник? Вопрос слишком общий и не конкретный.. ))

И да, что за индикатор?
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 21.12.2014, 10:29   #3322 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172
Сообщение от matro3 Посмотреть сообщение
Другими словами написать советник? Вопрос слишком общий и не конкретный.. ))

И да, что за индикатор?
Почему он общий и не конкретный? там все очень конкретно сказано.. даны условия, расчет.. мне просто не ясно, как верно составить функции для открытия и закрытия ордеров. все более чем конкретно..

Что за индикатор - в данном случае это не важно. Все расчетные буферы индикатора я дал.. и условия появления сигналов тоже.

я и сам напишу советник.. просто нужна помощь знатоков)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 21.12.2014, 10:51   #3323 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
Тогда вот:
_http://forum.mql4.com/ru/38949
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Yura Vakulenko (21.12.2014)
Старый 21.12.2014, 11:01   #3324 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172
Сообщение от matro3 Посмотреть сообщение
Тогда вот:
_http://forum.mql4.com/ru/38949
Там этих функций куча! конкретно в моем случае, что нужно использовать?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 21.12.2014, 11:04   #3325 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Yura Vakulenko Посмотреть сообщение
Подскажите, как жто мне в коде написать.. или дайте ссылку на источник с примерами как это делается верно!) Спасибо!!
Букварь там _http://book.mql4.com/ru/

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Yura Vakulenko (21.12.2014)
Старый 21.12.2014, 11:18   #3326 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172
Огромное спасибо! По моей просьбе работы максимум на пол-часа.. и вы это знаете.. и сдерете за это 150 долларов не менее.. может быть что-то более конкретное подскажите? дадите пример советника, который торгует по подобному алгоритму? я немного изменю код и все..

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 21.12.2014, 11:30   #3327 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
_http://www.mql4.com/ru/search#!keyword=шаблон%20советника

Последний раз редактировалось NSerega; 21.12.2014 в 14:14.
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Yura Vakulenko (21.12.2014)
Старый 21.12.2014, 17:19   #3328 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от Yura Vakulenko Посмотреть сообщение
Огромное спасибо! По моей просьбе работы максимум на пол-часа.. и вы это знаете.. и сдерете за это 150 долларов не менее.. может быть что-то более конкретное подскажите? дадите пример советника, который торгует по подобному алгоритму? я немного изменю код и все..
тогда вам подойдет эта ветка, там пишут советники бесплатно, или по небольшой плате....
Предложения по автоматизации торговли

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Yura Vakulenko (21.12.2014)
Старый 23.12.2014, 18:08   #3329 (permalink)
Интересующийся
 
Аватар для Alexz2107
 
Регистрация: 05.05.2011
Сообщений: 16
Репутация: 2
Alexz2107
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Поинты: 20
Сообщение от Ugar Посмотреть сообщение
Думаю, не надо объяснять как использовать переменные на глобальном уровне для передачи команд в в функцию таймера и как передать результат выполнения обратно.
Вау, спасибо! Сделал так, теперь работает всёпросто изумительно, как и хотелось!
Alexz2107 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Ugar (23.12.2014)
Старый 23.12.2014, 18:21   #3330 (permalink)
Местный житель
 
Аватар для Ramil-2427
 
Регистрация: 12.04.2013
Адрес: Башкортостан, г.Октябрьский
Сообщений: 523
Репутация: 222
Ramil-2427 - Ramil-2427 - Ramil-2427 -
Сказал(а) спасибо: 603
Поблагодарили 222 раз(а) в 116 сообщениях
Поинты: 14
А подскажите мне пожалуйста,что изменить в индикаторе,что бы он не рисовал?
Ramil-2427 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 23.12.2014, 18:22   #3331 (permalink)
Местный житель
 
Аватар для Ramil-2427
 
Регистрация: 12.04.2013
Адрес: Башкортостан, г.Октябрьский
Сообщений: 523
Репутация: 222
Ramil-2427 - Ramil-2427 - Ramil-2427 -
Сказал(а) спасибо: 603
Поблагодарили 222 раз(а) в 116 сообщениях
Поинты: 14
Вот и сам индюк
Вложения:
Тип файла: mq4 absolutely no lag lwma.mq4 (1.8 Кб, 10 просмотров)
Ramil-2427 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 27.12.2014, 19:38   #3332 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172

Фундаментальный анализ помогите с кодом!


ребята, привет!
Помогите сделать так, чтобы советник открывал и закрывал сделки по стрелкам.. (воявилась стрелка ввер - открывает покупки и закрывает продажи, если такие есть.. и наоборот) стрелки не рисуются! и появляются на 1-м баре.. по открытию текущего. НУЖНО ЧТОБЫ ТОРГОВАЛ СОВЕТНИК ТОЛЬКО ПО ОТКРЫТИЮ ТЕКУЩЕГО БАРА. Это простейший советник для проверки мат. ожидания от торговли чисто по сигналам индикатора. Сделки открываются с фикс. лотом. Без ТП и СЛ.

Индикатор не могу скинуть, потому как он платный..

у индикатора 2 буфера. 1й- покупки, 2й - продажи

Условия стрелки ВВЕРХ:
на 1-м баре: 1й буфер равен 2му буферу
на 2-м баре: 1й буфер пуст, а 2й буфер не пуст и содержит цену

Условия стрелки ВНИЗ:
на 1-м баре: 1й буфер равен 2му буферу
на 2-м баре: 1й буфер не пуст и содержит цену, а 2й буфер пуст

Должен открывать сделки ТОЛЬКО ПО ОТКРЫТИЮ БАРА! не на каждом тике.

вот я написал код.. но что-то не открываются сделки. Хотя индикатор вызывается корректно и его параметры тоже. (в режиме визуализации индикатор отображается с нужными параметрами)

КОД СОВЕТНИКА


Код:
#property copyright "0ll"
#property strict

input double lot = 0.1;
input int SmoothPeriod = 5;
input int SmoothMethod = 1;
input int TP = 0;
input int SL = 0;

input int Magic = 24011;

int OnInit()
  {
   
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)  {  }

int idir = -1, odir = -1, ocnt = 0;
double opl = 0, bufBuy, bufSell, bufBuy2, bufSell2;

void OnTick()
  {
   if (!NewBar()) return;
   ordCount();
   bufBuy   = iCustom(NULL,0,"Market\\volution",SmoothPeriod,SmoothMethod,0,1,1);
   bufBuy2   = iCustom(NULL,0,"Market\\volution",SmoothPeriod,SmoothMethod,0,1,2);
   bufSell  = iCustom(NULL,0,"Market\\volution",SmoothPeriod,SmoothMethod,0,2,1);
   bufSell2  = iCustom(NULL,0,"Market\\volution",SmoothPeriod,SmoothMethod,0,2,2);
   idir = -1;
   if (bufBuy == bufSell && bufBuy2 == EMPTY_VALUE && bufSell2 != EMPTY_VALUE) idir = OP_BUY;
   if (bufBuy == bufSell && bufBuy2 != EMPTY_VALUE && bufSell2 == EMPTY_VALUE) idir = OP_SELL;
 //  if (odir >= 0 && opl > 2)ordClose(odir);
   if (idir == 1 - odir)
   {
      ordClose(odir);
   }
   if (idir >= 0 && odir < 0) ordOpen(idir);
  }
//+------------------------------------------------------------------+

void ordOpen(int dir)
{
   int tik=-1;
   tik = OrderSend(_Symbol,dir,lot,(dir==OP_BUY?Ask:Bid),10,0,0,"Check_Indi",Magic,0,(dir==OP_BUY?Blue:Red));
   if (tik > 0)
   {
      odir = dir; ocnt = 1;
      OrderSelect(tik, SELECT_BY_TICKET);
      OrderModify(OrderTicket(),OrderOpenPrice(),(dir==OP_BUY?Bid-SL*_Point:Ask+SL*_Point),(dir==OP_BUY?Bid+TP*_Point:Ask-TP*_Point),0);
   }
}

void ordClose(int dir)
{
   if (OrderClose(OrderTicket(),OrderLots(), (dir==OP_BUY?Bid:Ask),10, Gray)) { odir = -1; ocnt = 0; opl = 0; }
}

void ordCount()
{
   int  no;
   odir = -1; ocnt = 0;  opl = 0;
   
   for (no=0; no < OrdersTotal(); no++)                     //Сбор инфы об открытых ордерах
   {
      if (!OrderSelect(no, SELECT_BY_POS, MODE_TRADES))                continue;
      if (!(OrderSymbol()== _Symbol && OrderMagicNumber() == Magic))   continue;
      
      odir = OrderType();
      ocnt++;
      opl += OrderProfit()+OrderCommission()+OrderSwap();
   }
}



bool     NewBar()
{
   static datetime new_Bar;                       
   if (new_Bar == Time[1]) return(false);        //Если бар не закрыт - выход
       new_Bar  = Time[1];
return(true);
}
[свернуть]

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko

Последний раз редактировалось Yura Vakulenko; 27.12.2014 в 19:40.
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.12.2014, 07:56   #3333 (permalink)
 
Аватар для volodymyr67
 
Регистрация: 23.11.2011
Адрес: Львов
Сообщений: 1,396
Репутация: 2258
volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67
Сказал(а) спасибо: 1,645
Поблагодарили 2,257 раз(а) в 803 сообщениях
Поинты: 10
Отправить сообщение для volodymyr67 с помощью Skype™
Сообщение от Yura Vakulenko Посмотреть сообщение
ребята, привет!
Помогите сделать так, чтобы советник открывал и закрывал сделки по стрелкам.. (воявилась стрелка ввер - открывает покупки и закрывает продажи, если такие есть.. и наоборот) стрелки не рисуются! и появляются на 1-м баре.. по открытию текущего. НУЖНО ЧТОБЫ ТОРГОВАЛ СОВЕТНИК ТОЛЬКО ПО ОТКРЫТИЮ ТЕКУЩЕГО БАРА. Это простейший советник для проверки мат. ожидания от торговли чисто по сигналам индикатора. Сделки открываются с фикс. лотом. Без ТП и СЛ.

Индикатор не могу скинуть, потому как он платный..

у индикатора 2 буфера. 1й- покупки, 2й - продажи

Условия стрелки ВВЕРХ:
на 1-м баре: 1й буфер равен 2му буферу
на 2-м баре: 1й буфер пуст, а 2й буфер не пуст и содержит цену

Условия стрелки ВНИЗ:
на 1-м баре: 1й буфер равен 2му буферу
на 2-м баре: 1й буфер не пуст и содержит цену, а 2й буфер пуст

Должен открывать сделки ТОЛЬКО ПО ОТКРЫТИЮ БАРА! не на каждом тике.

вот я написал код.. но что-то не открываются сделки. Хотя индикатор вызывается корректно и его параметры тоже. (в режиме визуализации индикатор отображается с нужными параметрами)

КОД СОВЕТНИКА


Код:
#property copyright "0ll"
#property strict

input double lot = 0.1;
input int SmoothPeriod = 5;
input int SmoothMethod = 1;
input int TP = 0;
input int SL = 0;

input int Magic = 24011;

int OnInit()
  {
   
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)  {  }

int idir = -1, odir = -1, ocnt = 0;
double opl = 0, bufBuy, bufSell, bufBuy2, bufSell2;

void OnTick()
  {
   if (!NewBar()) return;
   ordCount();
   bufBuy   = iCustom(NULL,0,"Market\\volution",SmoothPeriod,SmoothMethod,0,1,1);
   bufBuy2   = iCustom(NULL,0,"Market\\volution",SmoothPeriod,SmoothMethod,0,1,2);
   bufSell  = iCustom(NULL,0,"Market\\volution",SmoothPeriod,SmoothMethod,0,2,1);
   bufSell2  = iCustom(NULL,0,"Market\\volution",SmoothPeriod,SmoothMethod,0,2,2);
   idir = -1;
   if (bufBuy == bufSell && bufBuy2 == EMPTY_VALUE && bufSell2 != EMPTY_VALUE) idir = OP_BUY;
   if (bufBuy == bufSell && bufBuy2 != EMPTY_VALUE && bufSell2 == EMPTY_VALUE) idir = OP_SELL;
 //  if (odir >= 0 && opl > 2)ordClose(odir);
   if (idir == 1 - odir)
   {
      ordClose(odir);
   }
   if (idir >= 0 && odir < 0) ordOpen(idir);
  }
//+------------------------------------------------------------------+

void ordOpen(int dir)
{
   int tik=-1;
   tik = OrderSend(_Symbol,dir,lot,(dir==OP_BUY?Ask:Bid),10,0,0,"Check_Indi",Magic,0,(dir==OP_BUY?Blue:Red));
   if (tik > 0)
   {
      odir = dir; ocnt = 1;
      OrderSelect(tik, SELECT_BY_TICKET);
      OrderModify(OrderTicket(),OrderOpenPrice(),(dir==OP_BUY?Bid-SL*_Point:Ask+SL*_Point),(dir==OP_BUY?Bid+TP*_Point:Ask-TP*_Point),0);
   }
}

void ordClose(int dir)
{
   if (OrderClose(OrderTicket(),OrderLots(), (dir==OP_BUY?Bid:Ask),10, Gray)) { odir = -1; ocnt = 0; opl = 0; }
}

void ordCount()
{
   int  no;
   odir = -1; ocnt = 0;  opl = 0;
   
   for (no=0; no < OrdersTotal(); no++)                     //Сбор инфы об открытых ордерах
   {
      if (!OrderSelect(no, SELECT_BY_POS, MODE_TRADES))                continue;
      if (!(OrderSymbol()== _Symbol && OrderMagicNumber() == Magic))   continue;
      
      odir = OrderType();
      ocnt++;
      opl += OrderProfit()+OrderCommission()+OrderSwap();
   }
}



bool     NewBar()
{
   static datetime new_Bar;                       
   if (new_Bar == Time[1]) return(false);        //Если бар не закрыт - выход
       new_Bar  = Time[1];
return(true);
}
[свернуть]
без индикатора будут долго помогать
нужен индикатор и помоемупроще написать новый сов

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
С уважением Владимир!
http://forexsystems.ru/poleznye-dlya...tml#post467397

ГДЕ ЕСТЬ ЗАКОН - ТАМ НЕТ СВОБОДЫ
volodymyr67 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.12.2014, 15:20   #3334 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172
Сообщение от volodymyr67 Посмотреть сообщение
без индикатора будут долго помогать
нужен индикатор и по моему проще написать новый сов
Вот индикатор. по нему не выходит у меня написать советник.. Работать должен только ПО ОТКРЫТИЮ БАРА! и заключать покупки (закрывать продажи если такие есть) при стрелке вверх. И заключать продажи (закрывать покупки если такие есть) при стрелке вниз. Фиксир. лотом без ТП И СЛ.

КОД СОВЕТНИКА



Код:
#property copyright "l"
#property strict

input double lot = 0.1;
input int Period = 5;
input int TP = 0;
input int SL = 0;

input int Magic = 24011;

int OnInit()
  {
   
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)  {  }

int idir = -1, odir = -1, ocnt = 0;
double opl = 0, bufBuy, bufSell, bufBuy2, bufSell2;

void OnTick()
  {
   if (!NewBar()) return;
   ordCount();
   bufBuy   = iCustom(NULL,0,"Arrows",Period,0,1);
   bufBuy2   = iCustom(NULL,0,"Arrows",Period,0,2);
   bufSell  = iCustom(NULL,0,"Arrows",Period,1,1);
   bufSell2  = iCustom(NULL,0,"Arrows",Period,1,2);
   idir = -1;
   if (bufBuy == bufSell && bufBuy2 == EMPTY_VALUE && bufSell2 != EMPTY_VALUE) idir = OP_BUY;
   if (bufBuy == bufSell && bufBuy2 != EMPTY_VALUE && bufSell2 == EMPTY_VALUE) idir = OP_SELL;
 //  if (odir >= 0 && opl > 2)ordClose(odir);
   if (idir == 1 - odir)
   {
      ordClose(odir);
   }
   if (idir >= 0 && odir < 0) ordOpen(idir);
  }
//+------------------------------------------------------------------+

void ordOpen(int dir)
{
   int tik=-1;
   tik = OrderSend(_Symbol,dir,lot,(dir==OP_BUY?Ask:Bid),10,0,0,"Check_Indi",Magic,0,(dir==OP_BUY?Blue:Red));
   if (tik > 0)
   {
      odir = dir; ocnt = 1;
      OrderSelect(tik, SELECT_BY_TICKET);
      OrderModify(OrderTicket(),OrderOpenPrice(),(dir==OP_BUY?Bid-SL*_Point:Ask+SL*_Point),(dir==OP_BUY?Bid+TP*_Point:Ask-TP*_Point),0);
   }
}

void ordClose(int dir)
{
   if (OrderClose(OrderTicket(),OrderLots(), (dir==OP_BUY?Bid:Ask),10, Gray)) { odir = -1; ocnt = 0; opl = 0; }
}

void ordCount()
{
   int  no;
   odir = -1; ocnt = 0;  opl = 0;
   
   for (no=0; no < OrdersTotal(); no++)                     //Сбор инфы об открытых ордерах
   {
      if (!OrderSelect(no, SELECT_BY_POS, MODE_TRADES))                continue;
      if (!(OrderSymbol()== _Symbol && OrderMagicNumber() == Magic))   continue;
      
      odir = OrderType();
      ocnt++;
      opl += OrderProfit()+OrderCommission()+OrderSwap();
   }
}



bool     NewBar()
{
   static datetime new_Bar;                       
   if (new_Bar == Time[1]) return(false);        //Если бар не закрыт - выход
       new_Bar  = Time[1];
return(true);
}
[свернуть]


Спасибо!
Вложения:
Тип файла: ex4 Arrows.ex4 (7.6 Кб, 11 просмотров)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko

Последний раз редактировалось Yura Vakulenko; 28.12.2014 в 15:45.
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.12.2014, 15:31   #3335 (permalink)
 
Аватар для volodymyr67
 
Регистрация: 23.11.2011
Адрес: Львов
Сообщений: 1,396
Репутация: 2258
volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67 volodymyr67
Сказал(а) спасибо: 1,645
Поблагодарили 2,257 раз(а) в 803 сообщениях
Поинты: 10
Отправить сообщение для volodymyr67 с помощью Skype™
Сообщение от Yura Vakulenko Посмотреть сообщение
Вот индикатор. по нему не выходит у меня написать советник.. Работать должен только ПО ОТКРЫТИЮ БАРА! и заключать покупки (закрывать продажи если такие есть) при стрелке вверх. И заключать продажи (закрывать покупки если такие есть) при стрелке вниз. Фиксир. лотом без ТП И СЛ.

КОД СОВЕТНИКА



Код:
#property copyright "l"
#property strict

input double lot = 0.1;
input int Period = 5;
input int TP = 0;
input int SL = 0;

input int Magic = 24011;

int OnInit()
  {
   
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)  {  }

int idir = -1, odir = -1, ocnt = 0;
double opl = 0, bufBuy, bufSell, bufBuy2, bufSell2;

void OnTick()
  {
   if (!NewBar()) return;
   ordCount();
   bufBuy   = iCustom(NULL,0,"Arrows",Period,0,1);
   bufBuy2   = iCustom(NULL,0,"Arrows",Period,0,2);
   bufSell  = iCustom(NULL,0,"Arrows",Period,1,1);
   bufSell2  = iCustom(NULL,0,"Arrows",Period,1,2);
   idir = -1;
   if (bufBuy == bufSell && bufBuy2 == EMPTY_VALUE && bufSell2 != EMPTY_VALUE) idir = OP_BUY;
   if (bufBuy == bufSell && bufBuy2 != EMPTY_VALUE && bufSell2 == EMPTY_VALUE) idir = OP_SELL;
 //  if (odir >= 0 && opl > 2)ordClose(odir);
   if (idir == 1 - odir)
   {
      ordClose(odir);
   }
   if (idir >= 0 && odir < 0) ordOpen(idir);
  }
//+------------------------------------------------------------------+

void ordOpen(int dir)
{
   int tik=-1;
   tik = OrderSend(_Symbol,dir,lot,(dir==OP_BUY?Ask:Bid),10,0,0,"Check_Indi",Magic,0,(dir==OP_BUY?Blue:Red));
   if (tik > 0)
   {
      odir = dir; ocnt = 1;
      OrderSelect(tik, SELECT_BY_TICKET);
      OrderModify(OrderTicket(),OrderOpenPrice(),(dir==OP_BUY?Bid-SL*_Point:Ask+SL*_Point),(dir==OP_BUY?Bid+TP*_Point:Ask-TP*_Point),0);
   }
}

void ordClose(int dir)
{
   if (OrderClose(OrderTicket(),OrderLots(), (dir==OP_BUY?Bid:Ask),10, Gray)) { odir = -1; ocnt = 0; opl = 0; }
}

void ordCount()
{
   int  no;
   odir = -1; ocnt = 0;  opl = 0;
   
   for (no=0; no < OrdersTotal(); no++)                     //Сбор инфы об открытых ордерах
   {
      if (!OrderSelect(no, SELECT_BY_POS, MODE_TRADES))                continue;
      if (!(OrderSymbol()== _Symbol && OrderMagicNumber() == Magic))   continue;
      
      odir = OrderType();
      ocnt++;
      opl += OrderProfit()+OrderCommission()+OrderSwap();
   }
}



bool     NewBar()
{
   static datetime new_Bar;                       
   if (new_Bar == Time[1]) return(false);        //Если бар не закрыт - выход
       new_Bar  = Time[1];
return(true);
}
[свернуть]


Спасибо!
а открытый код индикатора есть ?
чтоб прорисать его в советник нужно открытый код индикатора !

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
С уважением Владимир!
http://forexsystems.ru/poleznye-dlya...tml#post467397

ГДЕ ЕСТЬ ЗАКОН - ТАМ НЕТ СВОБОДЫ
volodymyr67 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.12.2014, 15:52   #3336 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172
Сообщение от volodymyr67 Посмотреть сообщение
а открытый код индикатора есть ?
чтоб прорисать его в советник нужно открытый код индикатора !
Владимир, в данном случае - открытый код не нужен! Достоточно компилированного! (индикатор не нужно встраивать в советник в виде его исходного кода.) Индикатор будет использоватся - как компилированный отдельный файл. там проще простого! Просто у меня навыки не такие профессиональные как у вас.

Доступ к идикатору будет через ICustom . 2 буфера. 0 - стрелка покупки. 1-Стрелка Продажи

Установите на график и все увидите. Мне только нужно чтобы по Открытому бару торговал! И открывал(закрывал) против. сделки по появлению стрелки. Макс. кол-во ордеров в рынке - 1. СЛ И ТП 0. Лот - фиксированный.

Я и так дал все, что нужно. Открытого кода у меня нету. Тут все просто! но, тем не менее, мне нужна помощь.. не выходит чего-то у меня)

Спасибо! Есть желание и возможность - помогите)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko

Последний раз редактировалось Yura Vakulenko; 28.12.2014 в 15:55.
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.12.2014, 17:53   #3337 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3646
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,650 раз(а) в 1,470 сообщениях
Поинты: 2007
Сообщение от Yura Vakulenko Посмотреть сообщение
Владимир, в данном случае - открытый код не нужен! Достоточно компилированного! (индикатор не нужно встраивать в советник в виде его исходного кода.) Индикатор будет использоватся - как компилированный отдельный файл. там проще простого! Просто у меня навыки не такие профессиональные как у вас.

Доступ к идикатору будет через ICustom . 2 буфера. 0 - стрелка покупки. 1-Стрелка Продажи

Установите на график и все увидите. Мне только нужно чтобы по Открытому бару торговал! И открывал(закрывал) против. сделки по появлению стрелки. Макс. кол-во ордеров в рынке - 1. СЛ И ТП 0. Лот - фиксированный.

Я и так дал все, что нужно. Открытого кода у меня нету. Тут все просто! но, тем не менее, мне нужна помощь.. не выходит чего-то у меня)

Спасибо! Есть желание и возможность - помогите)
Юра, говоришь о стрелках а в предыдущем посте говорил о том, что на первом баре одновременно присутствует значение и первого и второго буфера. Это свойственно двухцветным линейным индикаторам.
Для ясности сделай скрин с индикатором.
Потом, не совсем корректно поставлено условие, хотя это не критично.
Код:
   if (bufBuy == bufSell && bufBuy2 == EMPTY_VALUE && bufSell2 != EMPTY_VALUE) idir = OP_BUY;
   if (bufBuy == bufSell && bufBuy2 != EMPTY_VALUE && bufSell2 == EMPTY_VALUE) idir = OP_SELL;
Для условия достаточно проверки на первом баре сигнал есть а на втором нет.
if(bufBuy != EMPTY_VALUE && bufBuy2 == EMPTY_VALUE)
Потом, не надо наворачивать код дополнительными переменными типа idir = OP_BUY; достаточно после условия вызвать ordOpen(OP_BUY);

И ещё одна недокументированная фишка для закрытия ордера
OrderClose(OrderTicket(),OrderLots(), OrderClosePrice(),10, Gray)
МТ сам разберётся по какой цене Ask или Bid закрывать ордер в зависимости от типа ордера.

Последний раз редактировалось AlexeyVik; 28.12.2014 в 18:01.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Yura Vakulenko (28.12.2014)
Старый 28.12.2014, 18:12   #3338 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172
Сообщение от AlexeyVik Посмотреть сообщение
Юра, говоришь о стрелках а в предыдущем посте говорил о том, что на первом баре одновременно присутствует значение и первого и второго буфера. Это свойственно двухцветным линейным индикаторам.
Для ясности сделай скрин с индикатором.
Потом, не совсем корректно поставлено условие, хотя это не критично.
Код:
   if (bufBuy == bufSell && bufBuy2 == EMPTY_VALUE && bufSell2 != EMPTY_VALUE) idir = OP_BUY;
   if (bufBuy == bufSell && bufBuy2 != EMPTY_VALUE && bufSell2 == EMPTY_VALUE) idir = OP_SELL;
Для условия достаточно проверки на первом баре сигнал есть а на втором нет.
if(bufBuy != EMPTY_VALUE && bufBuy2 == EMPTY_VALUE)
Потом, не надо наворачивать код дополнительными переменными типа idir = OP_BUY; достаточно после условия вызвать ordOpen(OP_BUY);

И ещё одна недокументированная фишка для закрытия ордераOrderClose(OrderTicket(),OrderLots(), OrderClosePrice(),10, Gray)МТ сам разберётся по какой цене Ask или Bid закрывать ордер в зависимости от типа ордера.
Вот!! наконец-то что-то по сути моего вопроса! Я выложил просто индикатор как для примера! В моем случае- индикатор действительно многоцветный! Вот смотрите на скрине. Реальный индикатор я не могу кинуть! Он платный! Вы его не запустите, так как у вас нету лицензии на этот ПК и торговый счет.. ! поэтом я скинул вам простой индикатор, как для примера..

вот скрин реального индикатора..

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

[свернуть]


дело в том, что у меня вообще никакие ордера не открываются! даже, когда я вставил в советник этоn индикатор из примера (ARROWS.EX4) и изменил условия открытия на

if (bufBuy != EMPTY_VALUE && bufBuy2 == EMPTY_VALUE ) idir = OP_BUY;
if (bufSell != EMPTY_VALUE && bufSell2 == EMPTY_VALUE) idir = OP_SELL;

все-равно ни один ордер не открылся и ни ошибок и ничего не пишет в журнале. хотя, индикатор был успешно инициализирован и добавлен на график. Я вам скинул тестовый индикатор, чтобы на примере его вы смогли поправить мой код, для открытия сделок по ЦЕНАМ ОТКРЫТИЯ БАРА! И закрытия открытой позиции при против. сигнале! Т.е. суть советника - проверка мат. ожиданий от сигналов индиктора.

Реальный же индикатор
, по которому будет идти проверка - это то, который на скрине..
и условия открытия сделок для него такие

у индикатора 2 буфера. 1й- покупки, 2й - продажи

Условия стрелки ВВЕРХ: Открытие покупки (закрытие продажи, если открыта)
на 1-м баре: 1й буфер равен 2му буферу
на 2-м баре: 1й буфер пуст, а 2й буфер не пуст и содержит цену

Условия стрелки ВНИЗ: Открытие продажи (закрытие покупки, если открыта)
на 1-м баре: 1й буфер равен 2му буферу
на 2-м баре: 1й буфер не пуст и содержит цену, а 2й буфер пуст

Должен открывать сделки ТОЛЬКО ПО ОТКРЫТИЮ БАРА! не на каждом тике.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko

Последний раз редактировалось Yura Vakulenko; 28.12.2014 в 18:38.
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.12.2014, 19:39   #3339 (permalink)
Abi
Элитный участник
 
Аватар для Abi
 
Регистрация: 21.12.2010
Адрес: Kz Казахстан
Сообщений: 970
Репутация: 1695
Abi Abi Abi Abi Abi Abi Abi Abi Abi Abi Abi
Сказал(а) спасибо: 552
Поблагодарили 1,693 раз(а) в 559 сообщениях
Поинты: 551
Стрелки кто рисует на чарте? Вы или индюк?

Если рисует индюк - можно сделать проще ваш советник.
Нужно просто делать поиск стрелки на первом баре, есть стрелка 233 - значит бай и закрываем селл, есть стрелка 234 - селл и закрываем бай.
Abi вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.12.2014, 19:58   #3340 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172
Сообщение от Abi Посмотреть сообщение
Стрелки кто рисует на чарте? Вы или индюк?

Если рисует индюк - можно сделать проще ваш советник.
Нужно просто делать поиск стрелки на первом баре, есть стрелка 233 - значит бай и закрываем селл, есть стрелка 234 - селл и закрываем бай.
Читайте внимательно постановку вопроса!!
Сообщение от Yura Vakulenko Посмотреть сообщение
Это простейший советник для проверки мат. ожидания от торговли чисто по сигналам индикатора.
И не задавайте глупых вопросов! я уже запарился объяснять!! и код выложил, и индикатор для примера.. и четко описал условия входа-выхода. условия расчета лотов.. и прочего.

СТРЕЛКИ РИСУЕТ ИНДИКАТОР! НЕ Я РУКАМИ ИХ РИСУЮ.

не вижу простоты в вашем предложении (Насчет поиска кодов стрелок.. я рассчитываю сделать универсальный советник для проверки множества индикаторов.. а у разных индикаторов будут свои коды стрелок.. а если он кружки рисовать будет или треугольники.. )

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko

Последний раз редактировалось Yura Vakulenko; 28.12.2014 в 20:07.
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

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

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



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


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