Закрытая тема
20.12.2013, 04:40
Аватар для zhserg
zhserg zhserg на форуме Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Получить значение buffer1[1] можно так:
PHP код:
double valueVolatility  iCustom(Symbol(),0,"volatility",MaPriod,value,0,1); 
где MaPriod,value - входные данные индикатора
zhserg.ru советники, скрипты, индикаторы на заказ
20.12.2013, 07:18
Аватар для igornt9
igornt9 igornt9 вне форума Интересующийся
Регистрация: 29.11.2013 / Сообщений: 15
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Получить значение buffer1[1] можно так:
PHP код:
double valueVolatility  iCustom(Symbol(),0,"volatility",MaPriod,value,0,1); 
где MaPriod,value - входные данные индикатора
Эти параметры заданы
extern int MaPriod = 34;
extern double value = 0.5;
20.12.2013, 07:29
Аватар для igornt9
igornt9 igornt9 вне форума Интересующийся
Регистрация: 29.11.2013 / Сообщений: 15
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Получить значение buffer1[1] можно так:
PHP код:
double valueVolatility  iCustom(Symbol(),0,"volatility",MaPriod,value,0,1); 
где MaPriod,value - входные данные индикатора
Да этот способ знаю..просто думаю как сделать саму функцию, чтобы она определяла значение buffer1[1]

У функции решил посмотреть
buffer1[i]=buffer2[i]; и проверяю это строчкой
Comment("\n","Мой_buffer1=",buffer1[1],"\n",iCustom(Symbol(),0, "Volatility", 34,0.5,0,1),"\n",MathAbs(iCustom(Symbol(),0, "Volatility", 34,0.5,0,1)-buffer1[1]));
то разница ноль как и должна быть и все хорошо

Если написать в функции
buffer1[i] = iMAOnArray(buffer2, 0, 34, 0, MODE_EMA, i);
то есть рассагласованиеот нуля
в строке
MathAbs(iCustom(Symbol(),0, "Volatility", 34,0.5,0,1)-buffer1[1]
Почему??
помогите понять
20.12.2013, 07:43
Аватар для igornt9
igornt9 igornt9 вне форума Интересующийся
Регистрация: 29.11.2013 / Сообщений: 15
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
строчку buffer1[i]=buffer2[i]; - писал тестовую, и в индикаторе и в своей ф-ии и понятно, что эта строчка сидит в цикле по всем i.

Непонятно что делает ф-ия iMAOnArray с массивом buffer2 что при сравнении
MathAbs(iCustom(Symbol(),0, "Volatility", 34,0.5,0,1)-buffer1[1]) это не ноль
Здесь buffer1[1] - из моей ф-ии.
20.12.2013, 08:58
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
...
Почему??
помогите понять
PHP код:
buffer1[i] = iMAOnArray(buffer20340MODE_EMAi); 
Так этож ты накладываешь МА на 2-ой буфер.

А я вообще до сих пор не могу понять что ты хочешь.
20.12.2013, 10:13
Аватар для igornt9
igornt9 igornt9 вне форума Интересующийся
Регистрация: 29.11.2013 / Сообщений: 15
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Хочу переложить свойства индикатора Votality в советник без iCustom)
20.12.2013, 11:10
Аватар для motolga
motolga motolga вне форума Активный участник
Регистрация: 10.09.2012 / Адрес: гондурас / Сообщений: 259
Поблагодарили 130 раз(а) / Репутация: 132

По умолчанию переделать надо(сам знаю что программист нужен) кто возьмется помочь

