Ответ
 
Опции темы
Старый 24.10.2015, 10:34   #4321 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 241
Репутация: 74
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 74 раз(а) в 60 сообщениях
Поинты: 282
Сообщение от paylesss Посмотреть сообщение
Здравствуйте ув. форумчане. Помогите разобраться.

PHP код:
void OnTick()  {//---      double Pr=Bid;    if (OrdersTotal()<1)   {         double TP=Bid-TPr*Point;     double SL=Bid+SLr*Point;     int ticc=OrderSend(Symbol(),OP_SELL,0.01,Pr,3,SL,TP,"",0,0,CLR_NONE);     if(ticc<0) Print("Ошибка открытия ордера: ",GetLastError());                  }     bool o=OrderSelect(ticc,SELECT_BY_TICKET);      if ((OrderStopLoss()-Bid)>120*Point && OrdersTotal() )     {     double TP1=Bid-TPr*Point;     double SL1=Bid+100*Point;     bool res=OrderModify(OrderTicket(),OrderOpenPrice(),SL1,TP1,0,Blue);               if(!res)               Print("Ошибка модификации ордера. Код ошибки=",GetLastError());               else               Print("Цена Stop Loss ордера успешно модифицирована.");             }       } 
вот простой код для открытия ордера и его модифицирования в последущем. т.е как только цена уходит от стоплосса более чем на 120 пунктов , стоп перемещается на 100 пунктов вниз.
все это только начал писать, да по сути..почти с каждым тиком будет перемещать стоп, да и вообще это так..только начало...но это все потом доделаю. сейчас вопрос вот в чем...
выдает ошибку 'ticc' - undeclared identifier;
Но ведь она объявлена!!
Пробовал объявить переменную ticc в самом начале void OnTick(). ошибка исчезает.НО. программа срабатывает один раз! выставляет ордер , тут же его меняет и все...при следующем тике ticc уже равна 0 и бполее ордер не модифицируется. Почему так? Почему ticc превращается в 0!?
Попробуй так: static int ticc...., тогда на следующей котировке ticc будет иметь значение с предыдущего цикла расчёта, и про очистку ticc позаботься.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 24.10.2015, 12:39   #4322 (permalink)
Интересующийся
 
Аватар для paylesss
 
Регистрация: 22.09.2015
Сообщений: 7
Репутация: 1
paylesss
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 10
спасибо! уже , в принципе, решил проблему, путем использования глобальной переменной.
paylesss вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 25.10.2015, 18:20   #4323 (permalink)
Интересующийся
 
Аватар для paylesss
 
Регистрация: 22.09.2015
Сообщений: 7
Репутация: 1
paylesss
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 10
еще вопросик...по функции copyopen. нет ни у кого ссылочки на пример ее использования. а то у меня в массив какае-то фигня залетает. некоторые элементы массива 0, вы где нибудь видели бар с ценой открытия 0? или такое значение как 3.0587348578348457859- это цена открытия бара индекса ртс)). вот например
double Openprice[30];
copyiopen(Symbol(),PERIOD_M15,0,30,Openprice)
массив с переменными типа дабл. я правильно понимаю, что цены туда сами должны загнаться(в массив) или надо цикл создавать и заполнять массив?
это написано в mql 5 но и в 4-ке она есть. поэтому тут и спрашиваю.
paylesss вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 26.10.2015, 14:32   #4324 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 241
Репутация: 74
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 74 раз(а) в 60 сообщениях
Поинты: 282
Сообщение от paylesss Посмотреть сообщение
еще вопросик...по функции copyopen. нет ни у кого ссылочки на пример ее использования. а то у меня в массив какае-то фигня залетает. некоторые элементы массива 0, вы где нибудь видели бар с ценой открытия 0? или такое значение как 3.0587348578348457859- это цена открытия бара индекса ртс)). вот например
double Openprice[30];
copyiopen(Symbol(),PERIOD_M15,0,30,Openprice)
массив с переменными типа дабл. я правильно понимаю, что цены туда сами должны загнаться(в массив) или надо цикл создавать и заполнять массив?
это написано в mql 5 но и в 4-ке она есть. поэтому тут и спрашиваю.
Свой массив, перед загрузкой в него данных, обнули, скопируй в него цены открытия, как хотел, но не забудь нормализовать.
РАСПЕЧАТАЙ то что получилось, и прими решение, но кой оно тебе надо? Если, это не то, что тебе надо.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
vladradon (03.11.2015)
Старый 27.10.2015, 20:43   #4325 (permalink)
Новичок форума
 
