1_Советник на несколько стратегий МТ4 - страница 2

 
Leanid Aladzyeu:

Спс но мне привычнее в старом коде писать. так норм ? Коды не пишутся мать их за ногу

скрин

Пожалуйста, код вставляйте правильно, а не через картинки: Правильно вставляем код на форуме
 
Leanid Aladzyeu:

Спс но мне привычнее в старом коде писать. так норм ? Коды не пишутся мать их за ногу

скрин

Общая логика норм, но что-то ты с маджиками намудрил) Почему не сделать маджик параметром в функции? В текущей реализации у тебя маджик всегда будет равен MagicStrategia1 если он определён и MagicStrategia2, если первый маджик неопределён.
Имхо, сделай просто номера маджиков константами
const int Magic0=15,
          Magic1=5;

И дальше функция проверки:

int CountTrades(int magic=-1) {
        int count=0;
        for(int i=0;i<OrdersTotal();i++){
                if(!OrderSelect(i,SELECT_BY_POS)) continue;
                if(magic==-1){
                        if(OrderSymbol()==_Symbol && OrderType()<=OP_SELL && (OrderMagicNumber()==Magic0 || OrderMagicNumber()==Magic1)) count++;
                }else{
                        if(OrderSymbol()==_Symbol && OrderType()<=OP_SELL && OrderMagicNumber()==magic) count++;
                }
        }
        return count;
}
Leanid Aladzyeu:

Спс но мне привычнее в старом коде писать. так норм ? Коды не пишутся мать их за ногу

скрин

Общая логика норм, но что-то ты с маджиками намудрил) Почему не сделать маджик параметром в функции? В текущей реализации у тебя маджик всегда будет равен MagicStrategia1 если он определён и MagicStrategia2, если первый маджик неопределён.
Имхо, сделай просто номера маджиков константами
const int Magic0=15,
          Magic1=5;

И дальше функция проверки:

int CountTrades(int magic=-1) {
        int count=0;
        for(int i=0;i<OrdersTotal();i++){
                if(!OrderSelect(i,SELECT_BY_POS)) continue;
                if(magic==-1){
                        if(OrderSymbol()==_Symbol && OrderType()<=OP_SELL && (OrderMagicNumber()==Magic0 || OrderMagicNumber()==Magic1)) count++;
                }else{
                        if(OrderSymbol()==_Symbol && OrderType()<=OP_SELL && OrderMagicNumber()==magic) count++;
                }
        }
        return count;
}
На счёт независимости стратегий.... тут бы я поспорил. Нижние стратегии не исполнятся пока работу не завершат верхние.
 
Karputov Vladimir:
Пожалуйста, код вставляйте правильно, а не через картинки: Правильно вставляем код на форуме

Мы с Вами это уже обсуждали через л.с. . И бан я получал за то что пытался вставить код много раз а система расценила это как спам. 

 
Leanid Aladzyeu:

Мы с Вами это уже обсуждали через л.с. . И бан я получал за то что пытался вставить код много раз а система расценила это как спам. 

Меняйте браузер. Будут картинки вместо кода - буду удалять.
 
Ivan Vorontsov:
Общая логика норм, но что-то ты с маджиками намудрил) Почему не сделать маджик параметром в функции? В текущей реализации у тебя маджик всегда будет равен MagicStrategia1 если он определён и MagicStrategia2, если первый маджик неопределён.
Имхо, сделай просто номера маджиков константами

И дальше функция проверки:

Общая логика норм, но что-то ты с маджиками намудрил) Почему не сделать маджик параметром в функции? В текущей реализации у тебя маджик всегда будет равен MagicStrategia1 если он определён и MagicStrategia2, если первый маджик неопределён.
Имхо, сделай просто номера маджиков константами

И дальше функция проверки:

На счёт независимости стратегий.... тут бы я поспорил. Нижние стратегии не исполнятся пока работу не завершат верхние.

Основным значением было минимизировать переделку функций. у меня получилось добавление 1 тела и 2 строки , нормально по моему)

А  "Нижние стратегии не исполнятся" Поподробнее если можно. 

Почему  " Нижние стратегии не исполнятся пока работу не завершат верхние" ведь в случае неудачи верхних стратегий  инициатива (или ) тик переидет в стратегию что ниже.

 
Leanid Aladzyeu:

Основным значением было минимизировать переделку функций. у меня получилось добавление 1 тела и 2 строки , нормально по моему)

А  "Нижние стратегии не исполнятся" Поподробнее если можно. 

Почему  " Нижние стратегии не исполнятся пока работу не завершат верхние" ведь в случае неудачи верхних стратегий  инициатива (или ) тик переидет в стратегию что ниже.

Ты потом запутаешься просто в своём коде когда взглянешь на него через пол-года. Но впрочем тут дело твоё)
Неудача это тоже результат выполнения. Любой результат, на самом деле, передаст поток управления следующему коду.
К примеру, верхняя стратегия у тебя выполняет какие-нибудь сложные математические вычисления, которые происходят за 100мс. Вторая стратегия будет вынуждена ожидать пока первая стратегия завершится, а за это время может прийти пара тиков, которые изменят ситуацию.
 
Ivan Vorontsov:
Ты потом запутаешься просто в своём коде когда взглянешь на него через пол-года. Но впрочем тут дело твоё)
Неудача это тоже результат выполнения. Любой результат, на самом деле, передаст поток управления следующему коду.
К примеру, верхняя стратегия у тебя выполняет какие-нибудь сложные математические вычисления, которые происходят за 100мс. Вторая стратегия будет вынуждена ожидать пока первая стратегия завершится, а за это время может прийти пара тиков, которые изменят ситуацию.

Понял мысль. Огромное Спасибо. Буду Благодарен если у Вас есть видео или сайты по программированию которыми вы пользуетесь и поделитесь ими.

Есть ли какой способ распределить тик в несколько направлений?

 
Leanid Aladzyeu:

Понял мысль. Огромное Спасибо. Буду Благодарен если у Вас есть видео или сайты по программированию которыми вы пользуетесь и поделитесь ими.

Есть ли какой способ распределить тик в несколько направлений?

Честно говоря я уже и не помню откуда всё это подчерпнул. Что-то из JS, что-то из С++/С#.
Универсального способа нет. Только разделять советников и ставить их на разные вкладки. Но, если я правильно помню, событие Timer срабатывает вне зависимости от того где сейчас поток исполнения. Будет ли он работать параллельно или же просто перехватит управление - не знаю. Можно провести пару тестов, посмотреть на результат.
 
Leanid Aladzyeu:

Понял мысль. Огромное Спасибо. Буду Благодарен если у Вас есть видео или сайты по программированию которыми вы пользуетесь и поделитесь ими.

Есть ли какой способ распределить тик в несколько направлений?

Вы проигнорировали мое предложение с книгой С. Ковалева? Это первое, что Вам нужно прочитать! Также - Совершенный код С. Макконнелла - желательно. Осилите - сможете написать все что угодно + качественно и расширяемо.
 
Tapochun:
Вы проигнорировали мое предложение с книгой С. Ковалева? Это первое, что Вам нужно прочитать! Также - Совершенный код С. Макконнелла - желательно. Осилите - сможете написать все что угодно + качественно и расширяемо.

Книги хорошо, но сейчас 21 век.если брать соотношение времени и опыта .  Я выбираю Видео , сейчас пытаюсь найти Сайт где выкладывают готовые функции, да и свой положу.  и уроки Видео в данный момент смотрю

Да и не умею я на экране книги читать, пробывал не то что в руках держать! 

Причина обращения: