BUY FXO Forum Shares
1316
Shares in the BANK:
We BuyWe Sell
$1.9212$1.9806
Results 1 to 10 of 10

Thread: MQL4 заметки от eevviill

  1. #1

  2. The Following User Says Thank You to eevviill For This Useful Post:

    Sanyok11 (09-04-2017)

  3. #2
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    1,299
    FXO Shares
    0
    FXO Bonus
    0.000
    Thanks
    850
    Thanked 617 Times in 521 Posts

    Default Заметка1 - сдвиг данных в массиве

    В этом коде мы копируем массив сам в себя но со сдвигом.


    Сдвинуть данные на 1 елемент назад. (6-ой станет 5-ым и т.д.)
    PHP Code:
    ArrayCopy(buf,buf,0,1); 
    Сдвинуть на 1 вперёд.
    PHP Code:
    ArrayCopy(buf,buf,1,0); 
    Last edited by eevviill; 09-04-2017 at 10:46 AM.
    MQL4 programmer


  4. #3
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    1,299
    FXO Shares
    0
    FXO Bonus
    0.000
    Thanks
    850
    Thanked 617 Times in 521 Posts

    Default Заметка2 - перебор всех символов в обзоре рынка

    В этом коде мы узнаем какие символы у нас в Обзоре рынка и запишим их в буфер.

    PHP Code:
    int symbols_tot;
    string symbols[]; 

    //////////////////////////////////////////////////////////////
    int OnInit()
    {
    symbols_tot=SymbolsTotal(true);
    ArrayResize(symbols,symbols_tot);

    for(
    int i=0;i<symbols_tot;i++)
    {
      
    symbols[i]=SymbolName(i,true);
    }

    return(
    INIT_SUCCEEDED);
    }

    ///////////////////////////////////////////////////////////////
    void OnTick()
    {
    for(
    int i=0;i<symbols_tot;i++)
    {
    Alert("Symbol:"+symbols[i]);
    }


    Last edited by eevviill; 09-09-2017 at 05:49 PM.
    MQL4 programmer


  5. #4
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    1,299
    FXO Shares
    0
    FXO Bonus
    0.000
    Thanks
    850
    Thanked 617 Times in 521 Posts

    Default Заметка 3 - преобразование типа переменной

    Если вам надо например преобразовать тип переменной с datetime в string, то можно это сделать так
    PHP Code:
    datetime time_cur=TimeCurrent();
    Alert(TimeToString(time_cur)); 
    А можно так
    PHP Code:
    datetime time_cur=TimeCurrent();
    Alert(string(time_cur)); 
    MQL4 programmer


  6. #5
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    1,299
    FXO Shares
    0
    FXO Bonus
    0.000
    Thanks
    850
    Thanked 617 Times in 521 Posts

    Default Заметка 4 - открытие ордера(бинарные опционы)

    Разница только в коментарие к ордеру. Нужно записывать так
    PHP Code:
    extern int expiration_minits 5;
    ...
    OrderSend(Symbol(),OP_BUY,Lot,Ask,0,0,0,"BO exp:"+string(expiration_minits*60),Magic,0,clrNONE); 
    MQL4 programmer


  7. #6
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    1,299
    FXO Shares
    0
    FXO Bonus
    0.000
    Thanks
    850
    Thanked 617 Times in 521 Posts

    Default Заметка 5 - поиск цен уровней Фибоначчи

    Сами цены уровней узнать нельзя. Только расчитать.

    PHP Code:
    string name_fibo="Fibo";


      
    int levels=int(ObjectGetInteger(0,name_fibo,OBJPROP_LEVELS));
      
    double fib_prices[]; ArrayResize(fib_prices,levels);
      
    double price_lev0=ObjectGetDouble(0,name_fibo,OBJPROP_PRICE,1);
      
    double price_lev100=ObjectGetDouble(0,name_fibo,OBJPROP_PRICE,0);
      
    bool wayUP=false; if(price_lev0<price_lev100wayUP=true;
      
    double perc100_points=MathAbs(price_lev0-price_lev100);


       
    double level=0;
       for(
    int i=0;i<levels;i++)
         {
          
    level=ObjectGetDouble(0,name_fibo,OBJPROP_LEVELVALUE,i);
          if(
    wayUPfib_prices[i]=price_lev0+perc100_points*level;
          else
          
    fib_prices[i]=price_lev0-perc100_points*level;     
         } 
    MQL4 programmer


  8. #7
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    1,299
    FXO Shares
    0
    FXO Bonus
    0.000
    Thanks
    850
    Thanked 617 Times in 521 Posts

    Default Заметка 6 - нажатие кнопки

    OnChartEvent() в тестере не работает. Но одно универсальное решение для нажатия кнопки в тестере и живой торговли есть.

    PHP Code:
     if(ObjectGetInteger(0,"BUY_button",OBJPROP_STATE))

    {

    ObjectSetInteger(0,"BUY_button",OBJPROP_STATE,false);

    ... 


    MQL4 programmer


  9. #8
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    1,299
    FXO Shares
    0
    FXO Bonus
    0.000
    Thanks
    850
    Thanked 617 Times in 521 Posts

    Default Заметка 7 - обрезание символов в цене инструмента

    Подходит только к цене. Если что то другое, то надо вместо Digits писать число которое ровно количеству символов дроби.

    PHP Code:
    extern ushort Characters_delete 1;

    ///////////////////////////////////////////
    string data=DoubleToString(Bid,Digits); 
    string resoult=StringSubstr(data,0,StringLen(data)-Characters_delete); 
    MQL4 programmer


  10. #9
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    1,299
    FXO Shares
    0
    FXO Bonus
    0.000
    Thanks
    850
    Thanked 617 Times in 521 Posts

    Default Заметка 8 - разделение строки на элементы

    Например нам нужно разделить строку с лотами и поместить их в буфер.

    PHP Code:
    extern string Lots="0.01,0.03,0.06";

    ...
    string str_spl[];
    int size=StringSplit(Lots,StringGetCharacter(",",0),str_spl);
    ArrayResize(lots_buf,size);

    for(
    int i=0;i<size;i++)
    {
    lots_buf[i]=double(str_spl[i]);

    MQL4 programmer


  11. #10
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    1,299
    FXO Shares
    0
    FXO Bonus
    0.000
    Thanks
    850
    Thanked 617 Times in 521 Posts

    Default Заметка 9 - работа кода на первом тике нового бара

    Первый вариант.
    Весь код дальше этого будет выполнятся на первом тике нового бара.
    PHP Code:
    int prev_bars=Bars;
    ...
    if(
    prev_bars==Bars) return;
    prev_bars=Bars

    Второй вариант.
    Код в квадратных скобках будет выполнятся на первом тике нового бара.
    PHP Code:
    int prev_bars=Bars;
    ...
    if(
    prev_bars!=Bars)
    {
    prev_bars=Bars;

    MQL4 programmer


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Disclaimer
2005-2017 © FXOpen All rights reserved. Various trademarks held by their respective owners.

Risk Warning:: Trading on the Forex market involves substantial risks, including complete possible loss of funds and other losses and is not suitable for all members. Clients should make an independent judgment as to whether trading is appropriate for them in the light of their financial condition, investment experience, risk tolerance and other factors.

FXOpen Markets Limited, a company duly registered in Nevis under the company No. C 42235. FXOpen is a member of The Financial Commission.

FXOpen AU Pty Ltd., a company authorised and regulated by the Australian Securities & Investments Commission (ASIC). AFSL 412871ABN 61 143 678 719.

FXOpen Ltd. a company registered in England and Wales under company number 07273392 and is authorised and regulated by the Financial Conduct Authority (previously, the Financial Services Authority) under FCA firm reference number 579202.

FXOpen does not provide services for United States residents.

Join us