Заработай до
50000$
на приглашении друзей
получить StartUp Bonus
от ИнстаФорекс
Вложений не требуется!
Начни торговлю
без вложений и риска
С новым STARTUP бонусом 1000$
Получи бонус
55%
от ИнстаФорекс
на каждое пополнение
Ответить в теме
Страница 1 из 384
1 2 11 ... Последняя ◄╝

Показаны сообщения: с 1 по 20 из 7663

Тема: MQL4: Несколько вопросов от начинающего

 Перейти в классический вид темы
  1. Линк#1
    Частый гость
    OLEKSANDR стараюсь положительно себя зарекомендовать Аватар для OLEKSANDR
    Регистрация:
    04.01.2010
    Сообщений:
    126
    Деньги за посты (Подробнее):
    469 RUB
    Поставил(а) лайков:
    0
    Получено лайков:  6
    в 6 сообщениях
    5%
    Продолжение темы [Архив] Несколько вопросов по MQL от начинающего

    -------------------------------------------

    как получить целое чесло ?

    MQL код:
    double A = 0.0;                           //перещот среднего бара
    for(int a = 1; a < 30; a++)
    {
    A += High[a];
    }
    double B = 0.0;
    for(int b = 1 ;b < 30; b++)
    {
    B += Low[b];
    }
    double AB = 0.0;
    AB=(A-B)/30;
    MessageBox("средний="+(AB));

    Последний раз редактировалось Gold; 24.07.2014 в 20:39. Причина: Добавил ссылку на архивную тему

  2. post_thanks Получено лайков: 1

    vivianalens (27.07.2017)

     
  3. ТОП сообщений
    2018-05-07   13:19
    Лучший ответ #1
    Накопленные выплаты 27419 RUB

    если Вы однозначно уверенны, что серия ордеров начинается с некого "стартового ордера" и он не будет закрыт ранее остальных ордеров, тогда при подсчете ордеров найдите самый "старый" рыночный ордер - по времени, он и будет стартовым, примерно так: int NumberOfOrders(int magic_,int &buy_,int &sell_,int &ticket_) { int i,ot,k=OrdersTotal(); string sy=Symbol(); buy_=0;sell_=0; datetime t,tfo = TimeCurrent(); ticket_ = -1; for (i=0; i

    2018-04-03   14:48
    Лучший ответ #2
    Накопленные выплаты 11826 RUB
    2018-09-18   13:37
    Лучший ответ #3
     

    А солидные деньги это сколько и какая в них доля спреда (я думаю очень смешная) Не надо ничего писать, итак понятен ваш результат торгов. Я плавающий спред не поливаю, я вас просто предупреждаю, что имеются не честные брокеры. Я один раз опекся и мне этого было достаточно. А на форексе я более 12 лет и за это время всякое и всяких повидал. А насчет спреда это вы что то выдумали - просто его нет в прибыльных ордерах, а других у меня не бывает. Так что меня больше волнует комиссия при снятии средств. Если бы не вы я бы так бы и не знал, что бывают проблемы со спредом. Как говорится, кто ищет проблемы тот всегда их найдет. А теперь по делу и прекращаем пустозвон, лично для меня спреда не существует, и я не отвлекаюсь по не существующим мелочам. Кроме тех 2-х счетов, где я в долгосроке, у меня имеется еще пару счетов, где, как говорится, что бы там руки не чесались я пипсую или в среднесроке. Вот один из них на forex4you (за 4 последних дня) Кроме того на 1,1664 у меня отложка на покупку пока с т/п 1,1714, А там буду смотреть вероятность на счет ордера на продажу.



    Изображение
    Превью
    2018-09-19   02:39
    Лучший ответ #4
     

    Добавь В начале старта int k=0; int orderticket[]; А в цикле k=k+1; А там уже определись for (cnt=OrdersTotal()-1; cnt>=0; cnt--) .... сnt=++ или cnt=-- с первого или с последнего... K=k+1; orderticke = OrderTicket();

    2018-09-28   13:53
    Лучший ответ #5
    Накопленные выплаты 29274 RUB



    Нужно пробовать что-то написать с применением прочтённого! Так трудно понять! Всё что приходит в голову это инвертирование состояний флага! Например в свойствах объектов или графика где применяется bool параметр! Можно ли как-то это прикрутить например сюда? ChartSetInteger(chart_ID,CHART_SHOW_TRADE_LEVELS,0,value) Вместо value использовать битовую маску и не городить проверку текущего состояния отображения торговых уровней, а просто инвертировать флаг!

    Изображение
    Превью
    2018-09-28   16:21
    Лучший ответ #6
    Накопленные выплаты 160034 RUB

    Ты не понял... bool - это не один бит. В MQL bool - это целое число размером в 1 байт. Т.е. bool - это 8 бит, где значение 0b00000000 интерпретируется, как False, а значение 0b00000001(как и остальные всевозможные комбинации битов в этом байте) интерпретируется, как True. Т.е. для типа bool нет никакого смысла в битовых операторах, за исключением оператора логического отрицания "~", при помощи которого можно инвертировать булево значение. Но даже в этом случае результат будет совершенно не таким, как при работе с другими числовыми типами. В MQL битовые операторы, в подавляющем большинстве случаев, тебе могут даже и не понадобиться, а вот при работе с WinAPI они очень даже широко используются. Попробуй почитать еще вот это -> https://ravesli.com/urok-46-bitovye-flagi-i-bitovye-maski/

  4. Линк#2
    Кандидат форумных наук
    Все пучком
     
    wawilon1985 приемлемый уровень репутации wawilon1985 приемлемый уровень репутации Аватар для wawilon1985
    Регистрация:
    22.11.2013
    Пол:
    Мужчина
    Сообщений:
    1,175
    Деньги за посты (Подробнее):
    11277 RUB
    Поставил лайков:
    90
    Получено лайков:  141
    в 123 сообщениях
    12%
    Здраствуйте! Подскажите пожалуйста как сделать так чтобы Otstup = спреду текущей пары! И выставлялось 2 одинаковых ордера!
    MQL код:
    extern bool     BuyStop     = True;   // Если значение True, то откроется ордер Buy Stop; False - выкл;
    extern bool SellStop = True; // Если значение True, то откроется ордер Sell Stop; False - выкл;
    extern double TP_Exponent = 2.0; // Во сколько раз TakeProfit будет больше StopLoss
    extern int Otstup = 10; // На такое количество пунктов цена открытия и StopLoss будут установлены от экстремумов бара
    extern int Candle = 1; // Номер бара выше/ниже которого будет задана цена открытия ордера, 0 - текущий бар, 1 прошлый бар и так далее.
    extern double Risk = 0.3; // Процент риска на сделку 0.2 = 2%, 0.3 = 3% и т.д.(Для Instaforex ставиться 1%...5%...10%, расчет ведется от свободных средств на счету
    extern bool UseTimeSet = False; // Использовать выставление ордеров по времени
    extern datetime TimeSet = D'2013.10.26 15:00'; //Время выставления ордеров, если текущее время больше установленного, то выставляются сразу
    extern int Magic = 100; // Уникальный номер ордеров
    extern bool UseAlert = False; // Использовать Алерт

    //----------------------------------
    int start()
    //----
    {
    while (TimeCurrent() < TimeSet && (UseTimeSet == true))
    {
    Sleep(1000);
    Comment("Скрипт выставления сетки Stop ордеров Copyright © 2011 [email]cmillion@narod.ru[/email]\n",
    TimeToStr(TimeCurrent(),TIME_SECONDS)," До выставления сетки осталось ",TimeToStr(TimeSet-TimeCurrent(),TIME_SECONDS));
    RefreshRates();
    }

    // Проверка на пятизнак
    if (Digits == 5 || Digits == 3)
    { Otstup=Otstup * 10; }

    // Устанавливаем ордер Buy Stop
    if(BuyStop == True) Open_BuyStop();

    // Устанавливаем ордер Sell Stop
    if(SellStop == True) Open_SellStop();
    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //Функция установки ордера Buy Stop
    void Open_BuyStop(){
    double Price=High[Candle]+Otstup*Point;
    double SL=Low[Candle]-Otstup*Point;
    double TP=Price + (Price-SL)*TP_Exponent;

    double SL_pips=Price-SL;
    double Lot=Max_Lot(SL_pips);

    int Ticket;

    Price=NormalizeDouble(Price,Digits);
    SL=NormalizeDouble(SL,Digits);
    TP=NormalizeDouble(TP,Digits);

    while (IsTradeContextBusy()) {Sleep(100);}
    Ticket=OrderSend(Symbol(), OP_BUYSTOP, Lot, Price, 0, SL, TP, " <= BuyStop => ", Magic, 0);

    if (Ticket<0){Alert("Функция Open_BuyStop","\n", "Ответ сервера: " ,errors(GetLastError()) );}
    else{

    double TakeProfit_total = (TP-Price)/Point;
    double StopLoss_total = (Price-SL)/Point;

    if (Digits == 5 || Digits == 3){
    TakeProfit_total=TakeProfit_total / 10;
    StopLoss_total=StopLoss_total / 10;
    }
    if (UseAlert) Alert("Цена открытия: " , DoubleToStr(Price, Digits), "\n",
    "TakeProfit: ", DoubleToStr(TP, Digits), " (", TakeProfit_total, ")", "\n",
    "StopLoss: ", DoubleToStr(SL, Digits), " (", StopLoss_total, ")");
    }
    }


  5. Линк#3
    Кандидат форумных наук
    Скромняжка
     
    Tekora хорошая репутация Tekora хорошая репутация Tekora хорошая репутация Tekora хорошая репутация Tekora хорошая репутация Tekora хорошая репутация Аватар для Tekora
    Регистрация:
    26.06.2011
    Сообщений:
    1,755
    Деньги за посты (Подробнее):
    33277 RUB
    Поставил(а) лайков:
    211
    Получено лайков:  531
    в 423 сообщениях
    30%
    Цитата Сообщение от wawilon1985 Посмотреть сообщение
    чтобы Otstup = спреду текущей пары!
    Чтобы узнать различную информацию по символу нужно использовать функцию
    MQL код:
         MarketInfo(_Symbol,MODE_SPREAD);

    , в данном случае с с идентификатором MODE_SPREAD.


    Цитата Сообщение от wawilon1985 Посмотреть сообщение
    И выставлялось 2 одинаковых ордера!
    Ну дык... два раза OrderSend с одинаковыми параметрами.


  6. Линк#4
    Специалист
    Сама доброта
     
    Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Аватар для Evgast
    Регистрация:
    13.04.2015
    Пол:
    Мужчина
    Сообщений:
    7,708
    Деньги за посты (Подробнее):
    142447 RUB
    Поставил лайков:
    5,044
    Получено лайков:  3,761
    в 1,822 сообщениях
    49%
    Еще раз разрешите побеспокоить. С предыдущем вопросом разобрался. Что интересно при компиляции показывал 0 ошибок и 0 предупреждений, но в тестере не работает как надо выдает в журнале целый комплект разных ошибок и почему то стал торговать сразу в две стороны, но это ладно, устранил. У меня вот такой вопрос. Ставится сетка ордеров по открытию нового бара, на всю сетку свой ТП стопы не ставятся. Отдельно на каждый ордер ставится ТП и трал при превышении этого значения. Но вот только следующий ордер он может открыть с произвольным коэффициентом. То есть закрыл ордер 0.1 а следующий ставит не с таким же значением, а увеличивает на значение коэффициента. Если цена прошла столько что закрылось два ордера, то может открыть произвольно либо больше либо по текущему значению. Добавил NormalizeDouble стали открываться лучше, до этого просто шло увеличение лота по коэффициенту и все. Подскажите решение или какую то идею.


  7. Линк#5
    Кандидат форумных наук
    Все пучком
     
    wawilon1985 приемлемый уровень репутации wawilon1985 приемлемый уровень репутации Аватар для wawilon1985
    Регистрация:
    22.11.2013
    Пол:
    Мужчина
    Сообщений:
    1,175
    Деньги за посты (Подробнее):
    11277 RUB
    Поставил лайков:
    90
    Получено лайков:  141
    в 123 сообщениях
    12%
    Цитата Сообщение от Tekora Посмотреть сообщение
    Чтобы узнать различную информацию по символу нужно использовать функцию
    MQL код:
         MarketInfo(_Symbol,MODE_SPREAD);

    , в данном случае с с идентификатором MODE_SPREAD.



    Ну дык... два раза OrderSend с одинаковыми параметрами.
    А можно поточней, прям код подправьте тот что я выложил, а там я уже сам скрипт исправлю! )


  8. Линк#6
    Кандидат форумных наук
    Stam хорошая репутация Stam хорошая репутация Stam хорошая репутация Аватар для Stam
    Регистрация:
    13.09.2015
    Пол:
    Мужчина
    Сообщений:
    1,009
    Деньги за посты (Подробнее):
    26592 RUB
    Поставил лайков:
    539
    Получено лайков:  252
    в 203 сообщениях
    25%
    Подскажите есть ли такая возможность как неполное закрытие положительного ордера. Просто ходят слухи , а тему не развивают. Ведь в MQL4 такой функции нет. Я нажимал вручную на положительный ордер правой кнопкой мыши и пытался найти чего нибудь , но ничего не нашёл. Например у меня депозит 1000 рублей и объём лота 0.01 и я выиграл 100 тиков. Могу ли я закрыть только 50 тиков и это регулируется лотом или чем то другим?


  9. Линк#7
    Inception
    DIIIVERGENT приемлемый уровень репутации DIIIVERGENT приемлемый уровень репутации DIIIVERGENT приемлемый уровень репутации Аватар для DIIIVERGENT
    Регистрация:
    03.03.2014
    Пол:
    Мужчина
    Сообщений:
    1,175
    Деньги за посты (Подробнее):
    19705 RUB
    Поставил лайков:
    646
    Получено лайков:  228
    в 176 сообщениях
    19%
    Прикручиваю в индикатор алерт. Выдаёт две ошибки.
    '}' - unexpected end of program - эта ошибочка идёт в конце после return
    '{' - unbalanced parentheses - а эта вначале после start
    В чём загвоздка ?


  10. Линк#8
    Знающий
    Все пучком
     
    Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Аватар для Victor-Y
    Регистрация:
    04.06.2012
    Пол:
    Мужчина
    Сообщений:
    3,220
    Деньги за посты (Подробнее):
    55919 RUB
    Поставил лайков:
    11,569
    Получено лайков:  7,724
    в 2,507 сообщениях
    240%
    Цитата Сообщение от Stam Посмотреть сообщение
    Могу ли я закрыть только 50 тиков и это регулируется лотом или чем то другим?
    Закрыть можно только количество лотов, но никак не пунктов. У вас же объём лота (в конкретно этом примере) равен 0,01, то есть минимальный, а следовательно закрыть часть и так минимального лота нельзя. К примеру, если бы у вас был открыт ордер объёмом 0,03 лота, то вы можете закрыть либо весь ордер (0,03 лота), либо часть, то есть 0,01 или 0,02 лота. Причём не важно ордер в плюсе или в минусе.


  11. post_thanks Получено лайков: 2

    DIIIVERGENT (26.10.2015), Stam (01.11.2015)

  12. Линк#9
    Знающий
    Все пучком
     
    Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Аватар для Victor-Y
    Регистрация:
    04.06.2012
    Пол:
    Мужчина
    Сообщений:
    3,220
    Деньги за посты (Подробнее):
    55919 RUB
    Поставил лайков:
    11,569
    Получено лайков:  7,724
    в 2,507 сообщениях
    240%
    Цитата Сообщение от Shin1ng Посмотреть сообщение
    В чём загвоздка ?
    В коде. Выкладывайте, посмотрим...


  13. post_thanks Получено лайков: 1

    DIIIVERGENT (26.10.2015)

  14. Линк#10
    Inception
    DIIIVERGENT приемлемый уровень репутации DIIIVERGENT приемлемый уровень репутации DIIIVERGENT приемлемый уровень репутации Аватар для DIIIVERGENT
    Регистрация:
    03.03.2014
    Пол:
    Мужчина
    Сообщений:
    1,175
    Деньги за посты (Подробнее):
    19705 RUB
    Поставил лайков:
    646
    Получено лайков:  228
    в 176 сообщениях
    19%
    Скинул в личку. Спасибо


  15. post_thanks Получено лайков: 1

    Victor-Y (27.10.2015)

  16. Линк#11
    Inception
    DIIIVERGENT приемлемый уровень репутации DIIIVERGENT приемлемый уровень репутации DIIIVERGENT приемлемый уровень репутации Аватар для DIIIVERGENT
    Регистрация:
    03.03.2014
    Пол:
    Мужчина
    Сообщений:
    1,175
    Деньги за посты (Подробнее):
    19705 RUB
    Поставил лайков:
    646
    Получено лайков:  228
    в 176 сообщениях
    19%
    1. Имеет ли смысл такой код и если имеет, то почему так пишется ?
    double prev_price=Close[0];
    if ((prev_price && Close[0]>=LowV)
    Разве левая и права часть не противоречат друг другу ?

    2. Зачем вводить какой то prev_price, который обозначает что то, когда можно просто написать это что то, например: prev_price=Close[0] можно же просто везде писать Close[0] или нет ?

    Последний раз редактировалось DIIIVERGENT; 27.10.2015 в 23:05.

  17. Линк#12
    Знающий
    Все пучком
     
    Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Аватар для Victor-Y
    Регистрация:
    04.06.2012
    Пол:
    Мужчина
    Сообщений:
    3,220
    Деньги за посты (Подробнее):
    55919 RUB
    Поставил лайков:
    11,569
    Получено лайков:  7,724
    в 2,507 сообщениях
    240%
    Цитата Сообщение от Shin1ng Посмотреть сообщение
    Разве выделенное курсивом и наклонное не одно и тоже по сути своей ?
    1. Это не одно и то же. А вот как может prev_price (Close[0]) одновременно быть и меньше, и (больше или равно) LowV - не понятно. То есть одно из условий противоречит (исключает) другому.
    2. Переменную обычно вводят для того, чтобы раз за разом не обращаться к массиву-таймсерии, при условии того, что Close[0] будет использоваться в коде многократно.

    Последний раз редактировалось Victor-Y; 27.10.2015 в 23:13.

  18. post_thanks Получено лайков: 1

    DIIIVERGENT (27.10.2015)

  19. Линк#13
    Кандидат форумных наук
    В шоке
     
    work2it хорошая репутация work2it хорошая репутация work2it хорошая репутация Аватар для work2it
    Регистрация:
    01.10.2015
    Пол:
    Мужчина
    Сообщений:
    1,097
    Деньги за посты (Подробнее):
    24584 RUB
    Поставил лайков:
    14
    Получено лайков:  216
    в 196 сообщениях
    20%
    Цитата Сообщение от Shin1ng Посмотреть сообщение
    1. Имеет ли смысл такой код и если имеет, то почему так пишется ?
    double prev_price=Close[0];
    if ((prev_price=LowV)
    Такой код будет иметь смыслы только в том случае, если поменять строчки местами. т.е. переменная prev_price будет использоваться для сохранения предыдущего значения Close[0]. И соответственно, вторая строка будет проверять пересечение переменной Close[0] уровня LowV. При этом, если работа ведется по барам, то вместо prev_price целесообразнее использовать Close[1] и ничего сохранять не нужно. В том виде, как оно приведено, выражение смысла не имеет - однозначно.

    Реализую за ваши деньги ваши идеи на MQL - mql@fx-prog.ru

  20. post_thanks Получено лайков: 1

    DIIIVERGENT (28.10.2015)

  21. Линк#14
    Свой человек
    Поболтаем?
     
    coder-ex приемлемый уровень репутации coder-ex приемлемый уровень репутации Аватар для coder-ex
    Регистрация:
    28.09.2015
    Пол:
    Мужчина
    Сообщений:
    545
    Деньги за посты (Подробнее):
    9224 RUB
    Поставил лайков:
    100
    Получено лайков:  161
    в 137 сообщениях
    30%
    Цитата Сообщение от Shin1ng Посмотреть сообщение
    1. Имеет ли смысл такой код и если имеет, то почему так пишется ?
    MQL код:
    double prev_price=Close[0];

    if ((prev_price && Close[0]>=LowV)
    Разве левая и права часть не противоречат друг другу ?

    2. Зачем вводить какой то prev_price, который обозначает что то, когда можно просто написать это что то, например: prev_price=Close[0] можно же просто везде писать Close[0] или нет ?
    Такой код очень похож на ошибку в логике, хотя в определенных системах (не на MQL4) это вполне может быть, к примеру высокочастотные торговые системы. Т.е. к примеру Close[] это массив тайм-серия цен закрытия, которая контролирует текущий бар (не закрытый бар) и его состояние может измениться за период, прошедший с:
    MQL код:
    double prev_price = Close[0];

    до момента условия:
    MQL код:
    if(prev_price < LowV && Close[0] >= LowV) 

    Но повторюсь, для MQL4 такое практически невыполнимо в силу специфичности связи с сервером, а теоретически нужно дописать пропущенное, т.е. перетряхнуть тайм-серии между первой и второй строкой, что бы получить изменения в тайм-серии. В MQL5 такое будет практически возможно в высокочастотных торговых системах при условии исправления разработчиками одной проблемы. В других биржевых (не форекс кухнях) платформах такое вполне возможно на коннекторах PLAZA II

    Последний раз редактировалось coder-ex; 28.10.2015 в 05:49.

  22. post_thanks Получено лайков: 1

    DIIIVERGENT (28.10.2015)

  23. Линк#15
    Специалист
    Сама доброта
     
    Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Аватар для Evgast
    Регистрация:
    13.04.2015
    Пол:
    Мужчина
    Сообщений:
    7,708
    Деньги за посты (Подробнее):
    142447 RUB
    Поставил лайков:
    5,044
    Получено лайков:  3,761
    в 1,822 сообщениях
    49%
    Здравствуйте такой вопрос. С таким кодом
    MQL код:
    if (OrderModify(OrderTicket(), a_price_8, price_28, OrderTakeProfit(), 0, Red));
    выдает в компиляторе ошибку: empty controlled statement found. Исправил на такой:
    MQL код:
    Ticket = (!OrderModify(OrderTicket(), a_price_8, price_market, OrderTakeProfit(), 0, Red));
    При компиляции все чисто ни ошибок ни предупреждений нет. Но файл он так не сохраняет, только через меню - сохранить как. И в тестере все так же выдает ошибку: OrderModify error 130. Почему так если в компиляторе нет ошибок? В первом случае с ошибкой работает, а во втором без ошибок не работает.

    Последний раз редактировалось Evgast; 28.10.2015 в 08:48. Причина: Правка.

  24. Линк#16
    Свой человек
    Поболтаем?
     
    coder-ex приемлемый уровень репутации coder-ex приемлемый уровень репутации Аватар для coder-ex
    Регистрация:
    28.09.2015
    Пол:
    Мужчина
    Сообщений:
    545
    Деньги за посты (Подробнее):
    9224 RUB
    Поставил лайков:
    100
    Получено лайков:  161
    в 137 сообщениях
    30%
    Цитата Сообщение от Evgast Посмотреть сообщение
    Здравствуйте такой вопрос. С таким кодом
    MQL код:
    if (OrderModify(OrderTicket(), a_price_8, price_28, OrderTakeProfit(), 0, Red));
    выдает в компиляторе ошибку: empty controlled statement found. Исправил на такой:
    MQL код:
    Ticket = (!OrderModify(OrderTicket(), a_price_8, price_market, OrderTakeProfit(), 0, Red));
    . При компиляции все чисто ни ошибок ни предупреждений нет. Но файл он так не сохраняет, только через меню - сохранить как. И в тестере все так же выдает ошибку: OrderModify error 130. Почему так если в компиляторе нет ошибок? В первом случае с ошибкой работает, а во втором без ошибок не работает.
    вы уж определитесь какой хотите получить результат т.к. OrederModify к открытию/сохранению файлов ни какого отношения не имеет, плюс не понятно чего вы хотели добиться переделанной строкой...


  25. Линк#17
    Специалист
    Сама доброта
     
    Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Аватар для Evgast
    Регистрация:
    13.04.2015
    Пол:
    Мужчина
    Сообщений:
    7,708
    Деньги за посты (Подробнее):
    142447 RUB
    Поставил лайков:
    5,044
    Получено лайков:  3,761
    в 1,822 сообщениях
    49%
    Цитата Сообщение от coder-ex Посмотреть сообщение
    чего вы хотели добиться переделанной строкой
    что бы он на каждом тике пересматривал TakeProfit по открытым ордерам. Вроде писал по учебнику. Один ордер закрываем и по оставшимся сразу переставляем TakeProfit не ждем открытия нового ордера что бы пересчитать TakeProfit.

    Последний раз редактировалось Evgast; 28.10.2015 в 09:01. Причина: Правка.

  26. Линк#18
    Свой человек
    Поболтаем?
     
    coder-ex приемлемый уровень репутации coder-ex приемлемый уровень репутации Аватар для coder-ex
    Регистрация:
    28.09.2015
    Пол:
    Мужчина
    Сообщений:
    545
    Деньги за посты (Подробнее):
    9224 RUB
    Поставил лайков:
    100
    Получено лайков:  161
    в 137 сообщениях
    30%
    Цитата Сообщение от Evgast Посмотреть сообщение
    что бы он на каждом тике пересматривал TakeProfit по открытым ордерам. Вроде писал по учебнику. Один ордер закрываем и по оставшимся сразу переставляем TakeProfit не ждем открытия нового ордера что бы пересчитать TakeProfit.
    у вас условие не содержит оператора, который по всей видимости должен выполняться при успешной модификации ордера, во второй строке вообще абсурд, переменной ticket что присваивается? логика?
    не знаю где вы такой учебник нашли, хотя догадываюсь - у MetaQuotes
    мой совет, начните изучать С++, а после его изучения, смело переходите на MQL, либо ищите репетитора, всевозможные вебинары не содержат нужных знаний, я по крайней мере толковых не встречал...
    Есть хороший репетитор А.Волчанский, на форуме MetaQuotes можете его найти, но у него все курсы платные.


  27. post_thanks Получено лайков: 1

    Evgast (28.10.2015)

  28. Линк#19
    Специалист
    Сама доброта
     
    Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Evgast авторитетный пользователь Аватар для Evgast
    Регистрация:
    13.04.2015
    Пол:
    Мужчина
    Сообщений:
    7,708
    Деньги за посты (Подробнее):
    142447 RUB
    Поставил лайков:
    5,044
    Получено лайков:  3,761
    в 1,822 сообщениях
    49%
    Цитата Сообщение от coder-ex Посмотреть сообщение
    учебник нашли, хотя догадываюсь - у MetaQuotes
    Да у них самых. Хорошо будем искать. Почему же тогда с первым вариантом он работал хотя в редакторе выдавал ошибку, пустого оператора, а без ошибок не хочет работать?


  29. <a href="https://www.instaforex.com/ru/pamm_system">Форекс портал</a>
  30. Линк#20
    Свой человек
    Поболтаем?
     
    coder-ex приемлемый уровень репутации coder-ex приемлемый уровень репутации Аватар для coder-ex
    Регистрация:
    28.09.2015
    Пол:
    Мужчина
    Сообщений:
    545
    Деньги за посты (Подробнее):
    9224 RUB
    Поставил лайков:
    100
    Получено лайков:  161
    в 137 сообщениях
    30%
    Цитата Сообщение от Evgast Посмотреть сообщение
    Да у них самых. Хорошо будем искать. Почему же тогда с первым вариантом он работал хотя в редакторе выдавал ошибку, пустого оператора, а без ошибок не хочет работать?
    а что подразумеваете под понятием работал? вот ваша строка:
    MQL код:
    if (OrderModify(OrderTicket(), a_price_8, price_28, OrderTakeProfit(), 0, Red));

    если ее написать в удобочитаемом виде то она будет выглядеть вот так:
    MQL код:

    if(OrderModify(OrderTicket(), a_price_8, price_28, OrderTakeProfit(), 0, Red)
    // тут место для оператора условия [COLOR="blue"]if[/COLOR]
    // последняя скобочка лишняя

    Последний раз редактировалось coder-ex; 28.10.2015 в 10:38.

  31. post_thanks Получено лайков: 1

    Evgast (28.10.2015)


Страница 1 из 384
1 2 11 ... Последняя ◄╝

Похожие темы

  1. Несколько слов о языке программирования mql4
    от Заз в разделе MQL-программирование, АТС
    Replies: 32
    Последнее сообщение: 26.09.2018, 11:31
  2. 55 вопросов по истории РОССИИ
    от НАИВНЫЙ-СЕРДЦИЕТ в разделе Свободное общение
    Replies: 15
    Последнее сообщение: 25.12.2015, 15:44
  3. [Архив] MQL4: Несколько вопросов от начинающего
    от Nick'Otin в разделе MQL-программирование, АТС
    Replies: 9235
    Последнее сообщение: 26.10.2015, 01:36