Форум трейдеров » Торговые роботы, советники, индикаторы » Вопросы программирования
+ Подписаться
Страница 51 из 87 ПерваяПервая ... 41495051525361 ... ПоследняяПоследняя
  1. 6,556
    Комментарии
    18
    Темы
    6883
    Репутация Pro
    Аватар для greych  
    Старожил

    7 Медалей
    Подскажите, плз, какими свойствами наделить линию, чтоб она сразу выделялась (не путать с "выпячивалась":)) после прорисовки?
  2. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от greych Посмотреть сообщение
    Подскажите, плз, какими свойствами наделить линию, чтоб она сразу выделялась (не путать с "выпячивалась":)) после прорисовки?
    Попробуй мессидж кинуть..

    WM_LBUTTONDBLCLK
    fwKeys = wParam; // key flags
    xPos = LOWORD(lParam); // horizontal position of cursor
    yPos = HIWORD(lParam); // vertical position of cursor


    координаты - WindowXOnDropped( ) -для хПоз, для у - аналогично

    ps

    Добрался до терминала - проверил.. Работает - без проблем.. Правда, на всяк случ - толщина линии 3 писка..
  3. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    а это - код
    Код:
       int x=WindowXOnDropped();
       int y=WindowYOnDropped()<<16|x;
    ....
       int HW=WindowHandle(Symbol(),Period());
       SendMessageA(HW,0x0203,0,y);
    Срабатывает после того, как ты мышой перетянешь мой скрипт, который твой, но не тот твой, который не мой..:D
    И бросишь его на график..
    SendMessageA - подключаешь, как удобнее - или с юзер32 - импортом, или со штатного ВинЮзер32 - инклюдом..

    Код должен быть расположен после прорисовки 1 линии..
  4. 6,556
    Комментарии
    18
    Темы
    6883
    Репутация Pro
    Аватар для greych  
    Старожил

    7 Медалей
    EQU, что-то я прочитал про эти функции и подозреваю что это не то. Во первых, я использую горячую кнопку, а здесь сразу запрет!!?
    Поясню для чего, думаю сразу станет понятно.
    В скрипте SetOrderLines после первого вызова появляются линии для установки ордера. Так вот, изначально хотелось чтобы они сразу были выделены для редактирования чтобы не тратить время на клацание:D по каждой каждый раз. Когда писал такую функцию не нашел, но юзая чувствую - надо.
  5. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от greych Посмотреть сообщение
    EQU, что-то я прочитал про эти функции и подозреваю что это не то. Во первых, я использую горячую кнопку, а здесь сразу запрет!!?
    Поясню для чего, думаю сразу станет понятно.
    В скрипте SetOrderLines после первого вызова появляются линии для установки ордера. Так вот, изначально хотелось чтобы они сразу были выделены для редактирования чтобы не тратить время на клацание:D по каждой каждый раз. Когда писал такую функцию не нашел, но юзая чувствую - надо.
    Горячая клавиша - эт и правда луче, чем мыша возить..
    Но это усложнит скрипт, если не знать хэндлов линий.. Драматикалли..:greedy: А я их - не знаю..((
    Опять же - с другой стороны - ничего невозможного нет..
    Достаточно перевести деньги - в пиксели - и этот код будет вполне работоспособен и без драг'н'дропа - только с горячей клавишей..
  6. 107
    Комментарии
    0
    Темы
    107
    Репутация Pro
    Аватар для religare777  
    В начале пути

    2 Медалей
    Добрый день!
    Кто-нибудь пробовал выйти из критической ошибки "деления на ноль"?
    Скопировал в инете блок обработки ошибок и вставил свою обработку для ошибки 4013?
    У меня подозрения, что из советника вообще нереально выйти из критической ошибки.


    bool Errors() // Пользовательская функция
    {
    int Error;
    // Error // Номер ошибки
    if(Error==0)
    return(false); // Нет ошибки
    //Inform(15,Error); // Сообщение
    //---------------------------------------------------------------
    switch(Error)
    { // Преодолимые ошибки:
    case 129: // Неправильная цена
    case 135: // Цена изменилась
    RefreshRates(); // Обновим данные
    return(true); // Ошибка преодолимая
    case 136: // Нет цен. Ждём новый тик.
    while(RefreshRates()==false) // До нового тика
    Sleep(1); // Задержка в цикле
    return(true); // Ошибка преодолимая
    case 146: // Подсистема торговли занята
    Sleep(500); // Простое решение
    RefreshRates(); // Обновим данные
    return(true); // Ошибка преодолимая

    case 4013: // а это мой блок
    DistancePips*=4.0; // а это мой блок
    GetDistance(PERIOD_M1,0,false); // а это мой блок
    return(true); // а это мой блок
    // Критические ошибки:
    case 2 : // Общая ошибка
    case 5 : // Старая версия клиентского терминала
    case 64: // Счет заблокирован
    case 133: // Торговля запрещена
    default: // Другие варианты
    return(false); // Критическая ошибка
    }
  7. 66
    Комментарии
    0
    Темы
    66
    Репутация Pro
     
    В начале пути

    2 Медалей
    проверяй делитель и будет тебе счастье :)
  8. 6,556
    Комментарии
    18
    Темы
    6883
    Репутация Pro
    Аватар для greych  
    Старожил

    7 Медалей
    Цитата Сообщение от EQU Посмотреть сообщение
    Горячая клавиша - эт и правда луче, чем мыша возить..
    Но это усложнит скрипт, если не знать хэндлов линий.. Драматикалли..:greedy: А я их - не знаю..((
    Опять же - с другой стороны - ничего невозможного нет..
    Достаточно перевести деньги - в пиксели - и этот код будет вполне работоспособен и без драг'н'дропа - только с горячей клавишей..
    Вай, вай , вай, все бы вам из пикселей да пуксов в мм переводить, стидно:cool:
    Вот к примеру линия
    ObjectCreate("LineP",OBJ_HLINE,0,0,a-20*Point*b);
    ObjectSet("LineP",OBJPROP_STYLE,STYLE_DASH);
    ObjectSet("LineP",OBJPROP_COLOR,Green);
    ObjectSet("LineP",OBJPROP_???,???);
    Интересует последняя строчка, чем ее можно наделить, чтоб она сразу выделена была? Или совсем никак?
  9. 2,012
    Комментарии
    25
    Темы
    1908
    Репутация Pro
    Аватар для west100  
    Мастер форумных наук

    6 Медалей
    1. Есть у нас индикатор, скажем АО Б.Вильямса. Как известно, это разница двух скользящих средних. Кидаем его на график. Что видим? Гистограмма, распределённая относительно нулевой линии, величина выраженная в пунктах (0.00ххх).
    2. Есть ещё один индикатор Вильямса (уже другого), ВПР. Кидаем его сверху на АО. Что получилось? ВПР, выраженный в отрицательных процентах (0... -100%), как-то наложился на АО, при этом показал свои уровни перекупленности/перепроданности (-20% и -80%).
    Так вот, некоторые утверждают, что пересечение линией ВПР линии АО в зоне перекупленности (перепроданности) и дальнейший выход ВПР из зоны - это афигенно сильный сигнал, надо бросать все дела, дудеть в дуду и рисовать чёрточки. Не будем спорить.

    А теперь, внимание, вопрос: "Как объяснить индикатору ВПР, что он пересёк границу АО? И нарисовать в месте пересечения вертикальную чёрточку?".
    Рисунок прилагаю:


    Что я делал:
    1. Рассчитал АО.
    2. Рассчитал ВПР.
    3. Модифицировал значение ВПР, чтоб подтянуть его к АО: ВПРмод=(ВПР+50)*Коэффициент. Аналогично - для уровней перекупленности/перепроданности. Коэффициент подбирал-подбирал, подобрал 0.0001. Ну, дальше - дело техники, по большей части соответствует, но ИНОГДА! график, полученный вручную, и график, нарисованный таким образом - не совпадают, и пересечения получаются не в тех местах.
    Так что я в небольшом тупике. Если кто подскажет, куда рыть, чтоб всё соответствовало - буду признателен.
  10. 6,556
    Комментарии
    18
    Темы
    6883
    Репутация Pro
    Аватар для greych  
    Старожил

    7 Медалей
    Цитата Сообщение от west100 Посмотреть сообщение
    ...Ну, дальше - дело техники, по большей части соответствует, но ИНОГДА! график, полученный вручную, и график, нарисованный таким образом - не совпадают, и пересечения получаются не в тех местах.
    Так что я в небольшом тупике. Если кто подскажет, куда рыть, чтоб всё соответствовало - буду признателен.
    Очень важный момент, если просто бросить в одно окно индюки с разной шкалой измерения, да и даже с одной собственно, то у них будут разные нули (или середины), при чем с передвижением графика нули тоже будут двигаться.
    Вывод: надо помнить об этом и наблюдая за ними в одном окне понимать, что это лишь для экономии места.
    Выход: написать совмещенный сразу в коде индикатор, вот только со шкалой не понятно...

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

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