FXOpen Broker

10+ years’
experience in FX

VISIT WEBSITE

Trading Accounts

ECN, STP,
Micro, Crypto

START TRADING

Free Demo

Practice Forex trading
risk free

OPEN DEMO ACCOUNT

PAMM Technology

Become a Master
or a Follower

JOIN PAMM SERVICE
Page 6 of 6 FirstFirst ... 23456
Results 76 to 81 of 81

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

  1. #76
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    4,224
    Thanks
    1,509
    Thanked 1,568 Times in 1,436 Posts

    Default Заметка 75 - значение объявленых не инициализированных переменных

    Нужно учитывать момент что при объявлении глобальных перменных без указания их значения они имеют 0 значение или пустое если это string.
    Но если объявлять локальные переменные и не инициализировать их, то они могут иметь любое значение.
    Last edited by eevviill; 04-15-2020 at 07:50 PM.
    MQL4 programmer

    Volli Correla lines

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

    kukul3 (06-08-2020)

  3. #77
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    4,224
    Thanks
    1,509
    Thanked 1,568 Times in 1,436 Posts

    Default Заметка 76 - размер части свечи в %

    Размер тела свечи в % это 100%. (High-Low)
    А как проверить условие например Если Close свечи выше 40%?


    Сначало узнаём в пунктах сколько весит 1%
    PHP Code:
    double perc1=(High[1]-Low[1])/100.0
    Потом проверяем выше ли Close за Low+величина одного процента*40
    PHP Code:
    if(Close[1]>Low[1]+perc1*40Alert("ok"); 
    Last edited by eevviill; 04-17-2020 at 06:34 PM.
    MQL4 programmer

    Volli Correla lines

  4. #78
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    4,224
    Thanks
    1,509
    Thanked 1,568 Times in 1,436 Posts

    Default Заметка 77 - старт советника после достижения цены(линии)

    Код, после прописания которого советник будет рисовать линию и только после достижения ценой этой линии советник стрёт её и начнёт торговать.

    PHP Code:
    extern bool start_H_line false;
    extern double start_H_line_price 1.0000;
    string identif "Khas H line";
    int way=Bid>start_H_line_price?-1:1;

     
    /////////////////////////
     
    int OnInit()
     {  
     if(
    start_H_linedrawHline();
     ...
     return(
    INIT_SUCCEEDED);
     }
     
     
    //////////////////////////
     
    void OnDeinit(const int reason)
     {
     if(
    start_H_lineObjectDelete(0,identif);
     ...
     }

     
    /////////////////////////
     
    void OnTick()
     {
     if(
    start_H_line)
     {
     if((
    way==&& Bid>=start_H_line_price) || (way==-&& Bid<=start_H_line_price)) {way=0;ObjectDelete(0,identif);}
     if(
    way!=0) return;
     }
     ...
     } 
    Last edited by eevviill; 04-17-2020 at 06:47 PM.
    MQL4 programmer

    Volli Correla lines

  5. #79
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    4,224
    Thanks
    1,509
    Thanked 1,568 Times in 1,436 Posts

    Default Заметка 78 - перебор ордеров в MQL5

    PHP Code:
    input int Magic 334;
    ...
      
    //hist
      
    int ticke;
      
    HistorySelect(0,TimeCurrent());
      
    for(
    int i=HistoryDealsTotal()-1;i>=0;i--)

    ticke=int(HistoryDealGetTicket(i));
    if(!
    ticke) continue;
    if(
    HistoryDealGetInteger(ticke,DEAL_MAGIC)!=Magic) continue; 
    if(
    HistoryDealGetString(ticke,DEAL_SYMBOL)!=_Symbol) continue;
    if(
    HistoryDealGetInteger(ticke,DEAL_ENTRY)==DEAL_ENTRY_IN) continue; //opos closed order data

    Alert(HistoryDealGetInteger(ticke,DEAL_TIME));
    }
    ...   
       
    //mark
       
    string symb;
         
    for(
    int i=PositionsTotal()-1;i>=0;i--)

    symb=PositionGetSymbol(i);
    if(
    symb=="" || symb!=_Symbol) continue;
    if(
    PositionGetInteger(POSITION_MAGIC)!=Magic) continue; 

    Alert(PositionGetInteger(POSITION_TIME));

    MQL4 programmer

    Volli Correla lines

  6. #80
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    4,224
    Thanks
    1,509
    Thanked 1,568 Times in 1,436 Posts

    Default Заметка 79 - нажатие кнопки и графика-открытие ордера

    PHP Code:
    string buyP_ButName="buyP button_";
    string sparam_prev;


    //////////////////////////////////////////////////////////////
     
    int OnInit()
     {  

    string Name=buyP_ButName;
    if(
    ObjectFind(0,Name)==-1)
    {
       
    ObjectCreate(Name,OBJ_BUTTON,0,0,0);
       
    ObjectSetString(0,Name,OBJPROP_TEXT,"press"); 
       
    ObjectSetInteger(0,Name,OBJPROP_BACK,false);
       
    ObjectSetInteger(0,Name,OBJPROP_ZORDER,false);
       
    ObjectSetInteger(0,Name,OBJPROP_SELECTABLE,false);
       
    ObjectSetInteger(0,Name,OBJPROP_SELECTED,false);
       
    ObjectSetInteger(0,Name,OBJPROP_HIDDEN,true);
       
    ObjectSetInteger(0,Name,OBJPROP_XSIZE,100);
       
    ObjectSetInteger(0,Name,OBJPROP_YSIZE,30);
       
    ObjectSetInteger(0,Name,OBJPROP_FONTSIZE,14);
       
    ObjectSetInteger(0,Name,OBJPROP_CORNER,CORNER_RIGHT_UPPER);
       
    ObjectSetInteger(0,Name,OBJPROP_ANCHOR,ANCHOR_RIGHT);
       
    ObjectSetInteger(0,NameOBJPROP_XDISTANCE,120);
       
    ObjectSetInteger(0,NameOBJPROP_YDISTANCE20);
       
    ObjectSetInteger(0,Name,OBJPROP_COLOR,clrBlue);
       
    ObjectSetInteger(0,Name,OBJPROP_BGCOLOR,clrYellow);


     return(
    INIT_SUCCEEDED);
    }


    ///////////////////////////////////////////////////////////////
    void OnChartEvent(const int id,         // Event ID 
                      
    const longlparam,   // Parameter of type long event 
                      
    const doubledparam// Parameter of type double event 
                      
    const stringsparam  // Parameter of type string events 
      
    )
      {  
      
    double price=0;
      
    datetime time=0;
      
    int wind=0;
      
    ChartXYToTimePrice(0,int(lparam),int(dparam),wind,time,price);
      
       
    /////////////////////BUYSTOP 
    if(ObjectGetInteger(0,buyP_ButName,OBJPROP_STATE) && id==CHARTEVENT_CLICK && sparam_prev!=buyP_ButName)
    {
    ObjectSetInteger(0,buyP_ButName,OBJPROP_STATE,false);
    OrderSend(_Symbol,OP_BUYSTOP,0.1,NormalizeDouble(price,_Digits),0,0,0,"prob",123,0,clrNONE);
     }

    sparam_prev=sparam;

    Last edited by eevviill; 05-27-2020 at 10:21 AM.
    MQL4 programmer

    Volli Correla lines

  7. #81
    Moderator eevviill's Avatar
    Join Date
    Jul 2015
    Location
    Бандерівці
    Posts
    4,224
    Thanks
    1,509
    Thanked 1,568 Times in 1,436 Posts

    Default Заметка 80 - iMAOnArray (MA на MA)

    В коде накладывается одна МА на другую. Это равноценно если в настройках МА на графике выбрать пункт PreviousIndicatorData в выборе к какой цене применять. Можно в буфер где МА1 расчитать данные скажем RSI. Тогда выйдет расчёт МА2 по RSI.

    PHP Code:
    input string ind1_name "MA1";
    input int ma_period 5;
    input int ma_shift 0;
    input ENUM_MA_METHOD ma_method MODE_EMA;
    input ENUM_APPLIED_PRICE applied_price PRICE_CLOSE;
    input string ind2_name "MA2";
    input int ma_period2 5;
    input int ma_shift2 0;
    input ENUM_MA_METHOD ma_method2 MODE_EMA;
    ...
    //ma1
    double ma_buf[]; ArrayResize(ma_buf,MathMax(ma_period,ma_period2)+1); ArraySetAsSeries(ma_buf,true); 

    for(
    int i=1;i<1+MathMax(ma_period,ma_period2);i++)

    ma_buf[i]=iMA(_Symbol,PERIOD_CURRENT,ma_period,ma_shift,ma_method,applied_price,i); 
    }
    //ma2
    double ma2=iMAOnArray(ma_buf,0,ma_period2,ma_shift2,ma_method2,1);

    Alert(ma2
    Last edited by eevviill; 09-15-2020 at 10:21 AM.
    MQL4 programmer

    Volli Correla lines

Page 6 of 6 FirstFirst ... 23456

Tags for this Thread

Bookmarks

Bookmarks

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-2020 © 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