Ответ
 
Опции темы
Старый 27.12.2014, 21:57   #961 (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 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.12.2014, 12:38   #962 (permalink)
Местный житель
 
Аватар для Ramil-2427
 
Регистрация: 12.04.2013
Адрес: Башкортостан, г.Октябрьский
Сообщений: 523
Репутация: 222
Ramil-2427 - Ramil-2427 - Ramil-2427 -
Сказал(а) спасибо: 603
Поблагодарили 222 раз(а) в 116 сообщениях
Поинты: 14
Будьте добры сделать из него TMA или хоть подскажите как!
Вложения:
Тип файла: mq4 MA Candles.mq4 (4.3 Кб, 19 просмотров)
Ramil-2427 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Jimmylim666 (08.03.2015)
Старый 28.12.2014, 14:39   #963 (permalink)
 
Аватар для mobidik
 
Регистрация: 09.08.2012
Адрес: Ua_Khm
Сообщений: 1,648
Репутация: 8552
mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik
Сказал(а) спасибо: 633
Поблагодарили 8,548 раз(а) в 1,562 сообщениях
Поинты: 802
Сообщение от mickael58 Посмотреть сообщение
пожалуйста, кто-то может изменить этот признак и добавить оповещения по электронной почте, чтобы покупать и продавать?
AlertsMessage, AlertsSound, AlertsEmail, AlertsNotification & SignalBar:
Миниатюры:
Нажмите на изображение для увеличения
Название: RibbonTrader.png
Просмотров: 185
Размер:	57.8 Кб
ID:	189767  
Вложения:
Тип файла: mq4 RibbonTrader_alerts.mq4 (6.3 Кб, 83 просмотров)

Последний раз редактировалось mobidik; 28.12.2014 в 14:50.
mobidik на форуме   Ответить с цитированиемОтветить с цитированием  
9 пользователя(ей) сказали cпасибо:
Jimmylim666 (08.03.2015), kamilkz (29.12.2014), Ladzius (28.12.2014), mickael58 (28.12.2014), oliva1 (28.12.2014), Riksha (29.12.2014), tradework (29.12.2014), Vladimir1 (29.12.2014), Капиталист (29.12.2014)
Старый 28.12.2014, 15:26   #964 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172

Вопрос Нужна помощь!



Вот индикатор. по нему не выходит у меня написать советник.. Работать должен только ПО ОТКРЫТИЮ БАРА! и заключать покупки (закрывать продажи если такие есть) при стрелке вверх. И заключать продажи (закрывать покупки если такие есть) при стрелке вниз. Фиксир. лотом без ТП И СЛ.

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



Код:
#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.7 Кб, 64 просмотров)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Ramil-2427 (29.12.2014)
Старый 28.12.2014, 16:21   #965 (permalink)
Активный участник
 
Аватар для mickael58
 
Регистрация: 19.04.2014
Сообщений: 71
Репутация: 31
mickael58
Сказал(а) спасибо: 22
Поблагодарили 30 раз(а) в 15 сообщениях
Поинты: 22
Сообщение от mobidik Посмотреть сообщение
AlertsMessage, AlertsSound, AlertsEmail, AlertsNotification & SignalBar:
спасибо, спасибо, спасибо, спасибо, вы действительно здорово !!!!!
mickael58 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
mobidik (28.12.2014)
Старый 28.12.2014, 19:42   #966 (permalink)
Местный знаток
 
Аватар для Vyacheslav88
 
Регистрация: 30.01.2014
Сообщений: 278
Репутация: 983
Vyacheslav88 - Vyacheslav88 - Vyacheslav88 - Vyacheslav88 - Vyacheslav88 - Vyacheslav88 - Vyacheslav88 - Vyacheslav88 -
Сказал(а) спасибо: 424
Поблагодарили 982 раз(а) в 178 сообщениях
Поинты: 46
Здравствуйте Yura Vakulenko. Нашёл на просторах интернета.
Вложения:
Vyacheslav88 на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
parohod (29.12.2014)
Старый 28.12.2014, 20:08   #967 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172
Сообщение от Vyacheslav88 Посмотреть сообщение
Здравствуйте Yura Vakulenko. Нашёл на просторах интернета.
Огромное спасибо, Друг! сейчас разберусь))

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Vyacheslav88 (29.12.2014)
Старый 28.12.2014, 23:27   #968 (permalink)
Интересующийся
 
