Ответить
05.12.2013, 16:05
Аватар для Milord
Milord Milord вне форума Местный знаток
Регистрация: 26.03.2011 / Сообщений: 603
Поблагодарили 708 раз(а) / Репутация: 711

По умолчанию Улыбнули))

Я вот никогда не считал, что "две головы лучше", просто с моей невнимательностью одному работать нельзя.
Я тут нарисовал классный советник, но почему-то он, падла, больше 30% в месяц не хочет зарабатывать, хотя ясно, что можно рубить капусту в больших количествах. Наверное, еще где-то у меня такие же глюки закрались, а я и не знаю
на мой взгляд написание кода советника открывает многие вещи, когда думал что черное, оно оказалось белым, и наоборот...всякая теория проверяется практикой..
даже если ТС написана и подписана известными трейдерами и теоретиками Forex...
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
05.12.2013, 16:35
Аватар для Milord
Milord Milord вне форума Местный знаток
Регистрация: 26.03.2011 / Сообщений: 603
Поблагодарили 708 раз(а) / Репутация: 711

По умолчанию какой билд последний???

дык, на mql4.com, больше некуда!Там метакватовские представители бывают хотя бы и есть ветки по всяким модернизациям. Кстати, они 529 версию запилили "с новым компилятором", не успел ты

Там некий модератор Renat отвечает как представитель МТ
извиняюсь, не понял на счет 529 билда, его выпустили или забраковали?
поясните плиз значение слова "запилили"?))
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
05.12.2013, 16:57
Аватар для ansol
ansol ansol на форуме Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,062
Поблагодарили 892 раз(а) / Репутация: 878
извиняюсь, не понял на счет 529 билда, его выпустили или забраковали?
поясните плиз значение слова "запилили"?))
В гугл по словосочетанию "дверь мне запили!"

Тестируют версию МТ4 с компилятором от МТ5, вернее, принципы МТ5 и некоторые фишки от него же. Текущая версия для тестеров 559, кажись, постоянно что-то допиливают и номер версии подкручивают, но в любом случае, скоро весь этот бардак на головы программистов обвалится, а кто не шарит в программировании, будет курить бамбук до адаптации любимого сова к новым реалиям.
Milord 
05.12.2013, 16:59
Аватар для ansol
ansol ansol на форуме Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,062
Поблагодарили 892 раз(а) / Репутация: 878
Обсуждение уже на 91 странице _http://forum.mql4.com/ru/58760/page91

Последний раз редактировалось NSerega; 05.12.2013 в 18:32.
Milord 
05.12.2013, 17:42
Аватар для Milord
Milord Milord вне форума Местный знаток
Регистрация: 26.03.2011 / Сообщений: 603
Поблагодарили 708 раз(а) / Репутация: 711

По умолчанию маленькое уточнение..)

Ну это я так, с разгону
Bid - цена покупки, именно ей оперируют все индюки и даже часто кривые советники. Между тем есть еще цена Ask - для продажи.
Если у вас на покупку Buy все верно, а на Sell неправильно, то возникает предположение, что не та цена используется. Вот и все.
Пардон, что влез, счас более вумные люди подскажут, но код надо поковырять и спрашивать по MQL4, а не "почему у меня не работает"
извините, хочу уточнить вашу мысль, в справке MQL4 читаем:

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