есть данный робот.кто возьмется переделать его.так чтобы отложенные ордера он держал в "уме" невидимые.по факту( на реале.устраивают проскальзывание на проскальзывание.нужно как в илане.чтобы ордера рыночные становились сразу из "памяти".в личку.если кому есть что сказать и кто заинтересован
20.12.2013, 12:27
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
http://forexsystemsru.com/sovetniki/...tml#post758942
20.12.2013, 16:10
Аватар для igornt9
igornt9 igornt9 вне форума Интересующийся
Регистрация: 29.11.2013 / Сообщений: 15
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Понял просто ф-ия iMAOnArray переворачивает массив. Если же применить просто сглаживание ф-ии например как buffer1[i] = 0.2 *buffer2[i - 1] + 0.6 *buffer2[i] + 0.2*buffer2[i + 1]; тогда все норм. А с функцией iMAOnArray пока не разобрался..
20.12.2013, 16:29
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Понял просто ф-ия iMAOnArray переворачивает массив. Если же применить просто сглаживание ф-ии например как buffer1[i] = 0.2 *buffer2[i - 1] + 0.6 *buffer2[i] + 0.2*buffer2[i + 1]; тогда все норм. А с функцией iMAOnArray пока не разобрался..
Глянь.
20.12.2013, 17:34
Аватар для igornt9
igornt9 igornt9 вне форума Интересующийся
Регистрация: 29.11.2013 / Сообщений: 15
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Вот верное решение

double Koef = 2.0/(MaPriod + 1);
for (i = limit - 1; i >= 0; i--)
{
if (i < Bars - 1 && buffer1[i] == EMPTY_VALUE) buffer1[i] = buffer2[i];

buffer1[i] = buffer2[i]*Koef + buffer1[i + 1]*(1 - Koef);
}

И вот ссылка где указывается что ф-ия iMAOnArray работает неправильно
_http://forum.mql4.com/ru/30802

Последний раз редактировалось NSerega; 20.12.2013 в 18:11.
20.12.2013, 17:54
Аватар для uran2012
uran2012 uran2012 вне форума Новичок форума
Регистрация: 29.12.2012 / Сообщений: 65
Поблагодарили 18 раз(а) / Репутация: 19
Закрывает по стопу и на той же свече открывает новый ордер?
Я бы сказал что это невозможно. Но если ты покажешь скрин то будем думать.
залил.
суть такая открыв ордер по сигналу, то закрывшись по тейкпрофиту, он снова открывается(
20.12.2013, 19:36
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
залил.
суть такая открыв ордер по сигналу, то закрывшись по тейкпрофиту, он снова открывается(
А ты знаешь какой там сигнал на вход?
20.12.2013, 20:10
Аватар для K-700
K-700 K-700 вне форума Интересующийся
Регистрация: 02.08.2010 / Сообщений: 3
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Здравствуйте программисты ! Нужна ваша помощь. Мне нужен такой советник, который просто издаёт звуковой сигнал и сообщение, после выполнения определённых условий.
Условия такие: ставим советника на любой таймфрейм, и он начинает следить за барами. При движении цены в одну сторону (вверх или вниз), советник отсчитывает определённое количество баров, и при появлении очередного бара - издаёт звуковой сигнал (призывая меня к компьютеру). И чтобы в настройках можно было выставлять количество баров и их размер (от цены открытия до цены закрытия).
Например: ставлю советника на пятиминутный таймфрейм, задаю размер баров не менее 10 пунктов, задаю чтобы прошло 3 бара (в одну сторону) и при открытии четвёртого прозвучал сигнал и вышло сообщение (например: валюта такая то - 3 бара). И чтобы советник дальше продолжал следить за рынком. И чтобы я мог
поставить такого советника одновременно на разные валюты.

Заранее большое спасибо !
20.12.2013, 21:16
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Здравствуйте программисты ! Нужна ваша помощь. Мне нужен такой советник, который просто издаёт звуковой сигнал и сообщение, после выполнения определённых условий.
Условия такие: ставим советника на любой таймфрейм, и он начинает следить за барами. При движении цены в одну сторону (вверх или вниз), советник отсчитывает определённое количество баров, и при появлении очередного бара - издаёт звуковой сигнал (призывая меня к компьютеру). И чтобы в настройках можно было выставлять количество баров и их размер (от цены открытия до цены закрытия).
Например: ставлю советника на пятиминутный таймфрейм, задаю размер баров не менее 10 пунктов, задаю чтобы прошло 3 бара (в одну сторону) и при открытии четвёртого прозвучал сигнал и вышло сообщение (например: валюта такая то - 3 бара). И чтобы советник дальше продолжал следить за рынком. И чтобы я мог
поставить такого советника одновременно на разные валюты.

Заранее большое спасибо !
Сложно.
21.12.2013, 09:36
Аватар для alklim333
alklim333 alklim333 вне форума Интересующийся
Регистрация: 06.04.2010 / Сообщений: 14
Поблагодарили 3 раз(а) / Репутация: 4

По умолчанию дописать код

Уважаемые программисты! Начал использовать систему с элементами мартина. При тестировании случаются сливы.
Как модернизировать ее, чтобы после убыточной сделки, открывался удвоенный лот. Например: открылся ордер на покупку 0.1, затем 0.2, но и далее цена пошла не в моем направлении. Нужно, чтобы после закрытия сделок с убытком, следующий ордер по алгоритму системы первый ордер открывался лотом 0.2, а второй 0.4. Ниже размещаю блок Buy. Кто то поможет внести в код соответствующие дополнения?

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

double Lots_all=0;
double near_ord_price=999999;
int step_=0;
int lotsum_=0;

// calculate summe lots and last order open price
for (int i=OrdersTotal()-1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_b)
{

if ( near_ord_price > OrderOpenPrice() )
{ near_ord_price = OrderOpenPrice(); }

if ( Lots_all < OrderLots() )
{ Lots_all = OrderLots(); }

lotsum_ +=1;

}}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}}
// *************************calculate and open buy order *****************************


