Закрытая тема
03.11.2011, 13:56
Аватар для lg.ghost
lg.ghost lg.ghost вне форума Интересующийся
Регистрация: 24.01.2011 / Сообщений: 2
Поблагодарили 2 раз(а) / Репутация: 3
Доброго времени суток уважаемые. пожалуйста сделайте чтоб советник работал по времени
03.11.2011, 17:26
Аватар для TvikN
TvikN TvikN вне форума Активный участник
Регистрация: 30.01.2011 / Сообщений: 183
Поблагодарили 56 раз(а) / Репутация: 57
Господа программисты,очень Вас прошу немного переделать индикатор.Нужно вместо обычных вееров сделать только одну линию 85,4 или,хотя бы просто добавить ее к существующим и вынести в настройки тип и цвет ВСЕХ линий.Заранее огромное спасибо.
04.11.2011, 06:43
Аватар для venamax
venamax venamax вне форума = ##$$$## =
Регистрация: 27.04.2010 / Адрес: Russia / Сообщений: 371
Поблагодарили 1,490 раз(а) / Репутация: 1500
Уважаемые, помогите пожалуйста, добавить в советник функцию максимально разрешенного к открытию лота для торговли, чтобы в настройках можно было также задавать этот параметр - к примеру MaxLots=100;
06.11.2011, 13:16
Аватар для vadimkz
vadimkz vadimkz вне форума Активный участник
Регистрация: 17.06.2011 / Адрес: Казахстан Караганда / Сообщений: 72
Поблагодарили 142 раз(а) / Репутация: 143

По умолчанию Помогите с кодом!

Доброго времени суток!
Помогите разобраться, где ошибка!
if(OrderSell>1)
{
for(cnt=0;cnt<OrdersTotal();cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==tru e)
if(OrderType()==OP_SELL && OrderProfit()<-Spred && OP>MA33 && CL<MA33)
{
for(q=0;q<1;q++)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderSt opLoss(),Bid-TP*Point,Red);
OrderSend(Symbol(), OP_SELL, Lots*5, Bid, Slip, Bid+SL*Point, Bid-TP*Point, "Ордер SELL",Red);
}
}
}
}
if(OrderBuy>1)
{
for(cnt=0;cnt<OrdersTotal();cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==tru e)
if(OrderType()==OP_BUY && OrderProfit()<-Spred && OP<MA33 && CL>MA33)
{
for(q=0;q<1;q++)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderSt opLoss(),Ask+TP*Point,Red);
OrderSend(Symbol(), OP_BUY, Lots*5, Ask, Slip, Ask-SL*Point, Ask+TP*Point, "Ордер BUY",Green);
}
}
}
}

Вот по этому коду открывает много ордеров, вместо одного, и модификация тоже каждого ордера не нужна с каждым тиком.
получается, что цикл for(q=0;q<1;q++) не работает.
Что ему ещё нужно?
Зраранее благодарю за помощь!
07.11.2011, 12:55
Аватар для infoalex0004
infoalex0004 infoalex0004 вне форума Интересующийся
Регистрация: 17.07.2011 / Сообщений: 6
Поблагодарили 0 раз(а) / Репутация: 1

По умолчанию Ребята помогите доработать советника

Это простой советник, пересечении трех машек.
Сейчас в советнике присутствую следующие параметры:

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

lots - объем торговой операции
fast_ma_period - период быстрой скользящей средней (Moving Average)
medium_ma_period - период средней линии скользящей средней (Moving Average)
slow_ma_period - период медленной скользящей средней (Moving Average)
ma_method - Метод усреднения индикатора MA. (0 - Простое скользящее среднее; 1 - Экспоненциальное скользящее среднее; 2 - Сглаженное скользящее среднее; 3 - Линейно-взвешенное)
applied_price - Используемая цена индикатора. (0 - Цена закрытия; 1 - Цена открытия; 2 - Максимальная цена; 3 - Минимальная цена; 4 - Средняя цена, (high+low)/2; 5 - Типичная цена, (high+low+close)/3; 6 - Взвешенная цена закрытия, (high+low+close+close)/4)
close_variant - Вариант закрытия позиций(0 - любое пересечение; 1 - закрываем при пересечении быстрой и медленной линии МА; 2 - закрываем при пересечении быстрого и среднего индикаторов)
take_profit - значение уровня прибыльности (take profit) для открываемого ордера (0 - не использовать take profit).
stop_loss - значение уровня убыточности (stop loss) для открываемого ордера (0 - не использовать stop loss).