PHP код:
double Bid
Последняя известная цена покупки 
(предложение на покупкутекущего инструментаДля обновления необходимо использовать функцию RefreshRates().
Смтакже MarketInfo(). 
Пример:
  if(
iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
    {
     
OrderSend("EURUSD",OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point,
               
"Мой заказ #2",3,D'2005.10.10 12:30',Red);
     return(
0);
    } 
PHP код:
double Ask
Последняя известная цена продажи 
(запрашиваемая ценатекущего инструментаДля обновления необходимо использовать функцию RefreshRates().
Смтакже MarketInfo(). 
Пример:
  if(
iRSI(NULL,0,14,PRICE_CLOSE,0)<25)
    {
     
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,
               
"Order Buy #2",3,D'2005.10.10 12:30',Red);
     return;
    } 
[свернуть]

обратите внимание что ордер BUY открывается по Ask, а ордер SELL по Bid,то есть спред уходит брокеру, через которого мы работаем...
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось NSerega; 05.12.2013 в 18:32.
05.12.2013, 17:55
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
При тесте советника в журнал валятся такие сообщения в бесчисленном кол-ве
PHP код:
дата и время FastTMALine EURUSD,M5removed
дата и время FastTMALine EURUSD
,M5loaded successfully 
Видимо так и надо, но можно ли убрать подобные сообщения?
Не удобно дебажить советник.
05.12.2013, 20:55
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,033 раз(а) / Репутация: 9033
  • Отправить сообщение для eevviill с помощью Skype™
При тесте советника в журнал валятся такие сообщения в бесчисленном кол-ве
PHP код:
дата и время FastTMALine EURUSD,M5removed
дата и время FastTMALine EURUSD
,M5loaded successfully 
Видимо так и надо, но можно ли убрать подобные сообщения?
Не удобно дебажить советник.
По моему это когда ты вызываешь пользовательский индикатор, который в свою очередь вызывает ещё один пользовательский индикатор.
matro3 
05.12.2013, 22:04
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Здравствуйте. Прошу помочь в одном вопросе. Как добавить функция в советник, чтобы после получения стоп-лосса, сов не спешил открывать сделки, а ждал какое-нибудь заданное время. А то часто бывает стоп получен и тут же сов ставит снова ордер и снова стоп получает, и так раза по 3-4 подряд, когда сильная коррекция идет.
Нашел похожее решение у Кима:
PHP код:
int NumberOfBarOpenLastPos(string sym=""int tf=0int op=-1int mn=-1) {
   
datetime oot;
   
int      ik=OrdersTotal();
 
      for (
i=0i<ki++)
      {
         if (
OrderSelect(iSELECT_BY_POSMODE_HISTORY))
            if (
OrderSymbol()==sym)
               if (
OrderType()==OP_BUY || OrderType()==OP_SELL)
                  if (
op<|| OrderType()==op)
                     if (
mn<|| OrderMagicNumber()==mn)
                        if (
oot<OrderOpenTime()) oot=OrderCloseTime();
      }
   }
   return(
iBarShift(symtfootTrue));

ворачичает больше ноля - значит это следующий бар
06.12.2013, 00:51
Аватар для Dobryj
Dobryj Dobryj вне форума Почётный гражданин
Регистрация: 07.06.2012 / Сообщений: 222
Поблагодарили 294 раз(а) / Репутация: 326
eevviill прошу опять о помощи ни как не могу прописать ту логику которая нужна ...
надо поменять значение в текстовом массиве ни как не получается


PHP код:
// Готовим массив с размерами колонок
   
int ColWidth[]={9};
   
string Content[];   // количество строк
if(full_version==true)
{
Content[85];}
else
{
Content[40];}
что то вроде этого 

Последний раз редактировалось Dobryj; 06.12.2013 в 00:54.
06.12.2013, 06:49
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,033 раз(а) / Репутация: 9033
  • Отправить сообщение для eevviill с помощью Skype™
eevviill прошу опять о помощи ни как не могу прописать ту логику которая нужна ...
надо поменять значение в текстовом массиве ни как не получается


PHP код:
// Готовим массив с размерами колонок
   
int ColWidth[]={9};
   
string Content[];   // количество строк
if(full_version==true)
{
Content[85];}
else
{
Content[40];}
что то вроде этого 
Чтобы поменять надо написать например Content[1]="hgft";
Это значит что в 2-ую по порядку ячейку записано значение "hgft"
Dobryj 
06.12.2013, 09:11
Аватар для Чико
Чико Чико на форуме Местный житель
За призовое место в конкурсе 

Регистрация: 14.03.2010 / Сообщений: 654
Поблагодарили 294 раз(а) / Репутация: 298
1. Можно пропускать пипсы, т.е. подождать пока цена отползет на N*Point
2. Можно пропускать тики, т.е. подождать, пока пройдет N тиков по значению Volume()
3. можно просто "заморозить" сову на несколько (милли)секунд Sleep()

Ммм?
4.можно задать интервал времени,втечение которого не будут выставляться ордера

extern int delta_tm=60; //задаваемый интервал (60 секунд)
//----------------------------------------------------------------------
int tm0=TimeCurrent(); //запись времени закрытия ордера
//----------------------------------------------------------------------
int tm1=TimeCurrent(); //проверка текущего времени
if((tm1-tm0)<delta_tm))
return(0);

Последний раз редактировалось Чико; 06.12.2013 в 09:14.
06.12.2013, 09:24
Аватар для ansol
ansol ansol на форуме Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,062
Поблагодарили 892 раз(а) / Репутация: 878
4.можно задать интервал времени,втечение которого не будут выставляться ордера
Так выше чел отписался - его устраивает открытие на следующей свече, все просто, правда, кимовский уродский код не вполне отвечает этой идее, но главное - результат!
06.12.2013, 09:34
Аватар для Чико
Чико Чико на форуме Местный житель
За призовое место в конкурсе 

Регистрация: 14.03.2010 / Сообщений: 654
Поблагодарили 294 раз(а) / Репутация: 298
Так выше чел отписался - его устраивает открытие на следующей свече, все просто, правда, кимовский уродский код не вполне отвечает этой идее, но главное - результат!
Ну и ладушки..))
06.12.2013, 11:20
Аватар для Dobryj
Dobryj Dobryj вне форума Почётный гражданин
Регистрация: 07.06.2012 / Сообщений: 222
Поблагодарили 294 раз(а) / Репутация: 326
Чтобы поменять надо написать например Content[1]="hgft";
Это значит что в 2-ую по порядку ячейку записано значение "hgft"
Спасибо но немного не то , это функция отвечает за количество нарисованных строк в таблице, количество в массиве Content[]
и есть число строк ,как его поменять с Content[85]на Content[40]
при
bool int A=true;
если так как вы написали прописывать значения по новому адресу , все равно остануться пустые строки таблицы ...

