Ответить
16.01.2013, 17:15
Аватар для Allis Amazing
Allis Amazing Allis Amazing вне форума Интересующийся
Регистрация: 22.07.2012 / Сообщений: 19
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Ты может быть не представляешь сколько вариантов понимания слова "отобрать"?
Если по нашему... "лишить чего-либо, то-есть, отнять у вас и приумножить у нас"... то просто надо найти все строки содержащие OrderModify и их удалить или закомментировать...
Как найти именно модификацию открытых ордеров? Как эта функция называется?
16.01.2013, 17:57
Аватар для AlexeyVik
AlexeyVik AlexeyVik на форуме Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,625
Поблагодарили 3,758 раз(а) / Репутация: 3750
Сообщение от: Allis Amazing
Как найти именно модификацию открытых ордеров? Как эта функция называется?
Так и называется OrderModify()
16.01.2013, 19:49
Аватар для Allis Amazing
Allis Amazing Allis Amazing вне форума Интересующийся
Регистрация: 22.07.2012 / Сообщений: 19
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Хех, ну суть вопроса заключалась именно по открытым ордерам, ведь OrderModify может и отложки править? Или там по-другому называется?
16.01.2013, 21:36
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Сообщение от: Allis Amazing
Хех, ну суть вопроса заключалась именно по открытым ордерам, ведь OrderModify может и отложки править? Или там по-другому называется?
OrderModify модифицирует ордера любого типа. Обычно перед модификацией выбирается ордер, потом проверяется тип ордера, потом проверяются надобность модификации, а уже потом сама модификация. Хотя конечно, есть и другие варианты.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 16.01.2013 в 21:42.
16.01.2013, 23:17
Аватар для Allis Amazing
Allis Amazing Allis Amazing вне форума Интересующийся
Регистрация: 22.07.2012 / Сообщений: 19
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
OrderModify - там таких оооочень много....
Код:
PrevTime = 0;  
   forsmaj = false;
   if (Minute() <= 18) 
      ForsTime = 18;
   if (Minute() >= 42)
      ForsTime = 48;
А вот эти цифры что могут означать? Мне надо что бы обработка Форс-Мажора, ну отключение терминала или и-нета, не включалась планово, по времени (это происходит несколько раз в сутки), а только когда я сама захочу или когда действительно пропадёт связь....
17.01.2013, 12:58
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Сообщение от: Allis Amazing
Хех, ну суть вопроса заключалась именно по открытым ордерам, ведь OrderModify может и отложки править? Или там по-другому называется?
Сообщение от: Allis Amazing
OrderModify - там таких оооочень много....
Код:
PrevTime = 0;  
   forsmaj = false;
   if (Minute() <= 18) 
      ForsTime = 18;
   if (Minute() >= 42)
      ForsTime = 48;
А вот эти цифры что могут означать? Мне надо что бы обработка Форс-Мажора, ну отключение терминала или и-нета, не включалась планово, по времени (это происходит несколько раз в сутки), а только когда я сама захочу или когда действительно пропадёт связь....
Здесь прошедшее количество минут текущего часа сравнивается с цифрой и присваивается значение переменной.
Поможет вот эта функция
Код:
 
bool IsConnected( )Возвращает состояние главного соединения 
 клиентского терминала с сервером, по которому производится 
подкачка данных. 
TRUE  - связь с сервером установлена, 
FALSE - связь с сервером отсутствует или  прервана.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 17.01.2013 в 13:03.
17.01.2013, 13:01
Аватар для Allis Amazing
Allis Amazing Allis Amazing вне форума Интересующийся
Регистрация: 22.07.2012 / Сообщений: 19
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Здесь прошедшее количество минут текущего часа сравнивается с цифрой и присваивается значение переменной.
Что-то чую совсем потеплело!!! А как мне так сделать, что бы он всё время считал что время НЕ настало?!!!))))
17.01.2013, 13:05
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Сообщение от: Allis Amazing
Что-то чую совсем потеплело!!! А как мне так сделать, что бы он всё время считал что время НЕ настало?!!!))))
Приведён слишком маленький кусок кода.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
17.01.2013, 19:00
Аватар для Allis Amazing
Allis Amazing Allis Amazing вне форума Интересующийся
Регистрация: 22.07.2012 / Сообщений: 19
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Приведён слишком маленький кусок кода.
Вы добрый человек, не хотелось бы этим злоупотре*****...
(Модераторы улыбнули)) Слово в общем не плохое)
Там добрых полторы тЫщи строк..... Модификация упоминается я даже не в состоянии посчитать сколько раз, а Форс-Мажор в двух местах, но ооочень длинно....
Может быть можно Вам его отправить на почту?
17.01.2013, 19:54
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Сообщение от: Allis Amazing
Вы добрый человек, не хотелось бы этим злоупотре*****...
(Модераторы улыбнули)) Слово в общем не плохое)
Там добрых полторы тЫщи строк..... Модификация упоминается я даже не в состоянии посчитать сколько раз, а Форс-Мажор в двух местах, но ооочень длинно....
Может быть можно Вам его отправить на почту?
Это не ко мне. В подписи красным написано.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
17.01.2013, 20:11
Аватар для Allis Amazing
Allis Amazing Allis Amazing вне форума Интересующийся
Регистрация: 22.07.2012 / Сообщений: 19
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Это не ко мне. В подписи красным написано.
Это я видела....
Но реально не знаю какой именно кусок кода надо выложить....