Аватар для kostik83
 
Регистрация: 19.09.2011
Сообщений: 11
Репутация: 19
kostik83
Сказал(а) спасибо: 4
Поблагодарили 18 раз(а) в 2 сообщениях
Поинты: 8
Здравствуйте, проверите пожалуйста где ошибка? необходимо определить low последних 10 баров
PHP код:
int bar=10;
   
double min=0.0;
   
   for(
int i=0;i<bar;i++){
      if(
iLow(NULL,0,i)<min)min=Low[i];
      }
      
Alert("min " min); 
kostik83 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.10.2015, 00:13   #4326 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 241
Репутация: 74
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 74 раз(а) в 60 сообщениях
Поинты: 282
Сообщение от kostik83 Посмотреть сообщение
Здравствуйте, проверите пожалуйста где ошибка? необходимо определить low последних 10 баров
PHP код:
int bar=10;   double min=0.0;      for(int i=0;i<bar;i++){      if(iLow(NULL,0,i)<min)min=Low[i];      }      Alert("min " min); 
Условие ни разу не выполняется. вставь принты или запусти в дебагере.
min у тебя 0, а цена как не крути больше.
Поэтому целесообразно искать среди цен значений интервала.
Извини глубоко не вникал.

Последний раз редактировалось _SERG_; 28.10.2015 в 00:16.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Viko2000 (30.10.2015)
Старый 28.10.2015, 03:00   #4327 (permalink)
Местный знаток
 
Аватар для vlad_123
 
Регистрация: 29.01.2013
Сообщений: 335
Репутация: 824
vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 -
Сказал(а) спасибо: 29
Поблагодарили 820 раз(а) в 327 сообщениях
Поинты: 388
Сообщение от kostik83 Посмотреть сообщение
Здравствуйте, проверите пожалуйста где ошибка? необходимо определить low последних 10 баров
PHP код:
int bar=10;
   
double min=0.0;
   
   for(
int i=0;i<bar;i++){
      if(
iLow(NULL,0,i)<min)min=Low[i];
      }
      
Alert("min " min); 
_http://docs.mql4.com/ru/series/ilowest

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Мониторинг советников: http://www.myfxbook.com/members/vlad_123/

На заказ не программирую.
vlad_123 на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
kostik83 (28.10.2015), Viko2000 (30.10.2015)
Старый 28.10.2015, 07:41   #4328 (permalink)
♔♕♖♗♘♙
 
Аватар для DomovenokBrest
 
Регистрация: 27.10.2012
Адрес: Белоруссия, Брест
Сообщений: 2,239
Репутация: 10240
DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest DomovenokBrest
Сказал(а) спасибо: 11,239
Поблагодарили 10,218 раз(а) в 2,360 сообщениях
Поинты: 584
Отправить сообщение для DomovenokBrest с помощью Skype™
Сообщение от kostik83 Посмотреть сообщение
Здравствуйте, проверите пожалуйста где ошибка? необходимо определить low последних 10 баров
PHP код:
int bar=10;
   
double min=0.0;
   
   for(
int i=0;i<bar;i++){
      if(
iLow(NULL,0,i)<min)min=Low[i];
      }
      
Alert("min " min); 
как то так...

PHP код:
int bar=10;
   
int index_min=0;
   
double min=10000000.0;
   
   for(
int i=0;i<=bar;i++)
      {
      if(
min>Low[i]) 
       {
       
min=Low[i];
       
index_min=i;
       }
      }
      
Alert(min+""+"на"+" "+index_min+" "+"баре"); 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
DomovenokBrest на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
kostik83 (28.10.2015), Viko2000 (30.10.2015)
Старый 28.10.2015, 13:18   #4329 (permalink)
Новичок форума
 
Аватар для kostik83
 