Аватар для sordex2
 
Регистрация: 20.03.2011
Сообщений: 6
Репутация: 2
sordex2
Сказал(а) спасибо: 16
Поблагодарили 1 раз в 1 сообщении
Поинты: 12
Делаю репост поста. Всех участников форума, поздравляю с наступающими праздниками!
Уважаемые програмисты прошу доработать советник Forex Transporter.mq4, чтобы он открывал ордера по показаниям этого индикатора THV3 Trix v4.01 Div.mq4 . Заранее большое спасибо.
sordex2 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.12.2014, 06:12   #969 (permalink)
Местный знаток
 
Аватар для jenzo
 
Регистрация: 10.07.2014
Сообщений: 486
Репутация: 555
jenzo - jenzo - jenzo - jenzo - jenzo - jenzo -
Сказал(а) спасибо: 194
Поблагодарили 554 раз(а) в 143 сообщениях
Поинты: 12
Ребята, если есть выведите настройки пожалуйста
Вложения:
Тип файла: mq4 5 bar reversal.mq4 (2.9 Кб, 34 просмотров)
jenzo на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Jimmylim666 (09.03.2015)
Старый 29.12.2014, 08:53   #970 (permalink)
Элитный участник
 
Аватар для oliva1
 
Регистрация: 19.01.2011
Сообщений: 479
Репутация: 1193
oliva1 oliva1 oliva1 oliva1 oliva1 oliva1 oliva1 oliva1 oliva1
Сказал(а) спасибо: 339
Поблагодарили 1,194 раз(а) в 380 сообщениях
Поинты: 188
Уважаемые!
Просьба поправить инкикатор.
Показывает ТП и СЛ, но не показывает от какого уровня и в какую сторону.
Пожалуйста!
Вложения:
Тип файла: rar Info.rar (4.5 Кб, 21 просмотров)
oliva1 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.12.2014, 10:25   #971 (permalink)
Активный участник
 
Аватар для Dominowka
 
Регистрация: 13.02.2012
Сообщений: 170
Репутация: 119
Dominowka Dominowka
Сказал(а) спасибо: 94
Поблагодарили 118 раз(а) в 43 сообщениях
Поинты: 18
Всех с наступающим помогите не видит терминал.
Вложения:
Тип файла: ex4 VHT.ex4 (22.1 Кб, 33 просмотров)
Dominowka на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Jimmylim666 (09.03.2015)
Старый 29.12.2014, 10:37   #972 (permalink)
Элитный участник
 
Аватар для oliva1
 
Регистрация: 19.01.2011
Сообщений: 479
Репутация: 1193
oliva1 oliva1 oliva1 oliva1 oliva1 oliva1 oliva1 oliva1 oliva1
Сказал(а) спасибо: 339
Поблагодарили 1,194 раз(а) в 380 сообщениях
Поинты: 188
Сообщение от Dominowka Посмотреть сообщение
Всех с наступающим помогите не видит терминал.
Помочь могут только имея исходник формата .mq4!!!
oliva1 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.12.2014, 11:21   #973 (permalink)
Почётный гражданин
 
Аватар для kipjatok001
 
Регистрация: 13.09.2012
Сообщений: 425
Репутация: 377
kipjatok001 - kipjatok001 - kipjatok001 - kipjatok001 -
Сказал(а) спасибо: 284
Поблагодарили 376 раз(а) в 97 сообщениях
Поинты: 204
Ребята, всем Привет. Доработайте пожалуйста прибыльный советник.
Нужно сделать:
1. ТП Каждого ордера
2. Мартингейл выставления ордеров (каждый следующий ордер в х раз больше следующего)
3.Хорошой полноценный тралл
Заранее спасибо всем откликнувшимся.
С Наступающим
RS 7v_cool.mq4
kipjatok001 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Jimmylim666 (09.03.2015)
Старый 29.12.2014, 12:08   #974 (permalink)
Активный участник
 
Аватар для Dominowka
 
