Ваши вопросы по языку MQL4

ansol

Местный знаток
Вот ты упорный :) И мой тоже не менялся примерно столько же. Кто ж его будет менять, если все работает? Там все с комментами, если что приспичит, можно самому подкрутить(я и крутил, кажись), а вот с wininet только что трабла вылезла. Если автор живой, то наверно подкрутил уже :)
 

eevviill

Заблокирован
Вот ты упорный :) И мой тоже не менялся примерно столько же. Кто ж его будет менять, если все работает? Там все с комментами, если что приспичит, можно самому подкрутить(я и крутил, кажись), а вот с wininet только что трабла вылезла. Если автор живой, то наверно подкрутил уже :)
А я тебе говорю что трабла нету. Выложенный мною индикатор полтора года никто не ремонтироавл и на данный момент он работает.
 

ansol

Местный знаток
А я тебе говорю что трабла нету. Выложенный мною индикатор полтора года никто не ремонтироавл и на данный момент он работает.

Не "нету", а "не было". Счас вот появилось. У тебя какая версия винды? Ты ставишь обновления? Я ставлю автоматом, поэтому вполне вероятно, что wininet обновился, да и хорошо. Счас только вызов функции поправить и все будет дальше работать.
 

eevviill

Заблокирован
Не "нету", а "не было". Счас вот появилось. У тебя какая версия винды? Ты ставишь обновления? Я ставлю автоматом, поэтому вполне вероятно, что wininet обновился, да и хорошо. Счас только вызов функции поправить и все будет дальше работать.
У меня нету. 7 версия. Обновления не ставлю.
Тогда да, скорее всего у тебя через это и перестало работать.

PHP:
Expand Collapse Copy
Change in wininet between IE7 and IE8 is minimal, only one new function WinHttpIsHostInProxyBypassList is added.
 
Последнее редактирование:

ansol

Местный знаток
У меня нету. 7 версия. Обновления не ставлю.
Тогда да, скорее всего у тебя через это и перестало работать.
Ну вот, если автор не умер или этим индюком пользуется много народу, то уже подправили наверняка. *Ушел искать*
 

ansol

Местный знаток
Change in wininet between IE7 and IE8 is minimal
Пичалько какое :) Счас проверил - у меня ИЕ10 (я им не пользуюсь, но ...)

P.S. Спасибо eevviill за намёк! :)
Раз эта глупость от ИЕ, то я проверил настройки ИЕ - там стоял включенным прокси(это я куда-то лез анонимно через ИЕ, подробности опустим), потом я ИЕ закрыл и забыл, а wininet не забыл, гад! :angry:
Убрал прокси и все заработало.
 
Последнее редактирование:

Игoрь

Новичок форума
Добрые программисты, подскажите начинающему условие выставления любых отложек только выше цены (только ниже цены)
 

eevviill

Заблокирован
Добрые программисты, подскажите начинающему условие выставления любых отложек только выше цены (только ниже цены)
Цены чего?
Если текущей, то типа так.
Сначало в переменную надо записать цену по кторой ты хочешь отложку выше выставить.
Например
PHP:
Expand Collapse Copy
double price_bs=pre_order_price+otstup*Point;
if(price_bs>Bid) OrderSend(...);
 

funt1956

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

mobidik

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

Сам учусь... смотрим, например, здесь _http://forexsystemsru.com/yazyk-programmirovaniya-mql4/67073-mql4-uroki-ot-eevviill.html или _http://www.speculant.com/forum/showthread.php?204-%D0%9A%D1%83%D1%80%D1%81-MQL4 подобные ветки есть, поиск рулит...
 

ansol

Местный знаток
Командир вышагивает перед строем новобранцев и зачитывает их фамилии:
- Иванов
- Я!
Сидоров
- Я!
Петров
-Я!
-...Хуев??
- Я!
- два шага из строя; что это за фамилия такая странная?
- да болгарин я, товарищ командир.
-..а, понятно. Иди обратно в строй, болгарин Хуев!
Этоя к тому, что надо научиться вопросы правильно задавать!
Правильный вопрос - половина ответа!
А учить язык (MQL или C++) - это всегда плюс-плюс! :)
 

Dobryj

