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

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

Тема: Помогите с написанием функции

 Перейти в классический вид темы
  1. Линк #41 Свернуть пост
    Свой человек
    В думах
     
    Vyasheslav стараюсь положительно себя зарекомендовать Аватар для Vyasheslav
    Регистрация:
    02.09.2010
    Сообщений:
    520
    Деньги за посты:
    5136 RUB (Подробнее)
    Поставил(а) лайков:
    15
    Получено лайков:  76
    в 58 сообщениях
    15%
    Здравствуйте уважаемые программисты.
    Очень хочется вставить в советник, кусок кода, чтобы появилась функция StartTime.
    Пытался слизать с одного советника этот кусочек. Вроде все без ошибок, но функция не работает. Что-то где-то не учел видимо. Хочется именно самому в последствии это делать, так-как часто такое желание появляется.
    Не могли бы вы помочь несчастному челу, а то хожу без StartTime как дурак, целыми днями..
    Заранее благодарен.


  2.  
  3. ТОП сообщений
    2018-08-13   21:59
    Лучший ответ #1
    Накопленные выплаты 4581 RUB

    Всем привет! Господа програмисты, нужна такая функция: при срабатывании отложки, или SL или TP, на графике рисуются стрелки открытия, частичного закрытия и закрытия сделки, и между ними линия. Уже второй день рою вместе с Яндексом, но ничего похожего не нашел. А вообще проблема в том, если возникнут вопросы типа: "зачем тебе, перенеси из истории", что я поставил советник, который делает скрины при установке отложки и при её срабатывании, при закрытии ордера, но скриншот получается с голым графиком, так как нужные стрелочки не рисуются. За ранее спасибо за помощь! PS: На этом графике было около десятка сделок отложками, но как видите скриншот пустой.



    Изображение
    Превью
    2010-10-10   13:08
    Лучший ответ #2
     

    Vyasheslav, поменьше флуда - побольше смысла в сообщении! И на будущее - название темы выбирайте более осмысленное. На первый раз прощается. И приведите здесь код функции, которая у Вас не работает, или же опишите, что именно она должна делать.

    2010-10-10   14:04
    Лучший ответ #3
     

    1. Советник работает всё время, пока накинут на график, и терминал запущен. 2. Но время для активных его действий можно выбирать с помощью этакой вот конструкции из двух функций: if (TimeHour(TimeCurrent())>=3) { *что-то делаем */} Описание этих, и других функций типа Дата/Время есть в справке МетаЭдитора...

    2010-10-10   14:20
    Лучший ответ #4
     

    Всё нормально - на то и раздел придуман этот... Что касается места, куда вставить код - лучше всего так: // Объявляем триггер активности советника ДО ФУНКЦИИ start(), например, в теле функции init() int trg = 0; // 0 - советник НЕ работает, 1 - работает int start() { // это уже у нас есть if (TimeHour(TimeCurrent())>=3) trg=1; // с 3 часов ночи советник начинает работать - переключаем триггер. if (trg!=1) return 0; // выход из start(), если триггер не переключен в состояние активности // ну и дальше собственно код советника ...

    2010-10-11   00:04
    Лучший ответ #5
     

    Vyasheslav, как Вам уже вышел ответил коллега Britney - чтобы иметь возможность при навешивании советника на график менять значение переменных - их нужно в самом начале программы объявить как extern. Т.е., код, который я предлагал Вам выше, теперь будет состоять из трёх частей. Первая, в самом начале программы, где у советника находятся остальные extern: extern int startTime = 3; Вторая часть, в теле функции init(): // Объявляем триггер активности советника ДО ФУНКЦИИ start(), например, в теле функции init() int trg = 0; // 0 - советник НЕ работает, 1 - работает И последняя часть, модифицированный вариант того, что было дано выше, вставляется в самом начале функции start(): int start() { // это уже у нас есть // с заданного часа в переменной startTime советник начинает работать - переключаем триггер. if (TimeHour(TimeCurrent())>= startTime) trg=1; // выход из start(), если триггер не переключен в состояние активности if (trg!=1) return 0; // ну и дальше собственно код советника

    2010-10-11   19:38
    Лучший ответ #6
     

    С попытками своими вложите теперь - ибо к чему вообще был весь разговор до этого. Учиться - так учиться уже....

  4. Линк #47 Свернуть пост
    Свой человек
    ВалераВВ приемлемый уровень репутации ВалераВВ приемлемый уровень репутации Аватар для ВалераВВ
    Регистрация:
    07.03.2011
    Пол:
    Мужчина
    Сообщений:
    269
    Деньги за посты:
    16571 RUB (Подробнее)
    Поставил лайков:
    100
    Получено лайков:  142
    в 83 сообщениях
    53%
    Цитата Сообщение от vdmitrich Посмотреть сообщение
    Здраствуйте. В советнике на экран вывел инфо. " Терминальное время ". Но время изменяется только на следующем открытом баре, а нужно, что бы минута за минутой.
    MQL код:
    ObjectCreate("info  1.3",OBJ_LABEL,0,0,0);
    ObjectSet("info 1.3",OBJPROP_CORNER,3);
    ObjectSet("info 1.3",OBJPROP_XDISTANCE,5);
    ObjectSet("info 1.3",OBJPROP_YDISTANCE,50);
    ObjectSetText("info 1.3","Терминальное время: " + TimeToStr(TimeCurrent(), TIME_SECONDS),11,"Arial",Yellow);

    Буду признателен, если кто-то подправит.
    Ваш код , представленный здесь, вполне рабочий. Обновляет время на каждом новом тике. Проверил , поставив в функцию int start(). Значит причина вашей проблемы не в данной части кода , а в месте ее расположения, необходимо просто поставить эту часть кода в начало функции int start() и все заработает.

    Последний раз редактировалось Gold; 23.08.2013 в 05:01.

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

    vdmitrich (02.11.2011)

  6. Линк #48 Свернуть пост
    Частый гость
    vdmitrich стараюсь положительно себя зарекомендовать Аватар для vdmitrich
    Регистрация:
    30.09.2011
    Пол:
    Мужчина
    Сообщений:
    161
    Деньги за посты:
    1574 RUB (Подробнее)
    Поставил лайков:
    39
    Получено лайков:  31
    в 30 сообщениях
    19%
    Цитата Сообщение от ВалераВВ Посмотреть сообщение
    Ваш код , представленный здесь, вполне рабочий. Обновляет время на каждом новом тике. Проверил , поставив в функцию int start(). Значит причина вашей проблемы не в данной части кода , а в месте ее расположения, необходимо просто поставить эту часть кода в начало функции int start() и все заработает.
    Да, я его поставил в самое начало start(), стал обновлять на каждом новом тике.

    ПАММ-счёт (Manual-Auto Trade)

  7. Линк #49 Свернуть пост
    Частый гость
    vdmitrich стараюсь положительно себя зарекомендовать Аватар для vdmitrich
    Регистрация:
    30.09.2011
    Пол:
    Мужчина
    Сообщений:
    161
    Деньги за посты:
    1574 RUB (Подробнее)
    Поставил лайков:
    39
    Получено лайков:  31
    в 30 сообщениях
    19%
    Здраствуйте! Подскажите, как написать функцию перевод в безубыток. Опишу ситуацию: открыто 2 ордера (Buy и Sell), к примеру, ордер Buy закрылся по Т/Р, по Sell имеем минус и вот нужно чтобы по ордеру Sell T/P превёлся на 0.

    ПАММ-счёт (Manual-Auto Trade)

  8. Линк #50 Свернуть пост
    Частый гость
    KimIV хорошая репутация KimIV хорошая репутация KimIV хорошая репутация KimIV хорошая репутация KimIV хорошая репутация KimIV хорошая репутация Аватар для KimIV
    Регистрация:
    01.12.2011
    Пол:
    Мужчина
    Сообщений:
    135
    Деньги за посты:
    1290 RUB (Подробнее)
    Поставил лайков:
    224
    Получено лайков:  556
    в 101 сообщениях
    412%
    vdmitrich, вот код моего советника по переводу позиции в безубыток. Если будут вопросы, непонятки, обращайтесь

    MQL код:

    //+----------------------------------------------------------------------------+
    //| e-MovingInWL.mq4 |
    //| Ким Игорь В. aka KimIV |
    //| [url]http://www.kimiv.ru[/url] |
    //| 21.09.2005 Двигает стоп в безубыток. |
    //+----------------------------------------------------------------------------+
    #property copyright "Ким Игорь В. aka KimIV"
    #property link "http://www.kimiv.ru"

    //------- Внешние параметры ----------------------------------------------------
    extern int LevelWLoss = 1; // Уровень безубытка
    extern int LevelProfit = 10; // Уровень профита
    extern bool ShowComment = True; // Показывать комментарии
    extern bool SoundAlert = True; // Звук

    //+----------------------------------------------------------------------------+
    //| Custor expert deinitialization function |
    //+----------------------------------------------------------------------------+
    void deinit() { Comment(""); }

    //+----------------------------------------------------------------------------+
    //| expert start function |
    //+----------------------------------------------------------------------------+
    void start() {
    bool fm;
    double pBid, pAsk, pp;
    int i, nd, o=OrdersTotal();
    string comm="";

    for (i=0; i if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
    nd=MarketInfo(OrderSymbol(), MODE_DIGITS);
    pp=MarketInfo(OrderSymbol(), MODE_POINT);
    comm=comm+OrderSymbol()+" Цена: "+DoubleToStr(OrderOpenPrice(), nd)+
    " SL="+DoubleToStr(OrderStopLoss(), nd);
    if (OrderType()==OP_BUY) {
    comm=comm+"("+DoubleToStr((OrderStopLoss()-OrderOpenPrice())/pp, 0)+")\n";
    if (OrderStopLoss()-OrderOpenPrice() pBid=MarketInfo(OrderSymbol(), MODE_BID);
    if (pBid-OrderOpenPrice()>LevelProfit*pp) {
    fm=OrderModify(OrderTicket(),OrderOpenPrice(),Orde rOpenPrice()+LevelWLoss*pp,OrderTakeProfit(),CLR_N ONE);
    }
    }
    }
    if (OrderType()==OP_SELL) {
    comm=comm+"("+DoubleToStr((OrderOpenPrice()-OrderStopLoss())/pp,0)+")\n";
    if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss() pAsk=MarketInfo(OrderSymbol(), MODE_ASK);
    if (OrderOpenPrice()-pAsk>LevelProfit*pp) {
    fm=OrderModify(OrderTicket(),OrderOpenPrice(),Orde rOpenPrice()-LevelWLoss*pp,OrderTakeProfit(),CLR_NONE);
    }
    }
    }
    if (fm) {
    if (SoundAlert) PlaySound("alert2");
    break;
    }
    }
    }
    if (ShowComment) Comment(comm);
    }
    //+------------------------------------------------------------------+

    Последний раз редактировалось Gold; 23.08.2013 в 05:00. Причина: заменил на тег MQL
    Бывает, сделаешь вид, что работаешь, и затягивает! Работаешь и работаешь...

  9. Линк #51 Свернуть пост
    Частый гость
    Сама доброта
     
    boka80 стараюсь положительно себя зарекомендовать Аватар для boka80
    Регистрация:
    10.06.2011
    Пол:
    Мужчина
    Сообщений:
    87
    Деньги за посты:
    699 RUB (Подробнее)
    Поставил лайков:
    41
    Получено лайков:  13
    в 10 сообщениях
    15%
    подскажите где ошибка. вставляю код работы по времени



    Последний раз редактировалось Gold; 23.08.2013 в 04:59.

  10. Линк #52 Свернуть пост
    Частый гость
    Сама доброта
     
    abdul стараюсь положительно себя зарекомендовать Аватар для abdul
    Регистрация:
    04.02.2010
    Сообщений:
    181
    Деньги за посты:
    1999 RUB (Подробнее)
    Поставил(а) лайков:
    11
    Получено лайков:  25
    в 22 сообщениях
    14%
    Не подскажет кто нибудь кусочек кода какого нибудь индикатора который собирает статистику. В лучшем случаии хотелось бы такой инд который собирает статистику длины тренда по МА


  11. Линк #53 Свернуть пост
    В начале пути
    Все пучком
     
    rusnik стараюсь положительно себя зарекомендовать Аватар для rusnik
    Регистрация:
    25.01.2012
    Пол:
    Мужчина
    Сообщений:
    12
    Деньги за посты:
    129 RUB (Подробнее)
    Поставил лайков:
    4
    Поблагодарили 1 раз в
    1 сообщении
    8%
    Уважаемые программисты. Помогите создать пользовательскую функцию на основании пользовательского индикатора. Вот индикатор.
    paperclip Вложения


  12. Линк #54 Свернуть пост
    Частый гость
    Хитер
     
    DRAKON стараюсь положительно себя зарекомендовать Аватар для DRAKON
    Регистрация:
    15.06.2011
    Пол:
    Мужчина
    Сообщений:
    154
    Деньги за посты:
    12719 RUB (Подробнее)
    Поставил лайков:
    14
    Получено лайков:  44
    в 27 сообщениях
    29%
    подскажите пожалуйста мне нужно что бы ордера открывались не по индюку а через определённое количество пунктов и где есть открытый, новый не открывается если кто знает киньте пожалуйста код буду очень благодарен

    границ нет границы придумали люди!!!

  13. Линк #55 Свернуть пост
    Частый гость
    Maks2703 стараюсь положительно себя зарекомендовать Аватар для Maks2703
    Регистрация:
    30.05.2012
    Пол:
    Мужчина
    Сообщений:
    101
    Деньги за посты:
    965 RUB (Подробнее)
    Поставил лайков:
    1
    Получено лайков:  3
    в 3 сообщениях
    3%
    Ребята помогите разобраться в чем ошибка кода


    MQL код:
    extern double Lots       = 00.1;
    extern int TakeProfit = 50;
    extern int StopLoss = 50;
    extern int Slippage = 5;
    extern int Magic = 777;
    extern string comment = "$$$777$$$";
    extern string indi = "Данные индикатора";
    extern int FastEMA = 3;
    extern int SlowEMA = 6;
    extern int SignalSMA = 3;
    extern bool AlertSoundOn = false;
    extern string SoundFile = "10.wav";

    double PriceHigh, PriceLow, SL, TP;
    int ticket;

    //+------------------------------------------------------------------+
    //| expert initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    if (Digits ==3 || Digits ==5)

    {
    TakeProfit * = 10;
    StopLoss * = 10;
    Slippage * = 10;

    }
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert start function |
    //+------------------------------------------------------------------+
    int start()
    {
    PriceHigh = iCustom(Symbol(), 0, "FR-Signals", FastEMA, SlowEMA, SignalSMA, AlertSoundOn, SoundFile, 1, 0);
    PriceLow = iCustom(Symbol(), 0, "FR-Signals", FastEMA, SlowEMA, SignalSMA, AlertSoundOn, SoundFile, 2, 0);

    if (Bid >=PriceHigh && CountSell() == 0)
    {
    SL = NormalizeDouble (Bid + StopLoss * Point, Digits);
    TP = NormalizeDouble (Bid - TakeProfit * Point, Digits);

    ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, comment, Magic, 0, Red);
    if (ticket > 0)
    {
    if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES) == true)
    OrderModify(ticket, OrderOpenPrice(), SL, TP,0);

    }
    }

    if (Ask <=PriceLow && CountBuy() == 0)
    {
    SL = NormalizeDouble(Ask - StopLoss * Point, Digits);
    TP = NormalizeDouble(Ask + TakeProfit * Point, Digits);

    ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, comment, Magic, 0, Blue);
    if (ticket > 0)
    {
    if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES) == true)
    OrderModify(ticket, OrderOpenPrice(), SL, TP,0);
    }
    }



    return(0);
    }
    //+------------------------------------------------------------------+
    int CountSell()
    {
    int count = 0;
    for(int trade = OrdersTotal() -1; trade >=0; trade--)
    {
    OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
    if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
    {
    if (OrderType() == OP_SELL)
    count++;

    }
    }
    return(count);
    }
    //+------------------------------------------------------------------+
    int CountBay()
    {
    int count=0;
    for (int trade = OrdersTotal() -1; trade >=0; trade--)
    {
    OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
    if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
    {
    if (OrderType() == OP_BUY)
    count++;

    }
    }
    return(count);
    }

    Последний раз редактировалось Gold; 23.08.2013 в 04:57.

  14. Линк #56 Свернуть пост
    Кандидат форумных наук
    В эйфории
     
    ACA приемлемый уровень репутации Аватар для ACA
    Регистрация:
    18.07.2013
    Пол:
    Мужчина
    Сообщений:
    1,036
    Деньги за посты:
    11376 RUB (Подробнее)
    Поставил лайков:
    26
    Получено лайков:  108
    в 97 сообщениях
    10%
    Ребят извините меня пожалуйста. Может я пишу не в ту ветку. Но мне пришла вот такая мысль в голову. Как можно прикрутить звуковой сигнал к советнику? Чтоб он активировался при закрытие сделки. Желательно чтоб данный сигнал воспроизводился в формате mp3 чтоб можно было вставить любую мелодию.
    Заранее огромное спасибо.

    Всем огромное спасибо за форум и советы! На этом форуме и правда есть бескорыстные люди! Всем удачного

  15. Линк #57 Свернуть пост
    В начале пути
    malking стараюсь положительно себя зарекомендовать Аватар для malking
    Регистрация:
    25.05.2013
    Пол:
    Мужчина
    Сообщений:
    33
    Деньги за посты:
    318 RUB (Подробнее)
    Поставил лайков:
    0
    Поблагодарили 1 раз в
    1 сообщении
    3%
    Цитата Сообщение от ACA Посмотреть сообщение
    Как можно прикрутить звуковой сигнал к советнику?
    Есть функция PlaySound("alert.wav"), но она играет вавы, но это не критично, можешь любой мп3-шник перевести в вав. Закрытие сделки можно определить по изменению количества открытых ордеров. Если их стало меньше, чем было при последней проверке, значит какой-то ордер закрылся, в этом месте программы вызывай эту функцию.


  16. Линк #58 Свернуть пост
    В начале пути
    malking стараюсь положительно себя зарекомендовать Аватар для malking
    Регистрация:
    25.05.2013
    Пол:
    Мужчина
    Сообщений:
    33
    Деньги за посты:
    318 RUB (Подробнее)
    Поставил лайков:
    0
    Поблагодарили 1 раз в
    1 сообщении
    3%
    Цитата Сообщение от Maks2703 Посмотреть сообщение
    Ребята помогите разобраться в чем ошибка кода
    Ты вызываешь
    Цитата Сообщение от Maks2703 Посмотреть сообщение
    CountBuy() == 0
    , а объявляешь
    Цитата Сообщение от Maks2703 Посмотреть сообщение
    int CountBay() {
    Имя функции в объявлении и при вызове должны совпадать. Исправь там или там. Должно заработать.


  17. Линк #59 Свернуть пост
    Частый гость
    Maks2703 стараюсь положительно себя зарекомендовать Аватар для Maks2703
    Регистрация:
    30.05.2012
    Пол:
    Мужчина
    Сообщений:
    101
    Деньги за посты:
    965 RUB (Подробнее)
    Поставил лайков:
    1
    Получено лайков:  3
    в 3 сообщениях
    3%
    Спасибо я уже нашол эти 2 ошибки, он все равно не хочет с индикатором работать, он либо только продает и то непонятно как либо меняешь буферы покупает и продает по 1000 ордеров в минуту.
    Вот 2 полных кода если кто сможет помочь совместить их, пожалуйста помогите. смысел работы стрелка вниз продаем стрелка в верх SELL закрываем BUY покупаем.

    Сова



    Последний раз редактировалось Gold; 01.09.2013 в 15:18.

  18. Линк #60 Свернуть пост
    В начале пути
    malking стараюсь положительно себя зарекомендовать Аватар для malking
    Регистрация:
    25.05.2013
    Пол:
    Мужчина
    Сообщений:
    33
    Деньги за посты:
    318 RUB (Подробнее)
    Поставил лайков:
    0
    Поблагодарили 1 раз в
    1 сообщении
    3%
    Цитата Сообщение от rusnik Посмотреть сообщение
    Уважаемые программисты. Помогите создать пользовательскую функцию на основании пользовательского индикатора. Вот индикатор.
    MAAngle.mq4
    Что должна делать функция и при каких условиях? Задание нужно... :-)


  19. Линк #61 Свернуть пост
    отдыхает от форума
    Gerbys хорошая репутация Gerbys хорошая репутация Gerbys хорошая репутация Gerbys хорошая репутация Gerbys хорошая репутация Gerbys хорошая репутация Аватар для Gerbys
    Регистрация:
    17.05.2013
    Пол:
    Мужчина
    Сообщений:
    5,227
    Деньги за посты:
    57984 RUB (Подробнее)
    Поставил лайков:
    284
    Получено лайков:  621
    в 576 сообщениях
    12%
    Подскажите правильную функцию(код). Функционал функции следующий. Мы от дали сигнал на проверку отложных ордеров, скажем есть 10 ордеров. Нужно найти среди данных ордеров, ордер. Непонятно, скажем по другому. Фильтр вставлен на то, в каком ордере самое маленькое расстояние заданной цены от настоящей, измеряем в пунктах. И отдаем номер ордера, наиболее подходящего. Надеюсь задумка функции ясна.


  20. Линк #62 Свернуть пост
    В начале пути
    malking стараюсь положительно себя зарекомендовать Аватар для malking
    Регистрация:
    25.05.2013
    Пол:
    Мужчина
    Сообщений:
    33
    Деньги за посты:
    318 RUB (Подробнее)
    Поставил лайков:
    0
    Поблагодарили 1 раз в
    1 сообщении
    3%
    Цитата Сообщение от Maks2703 Посмотреть сообщение
    он все равно не хочет с индикатором работать, он либо только продает и то непонятно как либо меняешь буферы покупает и продает по 1000 ордеров в минуту
    Такое поведение, как мне кажется, определено кодом индикатора. Он сначала обнуляет значение переменных:
    MQL код:
    tia_0[li_24] = EMPTY_VALUE;
    gda_116[li_24] = EMPTY_VALUE;

    И только потом заполняет их значением:
    MQL код:
    tia_0[li_24] = Low[li_24] - 10.0 * Point;
    gda_116[li_24] = High[li_24] + 10.0 * Point;

    Скорее всего из-за этого происходит закрытие ордеров. Попробую разобраться. Видимо через глобальную переменную нужно работать с индикатором.

    Последний раз редактировалось Gold; 01.09.2013 в 15:19.

  21. Линк #63 Свернуть пост
    В начале пути
    malking стараюсь положительно себя зарекомендовать Аватар для malking
    Регистрация:
    25.05.2013
    Пол:
    Мужчина
    Сообщений:
    33
    Деньги за посты:
    318 RUB (Подробнее)
    Поставил лайков:
    0
    Поблагодарили 1 раз в
    1 сообщении
    3%
    Цитата Сообщение от Gerbys Посмотреть сообщение
    Подскажите правильную функцию(код). Функционал функции следующий. Мы от дали сигнал на проверку отложных ордеров, скажем есть 10 ордеров. Нужно найти среди данных ордеров, ордер. Непонятно, скажем по другому. Фильтр вставлен на то, в каком ордере самое маленькое расстояние заданной цены от настоящей, измеряем в пунктах. И отдаем номер ордера, наиболее подходящего. Надеюсь задумка функции ясна.
    Например для Sell Limit ордеров можно сделать так:
    MQL код:
    int nearest()
    {
    double mindev = 1000.0;
    int orderNum;
    for (int i = 0; i < OrdersTotal(); i++)
    {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)
    if (OrderType == OP_SELLLIMIT)
    if ((OrderOpenPrice() - Bid) / Point < mindev)
    {
    mindev = (OrderOpenPrice() - Bid) / Point;
    orderNum = OrderTicket();
    }
    }
    return(orderNum);
    }

    Для проверки ордеров других типов можно или отдельно написать функцию, или добавить условие для соответствующего типа ордера.

    Последний раз редактировалось Gold; 01.09.2013 в 15:19.

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

    Gerbys (30.08.2013)