Что бы хотелось:

1. Возможность выстаыления время работы советника
2. Возможность выставления трала , а так же его отключения.

Зарание огромное СПАСИБО, кто поможет.

Сам код советника:

//+------------------------------------------------------------------+
//| 3MA_.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright "3MA"


#define magic 2342002

//---- input parameters
extern double lots=0.1;
extern int fast_ma_period=10;
extern int medium_ma_period=25;
extern int slow_ma_period=50;
extern int ma_method=0;
extern int applied_price=0;
extern int close_variant = 2;
extern int take_profit=0;
extern int stop_loss=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
bool can_buy = false, can_sell = false;
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double fma_prev=double iMA( Symbol(), 0, fast_ma_period, 0, ma_method, applied_price, 2);
double fma_next=double iMA( Symbol(), 0, fast_ma_period, 0, ma_method, applied_price, 1);

double mma_prev=double iMA( Symbol(), 0, medium_ma_period, 0, ma_method, applied_price, 2);
double mma_next=double iMA( Symbol(), 0, medium_ma_period, 0, ma_method, applied_price, 1);

double sma_prev=double iMA( Symbol(), 0, slow_ma_period, 0, ma_method, applied_price, 2);
double sma_next=double iMA( Symbol(), 0, slow_ma_period, 0, ma_method, applied_price, 1);

//----
int i;
int err;

//закрываем при пересечени быстрой и медленной
if (close_variant == 1 || close_variant == 0)
{
//закрываем SELL orders
if (fma_prev<=sma_prev && fma_next>sma_next && ChekForOrders(OP_SELL) > 0)
{
for(i=0;i<OrdersTotal();i++)
{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
if ( OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==magic)
if (OrderClose(OrderTicket(),OrderLots(),Ask,0,Red)==false)
{
//если не получилось закрыть
err=GetLastError();
Print("OrderSend failed with error #",err);
}
}
}
//закрываем BUY orders
if (fma_prev>=sma_prev && fma_next<sma_next && fma_next<mma_next && ChekForOrders(OP_SELL)==0)
{
for(i=0;i<OrdersTotal();i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
if ( OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==magic)
if (OrderClose(OrderTicket(),OrderLots(),Bid,0,Red)==false)
{
//если не получилось закрыть
err=GetLastError();
Print("OrderSend failed with error #",err);
}
}
}
}

//закрываем при пересечени быстрой и средней
if (close_variant == 2 || close_variant == 0)
{
//закрываем SELL orders
if (fma_prev<=mma_prev && fma_next>mma_next && ChekForOrders(OP_SELL) > 0)
{
for(i=0;i<OrdersTotal();i++)
{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
if ( OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==magic)
if (OrderClose(OrderTicket(),OrderLots(),Ask,0,Red)==false)
{
//если не получилось закрыть
err=GetLastError();
Print("OrderSend failed with error #",err);
}
}
}
//закрываем BUY orders
if (fma_prev>=mma_prev && fma_next<mma_next && ChekForOrders(OP_SELL)==0)
{
for(i=0;i<OrdersTotal();i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
if ( OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==magic)
if (OrderClose(OrderTicket(),OrderLots(),Bid,0,Red)==false)
{
//если не получилось закрыть
err=GetLastError();
Print("OrderSend failed with error #",err);
}
}
}
}

//быстрая линия должна пересечь обе
if (fma_next > sma_next && fma_next > mma_next)
can_sell = true;

if (fma_next < sma_next && fma_next < mma_next)
can_buy = true;

//если было пересечение вверх и нет активных BUY то
if ((fma_prev<=sma_prev || fma_prev<=mma_prev) && fma_next>sma_next && fma_next>mma_next && ChekForOrders(OP_BUY)==0 && can_buy)
{
//создаем buy
OrderSendFunc(OP_BUY);
can_buy = false;
}

//если было пересечение вниз то
if ((fma_prev>=sma_prev || fma_prev>=mma_prev) && fma_next<sma_next && fma_next<mma_next && ChekForOrders(OP_SELL)==0 && can_sell)
{
//создаем SELL
OrderSendFunc(OP_SELL);
can_sell = false;
}