Последний раз редактировалось Dobryj; 06.12.2013 в 11:25.
06.12.2013, 11:33
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,033 раз(а) / Репутация: 9033
  • Отправить сообщение для eevviill с помощью Skype™
Спасибо но немного не то , это функция отвечает за количество нарисованных строк в таблице, количество в массиве Content[]
и есть число строк ,как его поменять с Content[85]на Content[40]
при
bool int A=true;
если так как вы написали прописывать значения по новому адресу , все равно остануться пустые строки таблицы ...
А.
PHP код:
ArrayResize(Content,40); 
Dobryj 
06.12.2013, 11:41
Аватар для Чико
Чико Чико на форуме Местный житель
За призовое место в конкурсе 

Регистрация: 14.03.2010 / Сообщений: 654
Поблагодарили 294 раз(а) / Репутация: 298
...при bool int A=true;
...
Что это за переменная такая??..))..))Должно быть либо bool,либо int-одно из двух..))
Если int,то true не прокатит-нужны цифровые значения..
Dobryj 
06.12.2013, 11:52
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,033 раз(а) / Репутация: 9033
  • Отправить сообщение для eevviill с помощью Skype™
Что это за переменная такая??..))..))Должно быть либо bool,либо int-одно из двух..))
Если int,то true не прокатит-нужны цифровые значения..
Не правильно.
Напии
PHP код:
bool gtr=true;
Alert(gtr); 
Выйдет еденица.
bool ничто инное как 0 и 1
06.12.2013, 12:41
Аватар для Milord
Milord Milord вне форума Местный знаток
Регистрация: 26.03.2011 / Сообщений: 603
Поблагодарили 708 раз(а) / Репутация: 711

По умолчанию Как закрыть все ордера???

Подскажите профи MQL4, как закрыть все ордера на счете, не важно какой у них профит положительный или отрицательный,неважно BUY или SELL???
желателен код покороче, и с пояснениями логики работы...
ЗАРАНЕЕ СПАСИБО!
например:
PHP код:
int start()
{
RefreshRates();
if(
OrdersTotal()<MaxOrders)
  { 
    if(
A>B)  
     {   
     
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,"",Magic,0,OrangeRed);
     }

  if(
t>P)
  
//закрываем все ордера
   
{.....}

  }
return(
0);

тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 06.12.2013 в 12:56.
06.12.2013, 12:47
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,033 раз(а) / Репутация: 9033
  • Отправить сообщение для eevviill с помощью Skype™
Подскажите профи MQL4, как закрыть все ордера на счете, не важно какой у них профит положительный или отрицательный,неважно BUY или SELL???
желателен код покороче, и с пояснениями логики работы...
ЗАРАНЕЕ СПАСИБО!
например:
PHP код:
int start()

 if(
A>B)  
  {
   
OrderSend(.... );
  }

  if(
t>P)
  
//закрываем все ордера
   
{.....}

return(
0);

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

PHP код:
////////////////////////////////////////////////////////////////////////////////
void Close_all()
{
for(
int i=OrdersTotal()-1i>=0i--)
 {
 if(
OrderSelect(iSELECT_BY_POS))
 {
 if(
OrderMagicNumber()==magic)
 {
 if(
OrderSymbol()==Symbol())
 {
 
bool ticket_ex=false;
 for (
int j_ex 0;j_ex MaxAttemptsj_ex++)
 {
 while(
IsTradeContextBusy()) Sleep(pause_if_busy*1000);
 
RefreshRates();
 
 if(
OrderType()==OP_BUY ticket_ex=OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Yellow); 
 if(
OrderType()==OP_SELLticket_ex=OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Yellow);
 if(
OrderType()==OP_SELLSTOP || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYLIMITticket_ex=OrderDelete(OrderTicket(),CLR_NONE);
 if(
ticket_ex==true)break;
 }
 }
 }
 }
 }
 

[свернуть]
Milord 
06.12.2013, 13:49
Аватар для Чико
Чико Чико на форуме Местный житель
За призовое место в конкурсе 

Регистрация: 14.03.2010 / Сообщений: 654
Поблагодарили 294 раз(а) / Репутация: 298
...Если int,то true не прокатит-нужны цифровые значения..
Был неправ-проверил int g=true; ...проходит..))
Ответить

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


Опции темы

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

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



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


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