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

Показаны сообщения: с 7,461 по 7,479 из 7479

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

 Перейти в классический вид темы
  1. Линк #7461
    Частый гость
    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. Пользователь сказал cпасибо:

    vivianalens (27.07.2017)

     
  3. ТОП-5 сообщений
    Лучший ответ #1
    Аватар для IgorM

    IgorM     IgorM на форуме

    если Вы однозначно уверенны, что серия ордеров начинается с некого "стартового ордера" и он не будет закрыт ранее остальных ордеров, тогда при подсчете ордеров найдите самый "старый" рыночный ордер - по времени, он и будет стартовым, примерно так: 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

    Лучший ответ #2
    Аватар для f-2a

    f-2a     f-2a вне форума

    Лучший ответ #3
    Аватар для strit25

    strit25     strit25 вне форума

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



    Превью
    Лучший ответ #4
    Аватар для strit25

    strit25     strit25 вне форума

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

    Лучший ответ #5
    Аватар для Viktor1987



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

    Превью
  4. Линк #7467
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Дык он еще и в коде функции "без ума" поковырялся... Я и не заметил...
    Как раз с умом ) Т к в стандартной интерпретации ваш код выдавал ошибку при строгой проверке ошибок (strict).

    Вот ошибка: "possible loss of data due to type conversion"
    "возможна потеря данных из-за преобразования типа".
    И ставит галку на строчку " return(Result); "

    Это я опять вернул формулу к вашему коду. Как исправить?

    Последний раз редактировалось Андрей2010; 25.02.2019 в 13:06.

  5. Линк #7468
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    Если предположить, что при вызове функции ты всё делаешь правильно, то меня смущает следующее:
    функция возвращает "return(Ticket);" тикет, и промежуточных return-ов нет, а результат находится в "Result = NormalizeDouble(OrdersArray[FindIndex][1], 0);", и нигде переменной "Ticket" не передается, не присваивается.
    Поэтому ранее определённое значение переменной "Ticket" равное "0" и возвращает функция.

    Про ошибки не будем, грусть полная.
    Сейчас подумаю над этим моментом.
    И прошу не судить строго - в программировании я самоучка ) Учусь по немного мыслить логически )


  6. Линк #7469
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация
    02.12.2010
    Сообщений
    6,890
    Деньги за посты:
    152367 RUB (Подробнее)
    Сказал(а) спасибо
    906
    Получено лайков:  7,070
    в сообщениях 3,347
    103%
    Цитата Сообщение от Андрей2010 Посмотреть сообщение
    в стандартной интерпретации ваш код выдавал ошибку при строгой проверке ошибок (strict).

    Вот ошибка: "possible loss of data due to type conversion"
    "возможна потеря данных из-за преобразования типа".
    И ставит галку на строчку " return(Result); "

    Это я опять вернул формулу к вашему коду. Как исправить?
    Ну это же элементарно, Ватсон! Вот так:
    Код:
    Result = int(NormalizeDouble(OrdersArray[FindIndex][1], 0));
    Цитата Сообщение от Андрей2010 Посмотреть сообщение
    И прошу не судить строго
    Мы не судим, мы просто пытаемся понять почему у вас не работает то, что давным-давно уже работает у других.


  7. Линк #7470
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация
    03.04.2017
    Пол
    Мужчина
    Сообщений
    1,348
    Деньги за посты:
    40204 RUB (Подробнее)
    Поставил лайков:
    248
    Получено лайков:  501
    в сообщениях 457
    37%
    Цитата Сообщение от Андрей2010 Посмотреть сообщение
    Сейчас подумаю над этим моментом.
    И прошу не судить строго - в программировании я самоучка ) Учусь по немного мыслить логически )
    Вернись к оригиналу, потом думай. Сравнивай и думай.


  8. Линк #7471
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Ну это же элементарно, Ватсон! Вот так:
    Код:
    Result = int(NormalizeDouble(OrdersArray[FindIndex][1], 0));
    Элементарно, да не элементарно. Ошибка не исчезала - опять ссылается на эту строчку " return(Result); ".
    Пишет то же самое
    "possible loss of data due to type conversion Fibo_8_для_разгона_депо.mq4 1524 1 ".
    paperclip Изображения

    Последний раз редактировалось Андрей2010; 25.02.2019 в 13:25.

  9. Линк #7472
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    мы просто пытаемся понять почему у вас не работает то, что давным-давно уже работает у других.
    Сам не пойму - это началось после обновления торгового терминала до версии 1170...


  10. Линк #7473
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация
    02.12.2010
    Сообщений
    6,890
    Деньги за посты:
    152367 RUB (Подробнее)
    Сказал(а) спасибо
    906
    Получено лайков:  7,070
    в сообщениях 3,347
    103%
    Цитата Сообщение от Андрей2010 Посмотреть сообщение
    ссылается на эту строчку " return(Result); ".
    А возвращаемый тип моей функции наверное тоже изменил с int на double?

    Возьми оригинальный код, поправь в нем строчку как в предыдущем моем посте и все должно работать.


  11. Линк #7474
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация
    03.04.2017
    Пол
    Мужчина
    Сообщений
    1,348
    Деньги за посты:
    40204 RUB (Подробнее)
    Поставил лайков:
    248
    Получено лайков:  501
    в сообщениях 457
    37%
    Цитата Сообщение от Андрей2010 Посмотреть сообщение
    Элементарно, да не элементарно. Ошибка не исчезала - опять ссылается на эту строчку " return(Result); ".
    Пишет то же самое
    "possible loss of data due to type conversion Fibo_8_для_разгона_депо.mq4 1524 1 ".
    Преобразование типов данных сделай.
    OrdersArray[][] - double, а возвращаемый результат int-овый.

    Цитата Сообщение от ir0407 Посмотреть сообщение
    А возвращаемый тип моей функции наверное тоже изменил с int на double?

    Возьми оригинальный код, поправь в нем строчку как в предыдущем моем посте и все должно работать.
    Тут, это оно?

    Последний раз редактировалось MonyaMaker; 25.02.2019 в 13:31.

  12. Линк #7475
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    А возвращаемый тип моей функции наверное тоже изменил с int на double?

    Возьми оригинальный код, поправь в нем строчку как в предыдущем моем посте и все должно работать.
    Сейчас попробую.


  13. Линк #7476
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    Преобразование типов данных сделай.
    OrdersArray[][] - double, а возвращаемый результат int-овый.



    Тут, это оно?
    В оригинальном коде OrdersArray[][] и так инициализируется как double.


  14. Линк #7477
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    Преобразование типов данных сделай.
    OrdersArray[][] - double, а возвращаемый результат int-овый.



    Тут, это оно?
    ОНО.


  15. Линк #7478
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    А возвращаемый тип моей функции наверное тоже изменил с int на double?

    Возьми оригинальный код, поправь в нем строчку как в предыдущем моем посте и все должно работать.
    Теперь ругается на другую строчку...
    paperclip Изображения


  16. Линк #7479
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация
    02.12.2010
    Сообщений
    6,890
    Деньги за посты:
    152367 RUB (Подробнее)
    Сказал(а) спасибо
    906
    Получено лайков:  7,070
    в сообщениях 3,347
    103%
    Цитата Сообщение от Андрей2010 Посмотреть сообщение
    Сейчас попробую.
    Вот так оно должно выглядеть сейчас.
    Код:
    int FindOrderByIndex(int FindType, int FindMagic, int FindIndex)
    {
      int Result = -1;
      double OrdersArray[][2];
      int CurrentArrayIndex = 0;
    
      ArrayResize(OrdersArray, 0);
      for(int i = 0; i < OrdersTotal(); i++ )
      if(OrderSelect(i, SELECT_BY_POS))
        if(OrderSymbol() == Symbol())
          if(OrderType() == FindType)
            if(OrderMagicNumber() == FindMagic)
            {
              ArrayResize(OrdersArray, ArrayRange(OrdersArray, 0) + 1);
              CurrentArrayIndex = ArrayRange(OrdersArray, 0) - 1;
              OrdersArray[CurrentArrayIndex][0] = OrderOpenPrice();
              OrdersArray[CurrentArrayIndex][1] = OrderTicket();
            }
      if(ArrayRange(OrdersArray, 0) > 0)
        if(!(FindIndex > CurrentArrayIndex) && !(FindIndex < 0))
        {
          switch(FindType)
          {
            case OP_BUY:
              ArraySort(OrdersArray, WHOLE_ARRAY, 0, MODE_DESCEND);
              break;
            case OP_SELL:
              ArraySort(OrdersArray);
              break;
          }
          Result = int(NormalizeDouble(OrdersArray[FindIndex][1], 0));
        }
        else
        {
          Print("Функция FindOrderByIndex()");
          Print("Ошибка! Указанный индекс ордера находится вне диапазона массива.");
          Print("Размер массива OrdersArray[][2] = ", ArrayRange(OrdersArray, 0));
          Print("Затребованный индекс в массиве = ", FindIndex);
        }
      return(Result);
    }


  17. Линк #7480
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация
    03.04.2017
    Пол
    Мужчина
    Сообщений
    1,348
    Деньги за посты:
    40204 RUB (Подробнее)
    Поставил лайков:
    248
    Получено лайков:  501
    в сообщениях 457
    37%
    Цитата Сообщение от Андрей2010 Посмотреть сообщение
    В оригинальном коде OrdersArray[][] и так инициализируется как double.
    Закоментируй //Result = NormalizeDouble(OrdersArray[FindIndex][1], 0);

    и допиши строчку ниже Result = (int) OrdersArray[FindIndex][1];

    Последний раз редактировалось MonyaMaker; 25.02.2019 в 13:42.

  18. Линк #7481
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Цитата Сообщение от ir0407 Посмотреть сообщение

    Всё... Не дышим ))) Без ошибок... Спасибо монстры логики и программирования... Мне до вас далеко...


  19. Линк #7482
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    Закоментируй //Result = NormalizeDouble(OrdersArray[FindIndex][1], 0);

    и допиши строчку ниже Result = (int) OrdersArray[FindIndex][1];
    Спасибо за труд...


  20. Линк #7483
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Работает. Осталось найти Lot и Цену предпоследнего ордера.

    Я пока сам покумекаю ))


  21. Линк #7484
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация
    02.12.2010
    Сообщений
    6,890
    Деньги за посты:
    152367 RUB (Подробнее)
    Сказал(а) спасибо
    906
    Получено лайков:  7,070
    в сообщениях 3,347
    103%
    Цитата Сообщение от Андрей2010 Посмотреть сообщение
    Осталось найти Lot и Цену предпоследнего ордера.
    Ну, тикет же теперь у тебя есть? Значит все остальное должно быть - "как два пальца...".


  22. Пользователь сказал cпасибо:

    Незарегистрированный (1 пользователь)

  23. Линк #7485
    Свой человек
    Андрей2010 стараюсь положительно себя зарекомендовать Аватар для Андрей2010
    Регистрация
    25.04.2011
    Пол
    Мужчина
    Сообщений
    333
    Деньги за посты:
    3621 RUB (Подробнее)
    Поставил лайков:
    28
    Получено лайков:  17
    в сообщениях 15
    5%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Ну, тикет же теперь у тебя есть? Значит все остальное должно быть - "как два пальца...".
    Как два байта переслать


  24. Пользователь сказал cпасибо:

    Viktor1987 (25.02.2019)


Страница 374 из 374
Первая ... 364 373 Главная страница темы

Похожие темы

  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