Регистрация: 13.02.2012
Сообщений: 170
Репутация: 119
Dominowka Dominowka
Сказал(а) спасибо: 94
Поблагодарили 118 раз(а) в 43 сообщениях
Поинты: 18
Сообщение от oliva1 Посмотреть сообщение
Помочь могут только имея исходник формата .mq4!!!
Если б он был..
Dominowka на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 29.12.2014, 12:18   #975 (permalink)
Элитный участник
 
Аватар для oliva1
 
Регистрация: 19.01.2011
Сообщений: 479
Репутация: 1193
oliva1 oliva1 oliva1 oliva1 oliva1 oliva1 oliva1 oliva1 oliva1
Сказал(а) спасибо: 339
Поблагодарили 1,194 раз(а) в 380 сообщениях
Поинты: 188
Сообщение от Dominowka Посмотреть сообщение
Если б он был..
Попробуй сам починить машину не прикасаясь к ней!!!
Это то, что ты просишь! Полная аналогия!
oliva1 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.12.2014, 12:37   #976 (permalink)
Местный житель
 
Аватар для Ramil-2427
 
Регистрация: 12.04.2013
Адрес: Башкортостан, г.Октябрьский
Сообщений: 523
Репутация: 222
Ramil-2427 - Ramil-2427 - Ramil-2427 -
Сказал(а) спасибо: 603
Поблагодарили 222 раз(а) в 116 сообщениях
Поинты: 14
Сообщение от Dominowka Посмотреть сообщение
Всех с наступающим помогите не видит терминал.
У меня все нормально отображается!
Ramil-2427 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.12.2014, 13:08   #977 (permalink)
Активный участник
 
Аватар для Dominowka
 
Регистрация: 13.02.2012
Сообщений: 170
Репутация: 119
Dominowka Dominowka
Сказал(а) спасибо: 94
Поблагодарили 118 раз(а) в 43 сообщениях
Поинты: 18
Сообщение от oliva1 Посмотреть сообщение
Попробуй сам починить машину не прикасаясь к ней!!!
Это то, что ты просишь! Полная аналогия!
Мог бы просто написать что нет открывашки
Dominowka на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 29.12.2014, 16:11   #978 (permalink)
Активный участник
 
Аватар для Yura Vakulenko
 
Регистрация: 04.12.2013
Адрес: Швейцария, Cham
Сообщений: 129
Репутация: 77
Yura Vakulenko
Сказал(а) спасибо: 62
Поблагодарили 76 раз(а) в 39 сообщениях
Поинты: 172
подскажите, как мне изменить код советника, чтобы была соблюдена следующая логика закрытия позиций. Для большей наглядности - я все изобразил на картинках.

Позиция закрывается полностью (100% объема) по противоположному сигналу (Большая КРАСНАЯ \ СИНЯЯ стрелки) и позиция закрывается частично по дополнительным сигналам (Маленькие желтые\синие стрелки). Все стрелки формируются на 1-м баре. И советник работает только по открытию бара.

т.е. Основной сигнал на закрытие позиции (и открытие противоположной) - это БОЛЬШИЕ СТРЕЛКИ

Дополнительный сигнал на закрытие Основной позиции - это маленькие стрелки. (Желтая малая стрелка - закрытие продаж. Синяя малая стрелка - закрытие покупок.)

Логика закрытия:

за начальную точку отсчета берется время открытия основной позиции. Одновременно в рынке может быть открыта 1 основная позиция ( по ОСНОВНОМУ СИГНАЛУ - БОЛЬШИЕ СТРЕЛКИ)

Малые стрелки, чтобы использовать их в роли доп. сигнала на закрытие - должны появится только после открытия основной позиции.

появилась 1-я малая стрелка - закрываем 25 % основной позиции. (при условии, что цена открытия нового бара, после появления малой стрелки больше\меньше внешней переменной N ). Если условие верно, тогда закрываем 25% основной позиции. Если не верно - тогда закрываем 0% основной позиции. На данном этапе закрыто или 0% или 25% основной позиции.

появилась 2-я малая стрелка - закрываем еще 25% основной позиции. (при условии, что на первой стрелке уже было закрытие 25 % основной позиции. если же такого закрытия не было, тогда закрываем 50% основной позиции.) На данном этапе закрыто или 50% основной позиции.