return(0);
}
//+------------------------------------------------------------------+


//Отправляет запрос типа cmd
int OrderSendFunc(int cmd)
{
if (cmd==OP_BUY) double Price=Ask;
else Price=Bid;
int ticket=OrderSend(Symbol(),cmd,lots,Price,0,GetSL(cmd),GetTP(cmd),NULL,magic,0,Blue);
if(ticket<0)
{
int err=GetLastError();
if (err==135)
{
//если ошибка "цены изменились" то делаем вторую попытку
RefreshRates();
ticket=OrderSend(Symbol(),cmd,lots,Price,0,GetSL(cmd),GetTP(cmd),NULL,magic,0,Blue);
if (ticket<0)
{
err=GetLastError();
Print("OrderSend failed with error #",err);
}
else Print("OrderSend failed with error #",err);
return(-1);
}
}
return(ticket);
}


// Функция возвращает значение цены с учетом StopLoss.
//Для Buy Order: cmd=OP_BUY, для Sell: cmd=OP_SELL
double GetSL(int cmd)
{
if (stop_loss==0) return(0);
else
if (cmd==OP_BUY) return(Bid-stop_loss*Point);
else return(Ask+stop_loss*Point);
}

// Функция возвращает значение цены с учетом TakeProfit.
//Для Buy Order: cmd=OP_BUY, для Sell: cmd=OP_SELL
double GetTP(int cmd)
{
if (take_profit==0) return(0);
else
if (cmd==OP_BUY) return(Ask+take_profit*Point);
else return(Bid-take_profit*Point);
}


//*Функция определяет количество позиций типа cmd*
int ChekForOrders(int cmd)
{
int count=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
if (OrderSymbol()==Symbol() && OrderType()==cmd && OrderMagicNumber()==magic)
count++;
}
return(count);
}
[свернуть]

Последний раз редактировалось chocolate; 09.11.2011 в 19:45.
07.11.2011, 14:33
Аватар для INKOGNITO
INKOGNITO INKOGNITO вне форума Новичок форума
Регистрация: 13.07.2011 / Сообщений: 53
Поблагодарили 9 раз(а) / Репутация: 10
добрый день лекарям,вижу сюда редко врачи заглядывают,но быть может все же мне кто поможет...
нужно в этот эксперт вкрутить мартин. http://forexsystemsru.com/324510-post122.html
спасибо заранее.
07.11.2011, 15:22
Аватар для Dimasca
Dimasca Dimasca вне форума Интересующийся
Регистрация: 17.02.2011 / Сообщений: 12
Поблагодарили 3 раз(а) / Репутация: 4
добрый день. Поправьте пожалуйста. Сначала нормально работал, а потом стал сливать. Советник неплохой. Можно заточить под любую пару. Желательно EUR/USD, GBP/USD М30
07.11.2011, 15:31
Аватар для Variator
Variator Variator вне форума Новичок форума
Регистрация: 26.02.2011 / Сообщений: 47
Поблагодарили 5 раз(а) / Репутация: 6
(что поправить - где диагноз ?)
а можно детальнее : что значит можно заточить под любую пара ?(для какой прооптимизируете для той и будет оптимально работать)
- все советники со временем начинают сливать - тк smart системы особ не распространены , поэтому надо периодически проводить оптимизацию на истории хотя бы месячной из расчета на 2-3 недели работы
07.11.2011, 16:07
Аватар для Dimasca
Dimasca Dimasca вне форума Интересующийся
Регистрация: 17.02.2011 / Сообщений: 12
Поблагодарили 3 раз(а) / Репутация: 4
Можно под EUR/USD М30. На тестере нет положительных результатов хоть что делай. Не могу разобраться в чем дело. Что именно надо поменять не соображу. Поначалу хорошо работал, сделки в плюсе закрывал но потом стал косячить.

Последний раз редактировалось Dimasca; 07.11.2011 в 16:15.
09.11.2011, 12:56
Аватар для RomanDD
RomanDD RomanDD вне форума Активный участник
Регистрация: 05.08.2010 / Сообщений: 311
Поблагодарили 32 раз(а) / Репутация: 33

По умолчанию Пожалуйста добавьте меджик!