Почетный гражданин
Всем вечер добрый !
такая вот проблема , при дальнейшем растяжении трендовой в право увеличивается соответственно смещение значка arrow относительно трендовой ,проблема в том что значок при пересечении нулевого бара пропадает , тобишь в будущее не рисует а должен !
помогите исправить )
скрин прилагаю!
вот часть кода которая перерисовывает значок
int init()
{
per=Period();
kt=per;
t0=WindowTimeOnDropped();
i0=iBarShift(Symbol(),Period(),t0); // считываем
pr0=Close[i0];
ip=i0+40;
tp=Time[ip];
prp=Close[ip];

.................................................



//перерисовываем
int degre_75=75;
Ris(degre_75,"1234");

.................................................
int Ris(int xxx,string text)
{
time = Time[i0-xxx];
price=iHigh(Symbol(),PERIOD_D1,2);
ObjectSet( "LineW",OBJPROP_TIME1,time);
ObjectSet( "LineW",OBJPROP_PRICE1,price);
ObjectSetText("LineW",text,12,"Arial",Blue);

return(0);
}............................
 

Вложения

  • 1111.jpg
    1111.jpg
    53,4 КБ · Просмотры: 38
  • Time_Go! .mq4
    Time_Go! .mq4
    2,7 КБ · Просмотры: 23

AlexeyVik

Программист mql4 mql5
Ты что-то начал постить свой вопрос во всех темах...
В одной из них я дал тебе ответ.
 

eevviill

Заблокирован
Всем вечер добрый !
такая вот проблема , при дальнейшем растяжении трендовой в право увеличивается соответственно смещение значка arrow относительно трендовой ,проблема в том что значок при пересечении нулевого бара пропадает , тобишь в будущее не рисует а должен !
помогите исправить )
скрин прилагаю!
вот часть кода которая перерисовывает значок
int init()
{
per=Period();
kt=per;
t0=WindowTimeOnDropped();
i0=iBarShift(Symbol(),Period(),t0); // считываем
pr0=Close[i0];
ip=i0+40;
tp=Time[ip];
prp=Close[ip];

.................................................



//перерисовываем
int degre_75=75;
Ris(degre_75,"1234");

.................................................
int Ris(int xxx,string text)
{
time = Time[i0-xxx];
price=iHigh(Symbol(),PERIOD_D1,2);
ObjectSet( "LineW",OBJPROP_TIME1,time);
ObjectSet( "LineW",OBJPROP_PRICE1,price);
ObjectSetText("LineW",text,12,"Arial",Blue);

return(0);
}............................
1) Узнаём время одного бара(о чём уже говорилось).
PHP:
Expand Collapse Copy
int bar_one=Time[1]-Time[2];
2) Потом узнаешь время будущего бара. До текущего добвляешь 75 время-баров.
PHP:
Expand Collapse Copy
int needed_time=Time[0]+75*bar_one;

p.s. или 75*Period()*60;
 

Dobryj

Почетный гражданин
1) Узнаём время одного бара(о чём уже говорилось).
PHP:
Expand Collapse Copy
int bar_one=Time[1]-Time[2];
2) Потом узнаешь время будущего бара. До текущего добвляешь 75 время-баров.
PHP:
Expand Collapse Copy
int needed_time=Time[0]+75*bar_one;

p.s. или 75*Period()*60;

Вы меня не поняли , если следовать этому примеру тогда получится,
формула посчитала что от трендовой линии надо отложить допустим 200 баров , в вашем примере значек пропадет через 200 баров от 0го бара ,
а не нарисуется на 200 баре от трендовой !


если time[0] иконка вообще не движется

int xxx=50;
int bar_one=Time[1]-Time[2];
int needed_time=Time[i0-xxx]+200*bar_one;

price=iHigh(Symbol(),PERIOD_D1,2);
ObjectSet( "LineW",OBJPROP_TIME1,needed_time);
ObjectSet( "LineW",OBJPROP_PRICE1,price);
ObjectSetText("LineW",text,12,"Arial",Blue);

:facepalm: не получилось!

тоже самое
если
int Ris(int xxx,string text)
{


time = Time[i0] + Period() * xxx * 60;
price=iHigh(Symbol(),PERIOD_D1,2);
ObjectSet( "LineW",OBJPROP_TIME1,time);
ObjectSet( "LineW",OBJPROP_PRICE1,price);
ObjectSetText("LineW",text,12,"Arial",Blue);
иконка пропадает после xxx баров за нулевым барам


получается если расчет в близи 100 барах от нулевого и формула выдала например отложить расстояние в 240 баров , сначало надо посчитать сколько баров до нулевого и потом то что останется уже отлаживать от нулевого по вашим примерам !
мудрено , наверное можно проще)
240-100=140 отлаживаем в право от 0 го бара
и 100 отлаживаем до нулевого....
 
Последнее редактирование:

AlexeyVik

Программист mql4 mql5
1) Узнаём время одного бара(о чём уже говорилось).
int bar_one=Time[1]-Time[2];
2) Потом узнаешь время будущего бара. До текущего добвляешь 75 время-баров.
int needed_time=Time[0]+75*bar_one;
p.s. или 75*Period()*60;