появилась 3-я малая стрелка - закрываем еще 25% основной позиции.
На данном этапе закрыто или 75% основной позиции.

появилась 4-я малая стрелка - закрываем еще 25% основной позиции. На данном этапе закрыто 100% основной позиции. Т.е. ордер закрыт. 4-я стрелка появляется крайне редко! в основном их только 3. и оставшиеся 25% позиции, после первых 3-х стрелок закрываются по основному противоположному сигналу.

если же не появилось ни одной из малых стрелок, тогда позиция закрывается на 100% по против. основному сигналу.

Для того, чтобы логика закрытия была более понятной - я сделал рисунки с детальными подписями.. и там в местах закрытия подписал, какая часть позиции должна быть закрыта. Все соответсвует текущему словесному описанию алгоритма.

Условие появления доп. стрелок - я смогу составить и сам.. но, я, к сожалению, не смогу вам скинуть индикатор, который их рисует, все по той же причине - он привязан к моему ПК и счету и на другом ПК и счете работать не будет..

Помогите встроить такую функцию в код советника.

а вот текущий код советника..

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


//+------------------------------------------------------------------+
//| indicator_test.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
//--------------------------------------------------------------------
extern int SmoothPeriod = 5,
SmoothMethod = 1,
Notify = 0;
extern double stoploss = 0,
takeprofit = 0,
TrailingStop = 0;
extern double LOT = 0.1;
extern bool Close_on_Oposite = true;
extern bool Buy_allow = true;
extern bool Sell_allow = true;
extern bool mode_reverse = false;
//--------------------------------------------------------------------
int STOPLEVEL,Magic=1234567890;


//--------------------------------------------------------------------