step_=Step_Order_b;

if ( lotsum_ >= StartStepExp_b ) { step_ = NormalizeDouble(step_ * MathPow(StepExp_b ,((lotsum_+1) - StartStepExp_b)),0); }



if (near_ord_price - Ask > step_*PipValue*Point && near_ord_price != 999999 )



{ double new_lot = NormalizeDouble((Lots_all*Multipler_b) ,2);


if ( new_lot==Lots_all && Multipler_b!= 1 ) { new_lot=Lots_all+Lots_all; }

if (lotsum_ < StartExp_b ) { new_lot=Lot_b; }

int ticket = OrderSend(Symbol(), OP_BUY, new_lot, Ask, 2, 0, 0, "double force", Magic_b, 0, Blue);

{ if ( ticket == -1 ) { Print("OrderSend() error - ", ErrorDescription(GetLastError())); }
}
// *******************************calculate TP ******************
double Lots_al=0;
double Average_lp=0;
double Average_tp=0;
for ( i=OrdersTotal()-1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_b)
{
Lots_al += OrderLots();
Average_lp +=(OrderLots()*OrderOpenPrice());
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}}
//************************************************
Average_tp= NormalizeDouble(Average_lp/Lots_al,Digits);
Average_tp=Average_tp+(TP_Average_b*PipValue*Point);
// ********************** modify order *************************
double modify_sl=0;
double modify_tp=0;

for ( i=OrdersTotal()-1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_b)
{ if ( Average_tp < Ask ) {modify_sl=Average_tp; modify_tp=0; }
else
{ modify_sl=0; modify_tp=Average_tp; }

bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), modify_sl, modify_tp, 0, Yellow);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));

}}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}}}
[свернуть]

Последний раз редактировалось NSerega; 21.12.2013 в 12:41.
21.12.2013, 09:40
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Уважаемые программисты! Начал использовать систему с элементами мартина. При тестировании случаются сливы.
Как модернизировать ее, чтобы после убыточной сделки, открывался удвоенный лот. Например: открылся ордер на покупку 0.1, затем 0.2, но и далее цена пошла не в моем направлении. Нужно, чтобы после закрытия сделок с убытком, следующий ордер по алгоритму системы первый ордер открывался лотом 0.2, а второй 0.4. Ниже размещаю блок Buy. Кто то поможет внести в код соответствующие дополнения?
...
http://forexsystemsru.com/indikatory/69427-indikatory-ot-eevviill-5.html#post596494
martini on last order
21.12.2013, 10:28
Аватар для стасс
стасс стасс вне форума Новичок форума
Регистрация: 12.06.2012 / Сообщений: 55
Поблагодарили 13 раз(а) / Репутация: 14
Ребята помогите этот шаблон работает только на евро/долоре сделайте чтоб он работал на всех парах .
21.12.2013, 12:09
Аватар для магин
магин магин на форуме Почётный гражданин
Регистрация: 15.10.2011 / Сообщений: 113
Поблагодарили 302 раз(а) / Репутация: 303

По умолчанию ???

Да вроди не должен рисовать.
Попробуйте вырезать
PHP код:
 b2=b*b;
   
b3=b2*b;
   
c1=-b3;
   
c2=(3*(b2+b3));
   
c3=-3*(2*b2+b+b3);
   
c4=(1+3*b+b3+3*b2);
   
n=t3_period;

   if (
n<1n=1;
   
0.5*(n-1);
   
w1 / (1);
   
w2 w1
и вставить после
PHP код:
int init()
  { 
Уточните пожалуйста, в какое место вставить int init()
{ ?
21.12.2013, 12:47
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Уточните пожалуйста, в какое место вставить int init()
{ ?
Я же сказал после а не что инит надо вставлять.
Закрытая тема

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


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


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