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

Показаны сообщения: с 41 по 60 из 563

Тема: Учимся программировать на MQL4 вместе с Mr.Артуром

 Перейти в классический вид темы
  1. Линк #41 Свернуть пост
    Кандидат форумных наук
    Отдыхаю
     
    Artur приемлемый уровень репутации Artur приемлемый уровень репутации Аватар для Artur
    Регистрация:
    06.09.2010
    Пол:
    Мужчина
    Сообщений:
    2,038
    Деньги за посты (Подробнее):
    26207 RUB
    Поставил лайков:
    49
    Получено лайков:  203
    в 170 сообщениях
    10%
    Приветствую всех новичков так же как я желающих самостоятельно научиться писать программы на MQL4. В этой теме я буду конспектировать нелегкий путь своего обучения с примерами и конкретными задачами которые предлагаю решать сообща . Думаю всем вместе нам будет легче разобраться и освоиться в этом языке программирования.

    Код:
    //+------------------------------------------------------------------+
    //|                                                          111.mq4 |
    //|                      Copyright © 2011, MetaQuotes Software Corp. |
    //|                                        http://www.metaquotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2011, MetaQuotes Software Corp."
    #property link      "http://www.metaquotes.net"
    
    //+++-здесь вписываются переменные-+++
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start() //+++- старт самой программы и написание его основного кода тут-+++
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    это код простого советника
    дальше я буду выкладывать прочее необходимое
    если будут вопросы пишите постараюсь ответить

    Последний раз редактировалось DGreen; 24.07.2011 в 22:51.

    Предлагаю к инвестированию ^ /-/ Перечитайте регламент найдёте много интерестного!

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

    Krashid (13.03.2012)

     
  3. ТОП сообщений
    2019-05-07   23:11
    Лучший ответ #1
    Накопленные выплаты 155746 RUB
    2012-08-15   15:38
    Лучший ответ #2
    Накопленные выплаты 18175 RUB

    Представьте себе массив, в который записываются различные события, все идет по порядку, можно проверить: void start() { for(int i = OrdersTotal() -1; i >= 0;i--) { if(OrderSelect(i,SELECT_BY_POS)) Alert("index = ",i," open_time = ",TimeToStr(OrderOpenTime(), TIME_DATE|TIME_MINUTES|TIME_SECONDS)); } } Но ситуации бывают разными, вот например: - "Есть ДЦ, где OrderOpenTime() показывает время выставления отложенного ордера, а не время его срабатывания. Поэтому затруднительно узнать, когда же открылась позиция".

    2012-02-27   20:51
    Лучший ответ #3
    Накопленные выплаты 4855 RUB

    Что модифицируешь от того и отталкивайся, если тп, то делай условие чтобы тп ордера модифился при подходе цены к текущему теикпрофиту на несколько пунктов.При открытии ордера ставишь тп на (31 пункт + расстояние модификации(5пип допустим) итого 36) от открытия ордера и далее запускаешь условие вида (для селл) if (bid<=OrderTakeProfit()+ 5*point) {Модифицирвать тп ордера на OrderTakeProfit() минус расстояние на которое нужно перенести тп +5пип}

    2011-08-03   17:59
    Лучший ответ #4
    Накопленные выплаты 322 RUB

    Для поиска последнего закрытого ордера можно использовать время закрытия ордеров, пробегаем по всем ордерами находим максимальное время... int Magic = 0; int closetime= 0,lastorder=0; for(int i=0;i

    2019-10-04   16:19
    Лучший ответ #5
    Накопленные выплаты 201 RUB

    Добрый день! Подскажите пожалуйста, хочу вставить сигналы с пользовательского индикатора в советник с помощью функции iCustom, но советник не открывает сделки. Посмотрите что не так. Индикатор прилагаю.Спасибо. int IndicatorSignal() { double nBuy =iCustom(NULL, 0, "RKKPROFIT.ex4", 4, 0); double nSell=iCustom(NULL, 0, "RKKPROFIT.ex4", 5, 0); if (nBuy > 1) return(OP_BUY); if (nSell > 1) return(OP_SELL); return(0); }

    Изображение
    Превью
    2019-05-07   09:42
    Лучший ответ #6
    Накопленные выплаты 26432 RUB

    советник привязан к брокеру , не могу отвязать советника.

    Изображение
    Превью
  4. Линк #42 Свернуть пост
    Кандидат форумных наук
    Отдыхаю
     
    Artur приемлемый уровень репутации Artur приемлемый уровень репутации Аватар для Artur
    Регистрация:
    06.09.2010
    Пол:
    Мужчина
    Сообщений:
    2,038
    Деньги за посты (Подробнее):
    26207 RUB
    Поставил лайков:
    49
    Получено лайков:  203
    в 170 сообщениях
    10%
    Всё думал как можно разделить линии стохастика... может так?
    Код:
     double A1= iStochastic(NULL,0,PR_K,0,3,MODE_SMA,0,MODE_MAIN,0);
     double A2= iStochastic(NULL,0,0,PR_D,3,MODE_SMA,0,MODE_MAIN,0);
    что косатеся разносторонних ордеров то
    возможно if OP_BUY>1 then OP_SELL == False..... что то вроде этого
    или же при открытии ордера в бай (buy:=buy+1 а после if buy>1 then OP_BUY == StopOpenOrder;


    Предлагаю к инвестированию ^ /-/ Перечитайте регламент найдёте много интерестного!

  5. Линк #43 Свернуть пост
    Кандидат форумных наук
    mell авторитетный пользователь mell авторитетный пользователь mell авторитетный пользователь mell авторитетный пользователь mell авторитетный пользователь mell авторитетный пользователь mell авторитетный пользователь mell авторитетный пользователь mell авторитетный пользователь mell авторитетный пользователь mell авторитетный пользователь Аватар для mell
    Регистрация:
    15.06.2011
    Пол:
    Мужчина
    Сообщений:
    2,079
    Деньги за посты (Подробнее):
    9596 RUB
    Поставил лайков:
    1,141
    Получено лайков:  4,035
    в 1,229 сообщениях
    194%
    Цитата Сообщение от Artur Посмотреть сообщение
    Всё думал как можно разделить линии стохастика... может так?
    Код:
     double A1= iStochastic(NULL,0,PR_K,0,3,MODE_SMA,0,MODE_MAIN,0);
     double A2= iStochastic(NULL,0,0,PR_D,3,MODE_SMA,0,MODE_MAIN,0);
    тебе надо сделать быстрый и медленный стохастик. тогда будут пересечения. наподобие того, как сдвиг по барам у RSi чтоб вычислить момент выхода из зоны.

    Индикаторы зло! Не верю никому кроме Bollinger Bands. хотя.. и ему не верю!
    Тестирую новинку, сольет не сольет...:
    [img]http://widgets.********.com/widgets/1072581/mini.jpg[/img]

  6. Линк #44 Свернуть пост
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    6,974
    Деньги за посты (Подробнее):
    155746 RUB
    Поставил(а) лайков:
    906
    Получено лайков:  7,116
    в 3,382 сообщениях
    102%
    Цитата Сообщение от Artur Посмотреть сообщение
    Всё думал как можно разделить линии стохастика... может так?
    Код:
     double A1= iStochastic(NULL,0,PR_K,0,3,MODE_SMA,0,MODE_MAIN,0);
     double A2= iStochastic(NULL,0,0,PR_D,3,MODE_SMA,0,MODE_MAIN,0);
    Нет, не так. Даю наводку...

    Внимательно читаем справку по MQL:
    Нажмите на изображение для увеличения
Название: img_01.PNG
Просмотров: 25
Размер:	5.4 КБ
ID:	120408

    что косатеся разносторонних ордеров то
    возможно if OP_BUY>1 then OP_SELL == False..... что то вроде этого
    или же при открытии ордера в бай (buy:=buy+1 а после if buy>1 then OP_BUY == StopOpenOrder;
    Тоже не так. Даю наводку...
    Надо получить количество открытых ордеров, как для бай так и для селл. Это можно сделать раздельно, а можно одной простой функцией. Например вот такой, которой пользуюсь я сам:
    PHP код:
    int CalculateOrdersCount(int& CountOfBuy, int& CountOfSell)
    {
    int TotalCount = 0;
    CountOfBuy = TotalCount;
    CountOfSell = TotalCount;
    for(
    int i = 0; i < OrdersTotal(); i++)
    if(
    OrderSelect(i, SELECT_BY_POS))
    if(
    OrderSymbol() == Symbol())
    //if(OrderMagicNumber() == Magic) //Эта строка нужна когда для ордеров используется "Magic number"
    switch(OrderType())
    {
    case
    OP_BUY: CountOfBuy++; TotalCount++; break;
    case
    OP_SELL: CountOfSell++; TotalCount++; break;
    }
    return(
    TotalCount);
    }
    Она возвращает как общее количество ордеров, так и раздельно по бай и по селл.
    Использовать ее так:
    PHP код:
    TotalOrders = CalculateOrdersCount(BuyOrders, SellOrders);
    Предварительно должны быть определены переменные TotalOrders, BuyOrders, SellOrders с типом int.

    Затем на основании результатов работы этой функции строим свои условия для входа в рынок и опроса индикаторов.


  7. Линк #45 Свернуть пост
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    6,974
    Деньги за посты (Подробнее):
    155746 RUB
    Поставил(а) лайков:
    906
    Получено лайков:  7,116
    в 3,382 сообщениях
    102%
    Цитата Сообщение от mell Посмотреть сообщение
    тебе надо сделать быстрый и медленный стохастик. тогда будут пересечения. наподобие того, как сдвиг по барам у RSi чтоб вычислить момент выхода из зоны.
    Неправильно. В стохастике уже все есть. И "быстрый" и "медленный" стохастик. Читаем мой пост чуть выше.


  8. Линк #46 Свернуть пост
    Кандидат форумных наук
    Отдыхаю
     
    Artur приемлемый уровень репутации Artur приемлемый уровень репутации Аватар для Artur
    Регистрация:
    06.09.2010
    Пол:
    Мужчина
    Сообщений:
    2,038
    Деньги за посты (Подробнее):
    26207 RUB
    Поставил лайков:
    49
    Получено лайков:  203
    в 170 сообщениях
    10%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Нет, не так. Даю наводку...

    Внимательно читаем справку по MQL:
    if(iStochastic(NULL,0,8,5,5,MODE_SMA,0,MODE_MAIN,0 )>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL, 0))
    return(0);

    MODE_MAIN 0 Основная линия
    MODE_SIGNAL 1 Сигнальная линия

    Тоже не так. Даю наводку...
    Надо получить количество открытых ордеров, как для бай так и для селл. Это можно сделать раздельно, а можно одной простой функцией. Например вот такой, которой пользуюсь я сам:
    PHP код:
    int CalculateOrdersCount(int& CountOfBuy, int& CountOfSell)
    {
    int TotalCount = 0;
    CountOfBuy = TotalCount;
    CountOfSell = TotalCount;
    for(
    int i = 0; i < OrdersTotal(); i++)
    if(
    OrderSelect(i, SELECT_BY_POS))
    if(
    OrderSymbol() == Symbol())
    //if(OrderMagicNumber() == Magic) //Эта строка нужна когда для ордеров используется "Magic number"
    switch(OrderType())
    {
    case
    OP_BUY: CountOfBuy++; TotalCount++; break;
    case
    OP_SELL: CountOfSell++; TotalCount++; break;
    }
    return(
    TotalCount);
    }
    Она возвращает как общее количество ордеров, так и раздельно по бай и по селл.
    Использовать ее так:
    PHP код:
    TotalOrders = CalculateOrdersCount(BuyOrders, SellOrders);
    Предварительно должны быть определены переменные TotalOrders, BuyOrders, SellOrders с типом int.

    Затем на основании результатов работы этой функции строим свои условия для входа в рынок и опроса индикаторов.
    int TotalOrders = 2, BuyOrders = 1, SellOrders = 1; так


    Предлагаю к инвестированию ^ /-/ Перечитайте регламент найдёте много интерестного!

  9. Линк #47 Свернуть пост
    Кандидат форумных наук
    Отдыхаю
     
    Artur приемлемый уровень репутации Artur приемлемый уровень репутации Аватар для Artur
    Регистрация:
    06.09.2010
    Пол:
    Мужчина
    Сообщений:
    2,038
    Деньги за посты (Подробнее):
    26207 RUB
    Поставил лайков:
    49
    Получено лайков:  203
    в 170 сообщениях
    10%
    if (Time = [0]){ /*число заключёное в квадратные скобочки округляется до целого числа*/
    это условие задаёт открытие ордера когда бар только открылся... вроде




    здесь я размещал свои индикаторы


    Предлагаю к инвестированию ^ /-/ Перечитайте регламент найдёте много интерестного!

  10. Линк #48 Свернуть пост
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    6,974
    Деньги за посты (Подробнее):
    155746 RUB
    Поставил(а) лайков:
    906
    Получено лайков:  7,116
    в 3,382 сообщениях
    102%
    Цитата Сообщение от Artur Посмотреть сообщение
    if(iStochastic(NULL,0,8,5,5,MODE_SMA,0,MODE_MAIN,0 )>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL, 0))
    return(0);

    MODE_MAIN 0 Основная линия
    MODE_SIGNAL 1 Сигнальная линия
    Уже кое что. Вот только параметры в обоих функциях вызова стохастика должны быть одинаковые. Разница должна быть только в параметре mode.
    int TotalOrders = 2, BuyOrders = 1, SellOrders = 1; так
    Нет не так. Эти переменные можно объявлять и пустыми. Значения в них будут изменяться в процессе работы в зависимости от ситуации в рынке. Вот эти значения и надо будет проверять в процессе работы твоего скрипта прежде чем поставить ордер или опросить индикаторы.


  11. Линк #49 Свернуть пост
    Кандидат форумных наук
    Отдыхаю
     
    Artur приемлемый уровень репутации Artur приемлемый уровень репутации Аватар для Artur
    Регистрация:
    06.09.2010
    Пол:
    Мужчина
    Сообщений:
    2,038
    Деньги за посты (Подробнее):
    26207 RUB
    Поставил лайков:
    49
    Получено лайков:  203
    в 170 сообщениях
    10%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Эти переменные можно объявлять и пустыми. Значения в них будут изменяться в процессе работы в зависимости от ситуации в рынке. Вот эти значения и надо будет проверять в процессе работы твоего скрипта прежде чем поставить ордер или опросить индикаторы.
    подскажи ка как это сделать? предать им какие то значения букв и после чео оперировать в самой программе?


    Предлагаю к инвестированию ^ /-/ Перечитайте регламент найдёте много интерестного!

  12. Линк #50 Свернуть пост
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    6,974
    Деньги за посты (Подробнее):
    155746 RUB
    Поставил(а) лайков:
    906
    Получено лайков:  7,116
    в 3,382 сообщениях
    102%
    Цитата Сообщение от Artur Посмотреть сообщение
    if (Time = [0]){ /*число заключёное в квадратные скобочки округляется до целого числа*/
    это условие задаёт открытие ордера когда бар только открылся... вроде
    Это вообще полный бред.


  13. Линк #51 Свернуть пост
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    6,974
    Деньги за посты (Подробнее):
    155746 RUB
    Поставил(а) лайков:
    906
    Получено лайков:  7,116
    в 3,382 сообщениях
    102%
    Цитата Сообщение от Artur Посмотреть сообщение
    подскажи ка как это сделать? предать им какие то значения букв и после чео оперировать в самой программе?
    А подумать? Я уже и так вон сколько наводок дал. Осталась самая малость - увязать все это в кучу.


  14. Линк #52 Свернуть пост
    Знающий
    Ангел
     
    JetRDS авторитетный пользователь JetRDS авторитетный пользователь JetRDS авторитетный пользователь JetRDS авторитетный пользователь JetRDS авторитетный пользователь JetRDS авторитетный пользователь JetRDS авторитетный пользователь JetRDS авторитетный пользователь JetRDS авторитетный пользователь JetRDS авторитетный пользователь JetRDS авторитетный пользователь Аватар для JetRDS
    Регистрация:
    23.07.2011
    Пол:
    Мужчина
    Сообщений:
    3,911
    Деньги за посты (Подробнее):
    44939 RUB
    Поставил лайков:
    638
    Получено лайков:  3,048
    в 1,636 сообщениях
    78%
    Люди подскажите или покажите как написать скрипты чтобы отражались таймфреймы на Н2 Н6 и Н8 - а то на стандарте их нет - а сними очень удобно между прочим - как их написать - знает кто-нибудь - просто торгую в долгосрочку - сильные разрывы типа Н4 и D1 - не очень то и удобно


  15. Линк #53 Свернуть пост
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    6,974
    Деньги за посты (Подробнее):
    155746 RUB
    Поставил(а) лайков:
    906
    Получено лайков:  7,116
    в 3,382 сообщениях
    102%
    Цитата Сообщение от JetRDS Посмотреть сообщение
    Люди подскажите или покажите как написать скрипты чтобы отражались таймфреймы на Н2 Н6 и Н8 - а то на стандарте их нет - а сними очень удобно между прочим - как их написать - знает кто-нибудь - просто торгую в долгосрочку - сильные разрывы типа Н4 и D1 - не очень то и удобно
    Ищи решение на http://forum.mql4.com/ru/ .
    Цитата Сообщение от Artur Посмотреть сообщение
    это нужно не скрипты а саму программу мета4 переписовать.
    Не нужно. Решение уже есть и довольно давно реализовано.


  16. Линк #54 Свернуть пост
    Кандидат форумных наук
    Отдыхаю
     
    Artur приемлемый уровень репутации Artur приемлемый уровень репутации Аватар для Artur
    Регистрация:
    06.09.2010
    Пол:
    Мужчина
    Сообщений:
    2,038
    Деньги за посты (Подробнее):
    26207 RUB
    Поставил лайков:
    49
    Получено лайков:  203
    в 170 сообщениях
    10%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    А подумать? Я уже и так вон сколько наводок дал. Осталась самая малость - увязать все это в кучу.
    что то вроде этого
    Код:
    int start()
      {
    int CalculateOrdersCount(int& CountOfBuy, int& CountOfSell) 
    { 
      int TotalCount = 0; 
      CountOfBuy = TotalCount; 
      CountOfSell = TotalCount; 
      for(int i = 0; i < OrdersTotal(); i++)  
        if(OrderSelect(i, SELECT_BY_POS)) 
          if(OrderSymbol() == Symbol()) 
            //if(OrderMagicNumber() == Magic)      //Эта строка нужна когда для ордеров используется "Magic number" 
              switch(OrderType()) 
              {  
                case OP_BUY: CountOfBuy++; TotalCount++; break; 
                case OP_SELL: CountOfSell++; TotalCount++; break; 
              } 
      return(TotalCount); 
    }
      int TotalOrders = 2, BuyOrders = 1, SellOrders = 1; 
        if TotalOrders = CalculateOrdersCount(BuyOrders, SellOrders){
        if(iStochastic(NULL,0,8,5,4,MODE_SMA,0,MODE_MAIN,0 )>iStochastic(NULL,0,8,5,4,MODE_SMA,0,MODE_SIGNAL, 0)){
         OrderSend(Symbol(),OP_BUY, 0.1,NormalizeDouble(Ask,Digits),2,SL,TP,"+",123,3)}
         
        if(iStochastic(NULL,0,8,5,4,MODE_SMA,0,MODE_MAIN,0 )
    

    Последний раз редактировалось Artur; 25.07.2011 в 22:56.

    Предлагаю к инвестированию ^ /-/ Перечитайте регламент найдёте много интерестного!

  17. Линк #55 Свернуть пост
    Кандидат форумных наук
    Отдыхаю
     
    Artur приемлемый уровень репутации Artur приемлемый уровень репутации Аватар для Artur
    Регистрация:
    06.09.2010
    Пол:
    Мужчина
    Сообщений:
    2,038
    Деньги за посты (Подробнее):
    26207 RUB
    Поставил лайков:
    49
    Получено лайков:  203
    в 170 сообщениях
    10%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Это вообще полный бред.
    так лучше
    if(Time[0] == prevtime) return(0); //ждем нового бара
    prevtime = Time[0]; //если появился новый бар , включаемся
    ...


    Предлагаю к инвестированию ^ /-/ Перечитайте регламент найдёте много интерестного!

  18. Линк #56 Свернуть пост
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    6,974
    Деньги за посты (Подробнее):
    155746 RUB
    Поставил(а) лайков:
    906
    Получено лайков:  7,116
    в 3,382 сообщениях
    102%
    Цитата Сообщение от Artur Посмотреть сообщение

    Ё-ма-ё... Че это было-то? Ты хоть откомпилировать этот бред пробовал? Зачем пихать тело чужой функции в функцию start()?
    Возьми любой из моих советников, например вот этот, разложи его по запчастям и посмотри как там все устроено, как работает, как что и где пишется. А потом попробуй применить необходимые решения для своего скрипта. Ну не дело это с таким подходом.


  19. Линк #57 Свернуть пост
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    6,974
    Деньги за посты (Подробнее):
    155746 RUB
    Поставил(а) лайков:
    906
    Получено лайков:  7,116
    в 3,382 сообщениях
    102%
    Цитата Сообщение от Artur Посмотреть сообщение
    так лучше
    if(Time[0] == prevtime) return(0); //ждем нового бара
    prevtime = Time[0]; //если появился новый бар , включаемся
    ...
    Так значительно лучше. Но копипастить любой сможет. А вот понять для себя что же тут написано дано не каждому.


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

    Artur (25.07.2011)

  21. Линк #58 Свернуть пост
    Кандидат форумных наук
    Отдыхаю
     
    Artur приемлемый уровень репутации Artur приемлемый уровень репутации Аватар для Artur
    Регистрация:
    06.09.2010
    Пол:
    Мужчина
    Сообщений:
    2,038
    Деньги за посты (Подробнее):
    26207 RUB
    Поставил лайков:
    49
    Получено лайков:  203
    в 170 сообщениях
    10%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Ё-ма-ё... Че это было-то? Ты хоть откомпилировать этот бред пробовал? Зачем пихать тело чужой функции в функцию start()?
    Возьми любой из моих советников, например вот этот, разложи его по запчастям и посмотри как там все устроено, как работает, как что и где пишется. А потом попробуй применить необходимые решения для своего скрипта. Ну не дело это с таким подходом.
    Хорошо. я подумаю над ним

    мне кажется здесь скрыто кое что важное)
    Код:
    int CountOfOrders()
    {
      int count = 0;
      for (int i = 0; i < OrdersTotal(); i++) 
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
          if ((OrderSymbol() == Symbol()) && ((OrderMagicNumber() == MN_Buy)||(OrderMagicNumber() == MN_Sell))) 
            if ((OrderType() == OP_SELL) || (OrderType() == OP_BUY)) 
              count++;
      return(count);
    }
    
    //+------------------------------------------------------------------+
    int CountOfBuy()
    {
      int count = 0;
      for (int i = 0; i < OrdersTotal(); i++) 
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
          if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == MN_Buy)) 
            if (OrderType() == OP_BUY) 
              count++;
      return(count);
    }
    
    //+------------------------------------------------------------------+
    int CountOfSell()
    {
      int count = 0;
      for (int i = 0; i < OrdersTotal(); i++) 
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
          if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == MN_Sell)) 
            if (OrderType() == OP_SELL) 
              count++;
      return(count);
    }
    
    //+------------------------------------------------------------------+
    int SignalCheck()
    {
      double Bar1Close = NormalizeDouble(iClose(Symbol(), 0, 1), Digits);
      double Bar2Close = NormalizeDouble(iClose(Symbol(), 0, 2), Digits);
      if (MathAbs(NormalizeDouble((Bar1Close - Bar2Close) / Point, 0)) < 3) 
        return(-1);
      if (Bar1Close > Bar2Close)
        if(NormalizeDouble((Bar1Close - Bar2Close) / Point, 0) >= 3) 
          return(OP_BUY);
      if (Bar1Close < Bar2Close) 
        if(NormalizeDouble((Bar2Close - Bar1Close) / Point, 0) >= 3) 
          return(OP_SELL);
      return(-1);
    }


    Предлагаю к инвестированию ^ /-/ Перечитайте регламент найдёте много интерестного!

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

    ir0407 (25.07.2011)