int OnInit()
{

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


void OnTick()
{
if (!NewBar()) return;
STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
if (TrailingStop>=STOPLEVEL) TrailingStop();

double bufBuy, bufBuy2,bufSell,bufSell2;

//bufBuy = iCustom(NULL,0,"Arrows",SmoothPeriod,0,1);
//bufSell = iCustom(NULL,0,"Arrows",SmoothPeriod,1,1);

bufBuy = iCustom(NULL,0,"Market\\evolution",SmoothPeriod,SmoothMethod,Notify,0,1);
bufBuy2 = iCustom(NULL,0,"Market\\evolution",SmoothPeriod,SmoothMethod,Notify,0,2);
bufSell = iCustom(NULL,0,"Market\\evolution",SmoothPeriod,SmoothMethod,Notify,1,1);
bufSell2 = iCustom(NULL,0,"Market\\evolution",SmoothPeriod,SmoothMethod,Notify,1,2);

double SL,TP;
if (Buy_allow)
{
if (bufBuy==bufSell && bufSell2 !=0 && bufBuy2 == 0)//if (bufBuy != 0 && bufSell == 0 )//
{
if (!mode_reverse)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Bid - stoploss*Point,Digits); else SL = 0;
if (Close_on_Oposite) CLOSEORDER(OP_SELL);
int tik_buy = OrderSend(Symbol(),OP_BUY,LOT,NormalizeDouble(Ask,Digits),2,SL,TP,"Ind check buy",Magic,0,clrBlue);
if(tik_buy>0)
{
if(OrderSelect(tik_buy,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY order #",tik_buy," opened : ",NormalizeDouble(OrderOpenPrice(),Digits));
}
else
Print("Error opening BUY order #",tik_buy," : ",GetLastError());
}

else

{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Ask + stoploss*Point,Digits); else SL = 0;
if (Close_on_Oposite) CLOSEORDER(OP_BUY);
int tik_sell_on_reverse_buy = OrderSend(Symbol(),OP_SELL,LOT,NormalizeDouble(Bid,Digits),2,SL,TP,"Ind check sell",Magic,0,clrRed);
if(tik_sell_on_reverse_buy>0)
{
if(OrderSelect(tik_sell_on_reverse_buy,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order #",tik_sell_on_reverse_buy," opened : ",NormalizeDouble(OrderOpenPrice(),Digits));
}
else
Print("Error opening SELL order #",tik_sell_on_reverse_buy," : ",GetLastError());

}

}
}

if (Sell_allow)
{
if (bufBuy==bufSell && bufSell2 ==0 && bufBuy2 != 0)//if (bufSell != 0 && bufBuy == 0)//
{
if (!mode_reverse)
{

if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Ask + stoploss*Point,Digits); else SL = 0;
if (Close_on_Oposite) CLOSEORDER(OP_BUY);
int tik_sell = OrderSend(Symbol(),OP_SELL,LOT,NormalizeDouble(Bid,Digits),2,SL,TP,"Ind check sell",Magic,0,clrRed);
if(tik_sell>0)
{
if(OrderSelect(tik_sell,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order #",tik_sell," opened : ",NormalizeDouble(OrderOpenPrice(),Digits));
}
else
Print("Error opening SELL order #",tik_sell," : ",GetLastError());

}

else

{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Bid - stoploss*Point,Digits); else SL = 0;
if (Close_on_Oposite) CLOSEORDER(OP_SELL);
int tik_buy_on_reverse_sell = OrderSend(Symbol(),OP_BUY,LOT,NormalizeDouble(Ask,Digits),2,SL,TP,"Ind check buy",Magic,0,clrBlue);
if(tik_buy_on_reverse_sell>0)
{
if(OrderSelect(tik_buy_on_reverse_sell,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY order #",tik_buy_on_reverse_sell," opened : ",NormalizeDouble(OrderOpenPrice(),Digits));
}
else
Print("Error opening BUY order #",tik_buy_on_reverse_sell," : ",GetLastError());

}
}
}

//return (0);
}
//--------------------------------------------------------------------
void CLOSEORDER(int ord)
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if (OrderType()==OP_BUY && ord==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3,CLR_NONE);
if (OrderType()==OP_SELL && ord==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,CLR_NONE);
}
}
}
}
//--------------------------------------------------------------------
void TrailingStop()
{
int tip,Ticket;
double StLo,OSL,OOP;
for (int i=0; i<OrdersTotal(); i++)
{ if (OrderSelect(i, SELECT_BY_POS)==true)
{ tip = OrderType();
if (tip<2 && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
OSL = NormalizeDouble(OrderStopLoss(),Digits);
OOP = NormalizeDouble(OrderOpenPrice(),Digits);
Ticket = OrderTicket();
if (tip==OP_BUY)
{
StLo = NormalizeDouble(Bid-TrailingStop*Point,Digits);
if (StLo > OSL && StLo > OOP)
{ if (!OrderModify(Ticket,OOP,StLo,OrderTakeProfit(),0,White))
Print("TrailingStop Error ",GetLastError()," buy SL ",OSL,"->",StLo);
}
}
if (tip==OP_SELL)
{
StLo = NormalizeDouble(Ask+TrailingStop*Point,Digits);
if (StLo > OOP || StLo==0) continue;
if (StLo < OSL || OSL==0 )
{ if (!OrderModify(Ticket,OOP,StLo,OrderTakeProfit(),0,White))
Print("TrailingStop Error ",GetLastError()," sell SL ",OSL,"->",StLo);
}
}
}
}
}

}

//--------------------------------------------------------------------

bool NewBar()
{
static datetime new_Bar;
if (new_Bar == Time[1]) return(false); //Если бар не закрыт - выход
new_Bar = Time[1];
return(true);
}
[свернуть]
Миниатюры:
Нажмите на изображение для увеличения
Название: close_logic_GBPUSDproM30_1.png
Просмотров: 203
Размер:	52.3 Кб
ID:	189890   Нажмите на изображение для увеличения
Название: close_logic_GBPUSDproM30_2.png
Просмотров: 104
Размер:	51.1 Кб
ID:	189891  

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Музыка веков в звуках рояля - https://soundcloud.com/yura-vakulenko
Yura Vakulenko вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.12.2014, 18:15   #979 (permalink)
Местный знаток
 
Аватар для olegkrg
 
Регистрация: 01.08.2012
Сообщений: 365
Репутация: 594
olegkrg - olegkrg - olegkrg - olegkrg - olegkrg - olegkrg -
Сказал(а) спасибо: 311
Поблагодарили 591 раз(а) в 148 сообщениях
Поинты: 96
Вылечите больного....Всех с наступающим Новым годом!
Вложения:
Тип файла: mq4 Woodie_CCI_Adv.1.0.mq4 (22.5 Кб, 33 просмотров)
olegkrg вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Jimmylim666 (09.03.2015)
Старый 29.12.2014, 18:33   #980 (permalink)
Прохожий
 