Регистрация: 19.09.2011
Сообщений: 11
Репутация: 19
kostik83
Сказал(а) спасибо: 4
Поблагодарили 18 раз(а) в 2 сообщениях
Поинты: 8
СПАСИБО!!!
kostik83 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
DomovenokBrest (28.10.2015)
Старый 29.10.2015, 07:51   #4330 (permalink)
Местный житель
 
Аватар для aleksergy
 
Регистрация: 04.12.2012
Сообщений: 109
Репутация: 162
aleksergy - aleksergy -
Сказал(а) спасибо: 281
Поблагодарили 164 раз(а) в 56 сообщениях
Поинты: 12
Здравствуйте!Подскажите пожалуйста. Если поставить советник например на тф м1 а затем переключить на тф м15 он на каком тф будет работать? Спасибо.
aleksergy вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.10.2015, 08:18   #4331 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,007
Репутация: 824
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 838 раз(а) в 552 сообщениях
Поинты: 1302
Господа! В чем смысл следующего выражёвывания?

PHP код:
 if (iMA(NULLPERIOD_H4138MODE_SMMAPRICE_MEDIAN0) < Close[0] && Close[2] > Close[1] && 1
Это декомпил.
Декомпилятор такую фигню выдает или автор что-то вумное имел в виду?

(кто не въехал с ходу - "&& 1" - вот это)
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 29.10.2015, 08:19   #4332 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,516
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2002
Сообщение от aleksergy Посмотреть сообщение
Здравствуйте!Подскажите пожалуйста. Если поставить советник например на тф м1 а затем переключить на тф м15 он на каком тф будет работать? Спасибо.
Зависит от того как написан советник.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
aleksergy (29.10.2015)
Старый 29.10.2015, 22:03   #4333 (permalink)
Активный участник
 
Аватар для iii237
 
Регистрация: 03.04.2013
Адрес: Тольятти
Сообщений: 79
Репутация: 94
iii237
Сказал(а) спасибо: 419
Поблагодарили 93 раз(а) в 20 сообщениях
Поинты: 48
Сообщение от kostik83 Посмотреть сообщение
Здравствуйте, проверите пожалуйста где ошибка? необходимо определить low последних 10 баров
PHP код:
int bar=10;
   
double min=0.0;
   
   for(
int i=0;i<bar;i++){
      if(
iLow(NULL,0,i)<min)min=Low[i];
      }
      
Alert("min " min); 
Самый простой вариант взять мин заведомо больше цены, например мин = 100000;
iii237 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.10.2015, 22:25   #4334 (permalink)
Активный участник
 
Аватар для iii237
 
Регистрация: 03.04.2013
Адрес: Тольятти
Сообщений: 79
Репутация: 94
iii237
Сказал(а) спасибо: 419
Поблагодарили 93 раз(а) в 20 сообщениях
Поинты: 48
Сообщение от aleksergy Посмотреть сообщение
Здравствуйте!Подскажите пожалуйста. Если поставить советник например на тф м1 а затем переключить на тф м15 он на каком тф будет работать? Спасибо.
Будет работать на том ТФ, на котором в данный момент находится.
Однако здесь много вариантов:
1. Сов может работать независимо от ТФ,
2. Сов может быть рассчитан на конкретный ТФ,
3. Может ваще не работать на конкретном ТФ.

Короче, истина в сове.
iii237 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 30.10.2015, 02:58   #4335 (permalink)
Местный знаток
 
Аватар для vlad_123
 
Регистрация: 29.01.2013
Сообщений: 335
Репутация: 824
vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 -
Сказал(а) спасибо: 29
Поблагодарили 820 раз(а) в 327 сообщениях
Поинты: 388
Сообщение от iii237 Посмотреть сообщение
Самый простой вариант взять мин заведомо больше цены, например мин = 100000;

Хватит уже изобретать велосипед!
Я же уже давал ссылку на функцию iLowest, которая делает именно то что нужно.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Мониторинг советников: http://www.myfxbook.com/members/vlad_123/

На заказ не программирую.
vlad_123 на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
DomovenokBrest (30.10.2015), Viko2000 (30.10.2015)
Старый 30.10.2015, 10:35   #4336 (permalink)
Активный участник
 
Аватар для Def Leppard
 
Регистрация: 03.10.2010
Сообщений: 99
Репутация: 60
Def Leppard
Сказал(а) спасибо: 2,425
Поблагодарили 62 раз(а) в 26 сообщениях
Поинты: 18
Всем привет!
Большая просьба, кто знает как вставить советник, индикатор, скрипт в мобильную версию MT-4 на Андроиде? За большое спасибо.
Def Leppard на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 30.10.2015, 16:50   #4337 (permalink)
Активный участник
 
Аватар для iii237
 
Регистрация: 03.04.2013
Адрес: Тольятти
Сообщений: 79
Репутация: 94
iii237
Сказал(а) спасибо: 419
Поблагодарили 93 раз(а) в 20 сообщениях
Поинты: 48
Сообщение от vlad_123 Посмотреть сообщение

Хватит уже изобретать велосипед!
Я же уже давал ссылку на функцию iLowest, которая делает именно то что нужно.
Да, конечно, Ваш вариант будет работать так же, как и мой. Но в моем меньше переделок. Хотя это конечно мелочи в данном случае.

А ваще, что Вам не понравилось? Чем больше вариантов, тем прекрасней. И велосипеды разные бывают...
iii237 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Viko2000 (30.10.2015)
Старый 30.10.2015, 16:56   #4338 (permalink)
Активный участник
 
Аватар для iii237
 
Регистрация: 03.04.2013
Адрес: Тольятти
Сообщений: 79
Репутация: 94
iii237
Сказал(а) спасибо: 419
Поблагодарили 93 раз(а) в 20 сообщениях
Поинты: 48
Сообщение от ansol Посмотреть сообщение
Господа! В чем смысл следующего выражёвывания?

PHP код:
 if (iMA(NULLPERIOD_H4138MODE_SMMAPRICE_MEDIAN0) < Close[0] && Close[2] > Close[1] && 1
Это декомпил.
Декомпилятор такую фигню выдает или автор что-то вумное имел в виду?

(кто не въехал с ходу - "&& 1" - вот это)
Это автор, скорее всего непричесаный вариант. Можете просто выкинуть "&& 1", на коде не отразится.
iii237 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Viko2000 (30.10.2015)
Старый 30.10.2015, 17:10   #4339 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,007
Репутация: 824
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 838 раз(а) в 552 сообщениях
Поинты: 1302
Сообщение от iii237 Посмотреть сообщение
Это автор, скорее всего непричесаный вариант. Можете просто выкинуть "&& 1", на коде не отразится.
То, что это можно выкинуть, я почти догадался
Но вот зачем такое вставлять/оставлять никак не пойму. Автор сам-то не додумался просто удалить? В смысле, там что-то было, условие какое-то, потом оно не понадобилось и вместо него автор воткнул единицу?
Чужая душа - потёмки!
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Viko2000 (30.10.2015)
Старый 30.10.2015, 19:42   #4340 (permalink)
Местный знаток
 
Аватар для vlad_123
 
Регистрация: 29.01.2013
Сообщений: 335
Репутация: 824
vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 - vlad_123 -
Сказал(а) спасибо: 29
Поблагодарили 820 раз(а) в 327 сообщениях
Поинты: 388
Сообщение от iii237 Посмотреть сообщение
Но в моем меньше переделок.

Меньше переделок - это по сравнению со стандартной функцией MQL4?
Ну-ну
__________________________________________________
Паходу - я тут раздумывал, как можно побольше пипсов насобирать, закрывая одни и те же позиции...
Сподвигло меня на это изменение требований MyFxBook'а к AutoTrade провайдерам, а именно - если раньше они требовали >10пипов на профитную сделку, то теперь Avg пипов на трейд - не менее 3. И если раньше мой сов подходил, то теперь нет.
Ну, в общем-то, и решение - закрывать убыточные сделки по возможности меньшим количеством операция (я раньше закрывал по 0.01 лота), а вот профитные - наоборот, закрывать по возможности наименьшими лотами.
Ну, и как результат - сегодня +6400 пипов

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Мониторинг советников: http://www.myfxbook.com/members/vlad_123/

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

Последний раз редактировалось vlad_123; 30.10.2015 в 19:54.
vlad_123 на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Viko2000 (30.10.2015)
Ответ

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


Опции темы

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

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



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


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