ДОброго времени суток!
Советник отслеживает позиции и может закрывать их по совокупному убытку\прибыли.
Огромная просьба добавить задаваемый меджик чтобы советник мог отслеживать ордера с определенным меджиком.
Заранее спасибо!
10.11.2011, 10:38
Аватар для Mid
Mid Mid вне форума Интересующийся
Регистрация: 19.01.2011 / Сообщений: 4
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Доктора подлечите. что б работал на 1 и 5 минутах, а так же торговал на центовом счете, т.е. от депо в 200 уе
10.11.2011, 11:58
Аватар для borobor
borobor borobor вне форума Элитный участник
Регистрация: 03.05.2009 / Адрес: новосибирск / Сообщений: 935
Поблагодарили 1,556 раз(а) / Репутация: 1567
TimeCandle-здесь выставь "0"(любой таймфрейм),
Lot -здесь 0.01
10.11.2011, 13:37
Аватар для Mid
Mid Mid вне форума Интересующийся
Регистрация: 19.01.2011 / Сообщений: 4
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Торгует лот = 3. ниже не опускается.
10.11.2011, 13:46
Аватар для RomanDD
RomanDD RomanDD вне форума Активный участник
Регистрация: 05.08.2010 / Сообщений: 311
Поблагодарили 32 раз(а) / Репутация: 33
ДОброго времени суток!
Советник отслеживает позиции и может закрывать их по совокупному убытку\прибыли.
Огромная просьба добавить задаваемый меджик чтобы советник мог отслеживать ордера с определенным меджиком.
Заранее спасибо!
Ребята помогите пожалуйста, добавьте распознавание по магику!
Очень нужно!
10.11.2011, 14:13
Аватар для ilikrus
ilikrus ilikrus вне форума Интересующийся
Регистрация: 10.11.2011 / Сообщений: 13
Поблагодарили 0 раз(а) / Репутация: 1

Плохо доработайте плиз советник stop trade 1.2

нужно добавить ручную настройку минимального лота
10.11.2011, 15:38
Аватар для SlavaR
SlavaR SlavaR вне форума Активный участник
Регистрация: 25.05.2010 / Адрес: Москва / Сообщений: 81
Поблагодарили 33 раз(а) / Репутация: 34
  • Отправить сообщение для SlavaR с помощью ICQ

По умолчанию очень надо

Ребята помогите пожалуйста, добавьте распознавание по магику!
Очень нужно!
+1 Мне тоже.
е-VST не нашёл к сожалению. Уважаемые коллеги, если есть у кого e-СlоseByVSТ поделитесь пожалуйста, очень надо.

Последний раз редактировалось SlavaR; 10.11.2011 в 16:08.
10.11.2011, 15:47
Аватар для ilikrus
ilikrus ilikrus вне форума Интересующийся
Регистрация: 10.11.2011 / Сообщений: 13
Поблагодарили 0 раз(а) / Репутация: 1

По умолчанию помогите доработать советник

всем доброе время суток!
нужно добавить в советник ручную установку размера ордера, если кто может буду благодарен
10.11.2011, 19:01
Аватар для seraliev66
seraliev66 seraliev66 вне форума Интересующийся
Регистрация: 13.08.2011 / Адрес: Тараз / Сообщений: 10
Поблагодарили 2 раз(а) / Репутация: 3
Уважаемые,доктора!Такая просьба к вам.Советник выставляет отложки только лимит,возможно ли подкрутить,что бы выставлял стопы.
Заранее,спасибо.
11.11.2011, 08:34
Аватар для ilikrus
ilikrus ilikrus вне форума Интересующийся
Регистрация: 10.11.2011 / Сообщений: 13
Поблагодарили 0 раз(а) / Репутация: 1

По умолчанию доработайте stop trade 1.2

огромная просьба прикрутить ручную установку минимального лота и настроить чтоб работал трайлинг стоп
11.11.2011, 09:02
Аватар для PrinceAlex
PrinceAlex PrinceAlex вне форума Активный участник
Регистрация: 06.10.2010 / Сообщений: 33
Поблагодарили 68 раз(а) / Репутация: 69
всем доброе время суток!
нужно добавить в советник ручную установку размера ордера, если кто может буду благодарен
Держите, переменная Lots меняете и будет Вам счастье
Закрытая тема

Метки
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


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


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