Вы меня не поняли , если следовать этому примеру тогда получится,
формула посчитала что от трендовой линии надо отложить допустим 200 баров , в вашем примере значек пропадет через 200 баров от 0го бара ,
а не нарисуется на 200 баре от трендовой !


если time[0] иконка вообще не движется

int xxx=50;
int bar_one=Time[1]-Time[2];
int needed_time=Time[i0-xxx]+200*bar_one;

price=iHigh(Symbol(),PERIOD_D1,2);
ObjectSet( "LineW",OBJPROP_TIME1,needed_time);
ObjectSet( "LineW",OBJPROP_PRICE1,price);
ObjectSetText("LineW",text,12,"Arial",Blue);

:facepalm: не получилось!

тоже самое
если
int Ris(int xxx,string text)
{


time = Time[i0] + Period() * xxx * 60;
price=iHigh(Symbol(),PERIOD_D1,2);
ObjectSet( "LineW",OBJPROP_TIME1,time);
ObjectSet( "LineW",OBJPROP_PRICE1,price);
ObjectSetText("LineW",text,12,"Arial",Blue);
иконка пропадает после xxx баров за нулевым барам
Найди отличие в выделенном тексте...
А во втором случае поищи её в списке объектов.
 

Dobryj

Почетный гражданин
Найди отличие в выделенном тексте...
А во втором случае поищи её в списке объектов.
int needed_time=Time[i0-xxx]+200*bar_one;
к посчитаному времени Time[i0-xxx] по которому должна появится иконка прибавляем
200 баров (зачем ?),
в коде прописано что иконка пропадает xxx баров от нулевого (текущего) бара , после чего
пропадает и перерисовывается на Time[1]...
в первом случае
int needed_time=Time[0]+75*bar_one;
к нулевому бару прибавляем 75 баров
не соображаю:facepalm:
 

AlexeyVik

Программист mql4 mql5
int needed_time=Time[i0-xxx]+200*bar_one;
к посчитаному времени Time[i0-xxx] по которому должна появится иконка прибавляем
200 баров (зачем ?),
в коде прописано что иконка пропадает xxx баров от нулевого (текущего) бара , после чего
пропадает и перерисовывается на Time[1]...
в первом случае
int needed_time=Time[0]+75*bar_one;
к нулевому бару прибавляем 75 баров
не соображаю:facepalm:
Прибавляем не к нулевому бару 75 баров, а к времени открытия нулевого бара прибавляем время 75ти Period() (баров) в минутах умноженное на 60 чтобы получить в секундах.
Получаем время в секундах. Его и ставим в ObjectSet()

В варианте Василия bar_one = Time[1] - Time[2] это уже время в секундах

ps: Или мы вдвоём понять тебя не можем. Куда ты хочешь поставить объект "LineW"
 
Последнее редактирование:

Dobryj

Почетный гражданин
Прибавляем не к нулевому бару 75 баров, а к времени открытия нулевого бара прибавляем время 75ти Period() (баров) в минутах умноженное на 60 чтобы получить в секундах.
Получаем время в секундах. Его и ставим в ObjectSet()

В варианте Василия bar_one = Time[1] - Time[2] это уже время в секундах

ps: Или мы вдвоём понять тебя не можем. Куда ты хочешь поставить объект "LineW"

вот наверное )
потому что у меня так ни чего и не получилось :)
6d856bef.png
 
Последнее редактирование модератором:

qqmber

Почетный гражданин
Всем вечер добрый !
такая вот проблема , при дальнейшем растяжении трендовой в право увеличивается соответственно смещение значка arrow относительно трендовой ,проблема в том что значок при пересечении нулевого бара пропадает , тобишь в будущее не рисует а должен !
помогите исправить )
скрин прилагаю!
вот часть кода которая перерисовывает значок
Ну раз должен, тогда так. Гибрид твоего исходного кода и моей первой правки.
Код:
Expand Collapse Copy
int Ris(int xxx,string text)
      {
       if(i0>=xxx) time = Time[i0-xxx];
       else time=Time[0]+(xxx-i0)*Period()*60;
       price=iHigh(Symbol(),PERIOD_D1,2);
       ObjectSet( "LineW",OBJPROP_TIME1,time);
       ObjectSet( "LineW",OBJPROP_PRICE1,price);
       ObjectSetText("LineW",text,12,"Arial",Blue);
       
      return(0);
      }
Но имей в виду, так в прошлом выходные учитываются, а в будущем нет. Если нужен перескок через выходные, то добавь
while(TimeDayOfWeek(time)%6==0) time+=Period()*60;
 
Последнее редактирование:

Who has viewed this thread (Total: 7) Посмотреть

Верх