Может быть этот?

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

Код:
// счетчик времени для контроля пропадания связи
datetime PrevTime = 0;
// флаг наступления форс-мажора
bool forsmaj = false;
// счетчик времени с последнего планового форс-мажора
datetime ForsTime = 0;
// размер стопов
int StopLevel = 18;
// c учетом новостей
int StopLoss_News = 0;
int TakeProfit_News = 0;
int TP_Perev_News = 0;
int SL_Perev_News = 0;
Или этот?
Код:
void CheckForsMajor()
{
//13
   writeLogs("13. Старт форсмажора. Флаг форсмажора в труе");
   forsmaj = true;
   writeLogs("13. Обнуляем все верхние и нижние массивы");
   for (int i = 0; i < numCen; i++)
Или ещё вот так...
Код:
writeLogs("13. Завершение обработки форсмажора. Флаг в фалсе");    
   PrevTime = 0;  
   forsmaj = false;
   if (Minute() <= 18) 
      ForsTime = 18;
   if (Minute() >= 42)
      ForsTime = 48;
}

bool OrderOpen(int typeOrder, double lot, double OpenPrice, double StopLoss, double TakeProfit, int NumOtl, bool up=true, bool perev = false, bool otlperev = false)
А ещё вот здесь:
Код:
bool CheckTimeFors()
{
//18
   int i;
   bool up = false;
   bool down = false;
   bool upfind = true;
   bool downfind = true;
   if (MarketInfo(Symbol(), MODE_STOPLEVEL) < 20)
   {
      if ((Minute() >= 12 && Minute() <= 18) || (Minute() >= 42 && Minute() <= 48))
      {
         if (MathAbs(Minute() - ForsTime) > 10)
         {
            writeLogs("18. Проверяем возможность запуска форсмажора по расписанию. Счетчик времени: " + ForsTime);
            up = true;
            down = true;
            for (i = 1; i < numCen; i++)
            {
               if (arrayOtlUp[i] > 0 && up && upfind)
               {
                  if (OrderSelect(arrayOtlUp[i], SELECT_BY_TICKET))
                  {
                     upfind = false;
                     if (MathAbs(OrderOpenPrice() - Bid) < 110*Point)
                     {
                        up = false;
Не исключено что уже повторяюсь, но это ниже, почти в конце:
Код:
 if (Minute() > 18 && Minute() < 42)
         {
            if (ForsTime != 18)
               writeLogs("18. Счетчик времени: 18");
            ForsTime = 18;
         }
         else
         {
            if (ForsTime != 48)
               writeLogs("18. Счетчик времени: 48");
            ForsTime = 48;
         }
      }
      if (up && down)
      {
         writeLogs("18. Начинаем форсмажор по расписанию");
         step = 0;
         ForsTime = Minute();
         return(false);
      }
   }
   return(true);
[свернуть]

Последний раз редактировалось chocolate; 19.01.2013 в 13:24.
17.01.2013, 21:41
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Сообщение от: Allis Amazing
Это я видела....
Но реально не знаю какой именно кусок кода надо выложить....
лучше выложить целиком файл в ветку Доработка ботов (советников, индикаторов) и подробно описать что нужно переделать. Там программисты любят корёжить чужой код.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
17.01.2013, 21:45
Аватар для Allis Amazing
Allis Amazing Allis Amazing вне форума Интересующийся
Регистрация: 22.07.2012 / Сообщений: 19
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
А по этим кусочкам не видно где можно сделать так, что бы Сова думала что время Форс-мажора не настало? Того который по расписанию.....
Там есть же минуты 48 и 12, как Вы сказали это ЧАС, а если это сделать ДНЁМ или НЕДЕЛЕЙ?
А лучше сразу ГОДОМ, вот бы там были 235 и 130 дней

Последний раз редактировалось Allis Amazing; 17.01.2013 в 21:51.
17.01.2013, 22:42
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Сообщение от: Allis Amazing
А по этим кусочкам не видно где можно сделать так, что бы Сова думала что время Форс-мажора не настало? Того который по расписанию.....
Там есть же минуты 48 и 12, как Вы сказали это ЧАС, а если это сделать ДНЁМ или НЕДЕЛЕЙ?
А лучше сразу ГОДОМ, вот бы там были 235 и 130 дней
Там не указывается час, указаны только минуты. Так уж повелось на свете что 48, 18 минут случается каждый час.
А условие Minute() <= 18 истинно от 00 минут, до 18 минут. Соответственно условие Minute() >= 42 истинно от 42 минут, до 59 минут.
Естественно каждый час, если конечно не задан час где то в других кусках кода.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
17.01.2013, 23:09
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 532
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
Ого
PHP код:
  for (1numCeni++)
            {
               if (
arrayOtlUp[i] > && up && upfind)
               {
                  if (
OrderSelect(arrayOtlUp[i], SELECT_BY_TICKET))
                  { 
интересно как выборка ордеров происходит у той совы, что кусок кода выложен Allis Amazing...
18.01.2013, 01:10
Аватар для Allis Amazing
Allis Amazing Allis Amazing вне форума Интересующийся
Регистрация: 22.07.2012 / Сообщений: 19
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Там не указывается час, указаны только минуты. Так уж повелось на свете что 48, 18 минут случается каждый час.
А условие Minute() <= 18 истинно от 00 минут, до 18 минут. Соответственно условие Minute() >= 42 истинно от 42 минут, до 59 минут.
Естественно каждый час, если конечно не задан час где то в других кусках кода.
А условие Minute() вот можно заменить на Month() и что б там было <= 2 и >= 11, в Новый год пусть хоть уработается этот Форс-мажор по плану)))

Ого
PHP код:
  for (1numCeni++)
            {
               if (
arrayOtlUp[i] > && up && upfind)
               {
                  if (
OrderSelect(arrayOtlUp[i], SELECT_BY_TICKET))
                  { 
интересно как выборка ордеров происходит у той совы, что кусок кода выложен Allis Amazing...
Если бы знала о чём речь, ответила бы....
18.01.2013, 04:35
Аватар для ale002
ale002 ale002 вне форума ::: __,,,^._.^,,,__ :::
Регистрация: 28.02.2010 / Сообщений: 1,246
Поблагодарили 2,509 раз(а) / Репутация: 2535
Сообщение от: Allis Amazing
А условие Minute() вот можно заменить на Month()
А можно после

bool CheckTimeFors()
{

написать

return(false);
18.01.2013, 05:31
Аватар для AlexeyVik
AlexeyVik AlexeyVik на форуме Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,625
Поблагодарили 3,758 раз(а) / Репутация: 3750
Сообщение от: Allis Amazing
А по этим кусочкам не видно где можно сделать так, что бы Сова думала что время Форс-мажора не настало? Того который по расписанию.....
Там есть же минуты 48 и 12, как Вы сказали это ЧАС, а если это сделать ДНЁМ или НЕДЕЛЕЙ?
А лучше сразу ГОДОМ, вот бы там были 235 и 130 дней
Я не совсем понял что ты хочешь сделать, но если надо чтобы никогда небыло выполнено условие if (Minute() > 18 && Minute() < 42) Можно просто поставить одинаковое количество минут if (Minute() > 30 && Minute() < 30) или if (Minute() > 60 && Minute() < 0)
Но надо понимать, что происходит по этому условию и чего надо получить исключая из советника это действие.

Последний раз редактировалось AlexeyVik; 18.01.2013 в 05:41.
18.01.2013, 07:54
Аватар для Allis Amazing
Allis Amazing Allis Amazing вне форума Интересующийся
Регистрация: 22.07.2012 / Сообщений: 19
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
А можно после

bool CheckTimeFors()
{

написать

return(false);
Код:
bool CheckTimeFors()
{
return(false);
//18
   int i;
   bool up = false;
   bool down = false;
   bool upfind = true;
   bool downfind = true;
Благодарствую что не оставили без внимания! Вот в сюда?

Я не совсем понял что ты хочешь сделать, но если надо чтобы никогда небыло выполнено условие if (Minute() > 18 && Minute() < 42) Можно просто поставить одинаковое количество минут if (Minute() > 30 && Minute() < 30) или if (Minute() > 60 && Minute() < 0)
Но надо понимать, что происходит по этому условию и чего надо получить исключая из советника это действие.
Ой, совсем где-то уже горячо, почти нашли, а вот с этим тогда что делать?
РАВНО (=) чему должно быть? 30? А не будет тупо каждые полчаса срабатывать?
Код:
writeLogs("13. Завершение обработки форсмажора. Флаг в фалсе");    
   PrevTime = 0;  
   forsmaj = false;
   if (Minute() <= 18) 
      ForsTime = 18;
   if (Minute() >= 42)
      ForsTime = 48;
}
18.01.2013, 08:24
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Сообщение от: Allis Amazing

Ой, совсем где-то уже горячо, почти нашли, а вот с этим тогда что делать?
РАВНО (=) чему должно быть? 30? А не будет тупо каждые полчаса срабатывать?
Код:
writeLogs("13. Завершение обработки форсмажора. Флаг в фалсе");    
   PrevTime = 0;  
   forsmaj = false;
   if (Minute() <= 18) 
      ForsTime = 18;
   if (Minute() >= 42)
      ForsTime = 48;
}
Можно подставить несуществующие значения. Тогда условия всегда будут ложными.
if (Minute() <= -1)
ForsTime = 18;
if (Minute() >= 60)
ForsTime = 48;
Только вот что от этого будет происходить в программе не известно.
Метод научного тыка не очень практичен в программировании.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ответить

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


Опции темы

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

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



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


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