Конкурсы » Конкурс торговых роботов "Cyber Trade" » Cybertrade. Этап Двенадцатый. Вопросы и обсуждение
+ Подписаться
Страница 6 из 19 ПерваяПервая ... 4567816 ... ПоследняяПоследняя
  1. 2,682
    Комментарии
    28
    Темы
    2807
    Репутация Pro
    Аватар для sydiya  
    Сурововец

    6 Медалей
    Цитата Сообщение от GeoMo Посмотреть сообщение
    Посмотрите на stoploss и takeprofit в функции OrderSend(), вероятно они все же не нулевые, на что и намекал Zerkmax в самом начале. Хотя, судя по всему, робот даже не пробует выставлять ордер. Может "временная заглушка" какая стоит?
    Да он вообще не дышит.А насчет стоп приказов, я почитал спецификации, он обязан выставлять их нулевыми и потом модифицировать.
  2. 2,008
    Комментарии
    4
    Темы
    2040
    Репутация Pro
     
    Мастер форумных наук

    3 Медалей
    Цитата Сообщение от sydiya Посмотреть сообщение
    Советник для получения времени для сравнения, запрашивает время открытия нулевого дневного бара. Боюсь что функция возвращает ноль из за этого нечего не происходит
    Ну выложи этот кусок кода, посмотрим
  3. 2,682
    Комментарии
    28
    Темы
    2807
    Репутация Pro
    Аватар для sydiya  
    Сурововец

    6 Медалей
    Цитата Сообщение от Дмитрий2 Посмотреть сообщение
    Ну выложи этот кусок кода, посмотрим
    Не очень понимаю в каком виде здесь принято выкладывать, но сейчас попробую.
  4. 2,682
    Комментарии
    28
    Темы
    2807
    Репутация Pro
    Аватар для sydiya  
    Сурововец

    6 Медалей
    string Open_session ="02:00"; //Время открытия иследуемой сессии
    string Close_session = "13:00"; // Время закрытия иследуемой сессии

    //----------------------------Стартуем--------------------------------

    int start()
    { //-общая открывающая скобка
    int Shift_open_H1, //Номер часового бара с
    //тем же временем открытия что и дневной
    Shift_open_bars_session, //Номер часового бара с которого начинается сессия
    Shift_close_bars_session, //Номер часового бара на котором заканчивается сессия



    datetime Time_open_day, //Время открытия дневного бара
    Time_open_session, //Время начала исследуемой сессии в формате datatime
    Time_close_session; //Время закрытия исследуемой сессии в формате datatime

    string String_open_D0; //Время открытия первого часового бара в иследуемый день
    //в формате строки "yyyy.mm.dd"

    Time_open_day=iTime( Symb,PERIOD_D1, 0); //Запрашиваем время открытия дневного сегодняшнего бара

    String_open_D0=TimeToStr( Time_open_day, TIME_DATE); //Преобразовываем время открытия
    //сегодняшнего дневного бара из формата datatime в формат строки "yyyy.mm.dd"

    Time_open_session= StrToTime( String_open_D0+" "+Open_session); //Запрашиваем время начала
    //исследуемой сессии в формате datatime

    Time_close_session= StrToTime( String_open_D0+" "+Close_session); //Запрашиваем время закрытия
    //исследуемой сессии в формате datatime
    //-------Определяем начало образования нового бара на часовых тайфремах--------------
    static datetime New_Time=0; // При запуске терминала время равно 0
    New_Bar=false; //Нового бара нет
    if(New_Time!=iTime(Symb,PERIOD_H1,0)) // Сравниваем время
    {
    New_Time=iTime(Symb,PERIOD_H1,0); // Теперь время такое
    New_Bar=true; // Поймался новый бар
    }
    else
    {
    New_Bar=false;
    }

    if(TimeLocal()>=Time_close_session&&TimeLocal()<Ti me_close_session+120&&New_Bar==true )
    //Если время сервера больше времени закрытия сессии не более чем на 2 минуты и образовался
    //новый бар, то считаем дальше
    {//================================================== ======================

    Ticket_Buy=OrderSend(Symb,OP_BUY,Lts,Ask,0,0,0,NUL L,Magic,0,CLR_NONE);
    //-----------------Установка стоп приказов---------------


    Ticket_Sell=OrderSend(Symb,OP_SELL,Lts,Bid,0,0, 0,NULL,Magic,0,CLR_NONE);
    //----------------Установка стоп приказов---------------------

    }//================================================== ======================


    return(0);

    } //-общая закрывающая скобка
    Функция которую я выделил красным боюсь возвращает ноль.
    Все детали расчета стоимости и стоп приказов я упускаю.
    Цель такая- по окончании часовой свечи в 13:00 выставить ордера. Не выставляет и не чего не пишет. То есть внутрь тела оператора выделенного синим не попадает.
  5. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от sydiya Посмотреть сообщение
    Функция которую я выделил красным боюсь возвращает ноль.
    Все детали расчета стоимости и стоп приказов я упускаю.
    Цель такая- по окончании часовой свечи в 13:00 выставить ордера. Не выставляет и не чего не пишет. То есть внутрь тела оператора выделенного синим не попадает.
    TimeLocal - эт не время торгового сервера..
    Эт время машины, на которой стоит бот..
    Для теста - некритично, а в живом боте надо писать TimeCurrent
  6. 2,008
    Комментарии
    4
    Темы
    2040
    Репутация Pro
     
    Мастер форумных наук

    3 Медалей
    Цитата Сообщение от sydiya Посмотреть сообщение
    Функция которую я выделил красным боюсь возвращает ноль.
    Ну а вобще он на другом счете работает этот советник?
    Переменная Symb может как-то обнуляется, или название инструмента неверно указано. В конце названия присутствует "_FX"?
  7. 3,168
    Комментарии
    1
    Темы
    3184
    Репутация Pro
    Аватар для SergP  
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от sydiya Посмотреть сообщение
    Функция которую я выделил красным боюсь возвращает ноль.
    Все детали расчета стоимости и стоп приказов я упускаю.
    Цель такая- по окончании часовой свечи в 13:00 выставить ордера. Не выставляет и не чего не пишет. То есть внутрь тела оператора выделенного синим не попадает.
    гыыы.... а навёрнуто ужмасть :eek:


    int old_bars;

    start()
    {
    if(iBars(Symb,PERIOD_H1)==old_bars) return; // нету нового часового бара вываливаемся
    if(Hour()!=13) return ; // вываливаемся ежели бар не тот


    ставим ордера;


    old_bars=iBars(Symb,PERIOD_H1); // тут надо аккуратно... нужно ордера ставить гарантированно.... иначе , в случае сбоя... следущая попытка будет только на следущий день


    }

    примерно так.....:thumbsup_002:

    запускать можно на любом таймфреме

    но это для одного символа...
    ежели мультивалютник, то нужно делать old_bars[]... массив флагов
  8. 2,682
    Комментарии
    28
    Темы
    2807
    Репутация Pro
    Аватар для sydiya  
    Сурововец

    6 Медалей
    Цитата Сообщение от SergP Посмотреть сообщение
    гыыы.... а навёрнуто ужмасть :eek:

    int old_bars;
    start()
    {
    if(iBars(Symb,PERIOD_H1)==old_bars) return; // нету нового часового бара вываливаемся
    if(Hour()!=13) return ; // вываливаемся ежели бар не тот

    ставим ордера;

    old_bars=iBars(Symb,PERIOD_H1); // тут надо аккуратно... нужно ордера ставить гарантированно.... иначе , в случае сбоя... следущая попытка будет только на следущий день

    }

    примерно так.....:thumbsup_002:

    запускать можно на любом таймфреме

    но это для одного символа...
    ежели мультивалютник, то нужно делать old_bars[]... массив флагов
    Не вкурил!
    old_bars=iBars(Symb,PERIOD_H1); // А когда придет новый бар количество баров на графике увеличится или останется неизменным и до какой степени они будут увеличиваться. Скажем на графике 500 баров, появился еще один, тот который станет 501 он уйдет с графика?. Так или не так. То есть кол-во баров на графике всегда одно и то же?
  9. 2,682
    Комментарии
    28
    Темы
    2807
    Репутация Pro
    Аватар для sydiya  
    Сурововец

    6 Медалей
    Цитата Сообщение от Дмитрий2 Посмотреть сообщение
    Ну а вобще он на другом счете работает этот советник?
    Переменная Symb может как-то обнуляется, или название инструмента неверно указано. В конце названия присутствует "_FX"?
    На другом счете, при чем на том который давался для тестирования все работает. Что то явно со временем, но что не могу понять.
  10. 2,682
    Комментарии
    28
    Темы
    2807
    Репутация Pro
    Аватар для sydiya  
    Сурововец

    6 Медалей
    Цитата Сообщение от EQU Посмотреть сообщение
    TimeLocal - эт не время торгового сервера..
    Эт время машины, на которой стоит бот..
    Для теста - некритично, а в живом боте надо писать TimeCurrent
    Согласен. Но все равно время той машины где стоит бот в какой то момент выполнит условие if(TimeLocal()>=Time_close_session&&TimeLocal()<Ti me_close_session+120&&New_Bar==true )

Вверх
РегистрацияX

чтобы писать, читать, комментировать