Аватар для John174RUS
 
Регистрация: 29.11.2014
Сообщений: 2
Репутация: 1
John174RUS
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 4
Всем привет !
у меня с советником полная печалка может кто посмотрит

он открывает ордера СЕЛЛ, даже там где должен открывать БАЙ
И еще проблемка как сделать чтоб ордер СЕЛЛ с лотом 0.02 открывался на ТЕЙК ПРОФИТЕ ордераСЕЛЛ с лотом 0.04 и только один раз,а то его вышибает СТОП ЛОССОМ и он тут же повторяет сделку???
Советник писал с индикатора TMA with Distances.mq4

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

//+------------------------------------------------------------------+
//| Сова TMA Probnik.mq4 |
//| Copyright 2014, MetaQuotes Software Corp. |
//| _https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link "_https://www.mql5.com"
#property version "1.00"
#property strict
#define MAGIC 1234
#define IDENT "mo_bidir"

extern double Lots =0.04;
extern double Lot =0.02;
extern double Lot2 =0.01;
extern int TakeProfit =15;
extern int StopLoss = 15;
extern int Slippage = 5;
extern string comment ="Tma bot";
extern int Megic =123;
extern string Indi ="Данные индикатора";
extern string TimeFrame ="current time frame";
extern int HalfLength =56;
extern int Price =PRICE_CLOSE;
extern double ATRMultiplier =2.0;
extern int ATRPeriod =100;
extern bool Interpolate =true;

double PRICE_HIGH2,PRICE_LOW2,SL,TP,SL1,TP1;

int last_bar=0;

int ticket;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
if(Digits==3 || Digits==5)
{
TakeProfit *=10;
StopLoss *= 10;
Slippage *= 10;
}

return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
{
PRICE_HIGH2= iCustom(Symbol(),0,"Tma",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0);
PRICE_LOW2 = iCustom(Symbol(),0,"Tma",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0);
}

if(OrdersTotal() && CountSell()==0)

SL = NormalizeDouble(Bid+StopLoss * Point, Digits);
TP = NormalizeDouble(Ask-StopLoss * Point, Digits);

ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,Bid+StopLoss*Point,Ask-StopLoss*Point,IDENT,MAGIC,0,Red);
if(ticket>0)

if(Bid>=PRICE_HIGH2 && CountSell()==0)
{
{
SL = NormalizeDouble(Bid + StopLoss * Point, Digits);
TP = NormalizeDouble(Bid - TakeProfit * Point, Digits);

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,comment,Megic,0,Magenta);
if(ticket>0)

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
bool modify=OrderModify(ticket,OrderOpenPrice(),SL,TP,0);
}

}

if(Ask<=PRICE_LOW2 && CountBuy()==0)
{
SL = NormalizeDouble(Ask - StopLoss * Point, Digits);
TP = NormalizeDouble(Bid + StopLoss * Point, Digits);

ticket=OrderSend(Symbol(),OP_BUY,Lot2,Ask,Slippage,0,0,comment,Megic,0,Blue);
if(ticket<0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
bool modify=OrderModify(ticket,OrderOpenPrice(),SL,TP,0);
}

}

if(Ask<=PRICE_LOW2 && CountSell()>0)
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderMagicNumber()==Megic && OrderType()==OP_SELL)
bool close=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Black);
}
}
}

if(Bid>=PRICE_HIGH2 && CountBuy()>0)
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderMagicNumber()==Megic && OrderType()==OP_BUY)
bool close=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Black);
}
}
}
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int CountSell()
{
int count=0;
for(int trade=OrdersTotal()-1; trade>=0; trade--)
{
bool select=OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic)
{
if(OrderType()==OP_SELL)
count++;
}
}

return(count);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int CountBuy()
{
int count=0;
for(int trade=OrdersTotal()-1; trade>=0; trade--)
{
bool select=OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic)
{
if(OrderType()==OP_BUY)
count++;
}
}
return(count);
}
//+------------------------------------------------------------------+
[свернуть]

Последний раз редактировалось NSerega; 29.12.2014 в 19:07.
John174RUS вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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