conversione dell’indicatore infoboard dal software mt4 grazie anticipatamente

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #143907 quote
    settival
    Participant
    Senior

    //+——————————————————————+
    //| Infoboard.mq4 |
    //+——————————————————————+
    #property indicator_chart_window

    #import “user32.dll”
    int PostMessageW(int hWnd,int Msg,int wParam,int lParam);
    int RegisterWindowMessageW(string lpString);
    #import

    extern string Version_140=””;
    extern int Corner=1;
    extern int Offset_X = 1;
    extern int Offset_Y = 21;
    extern bool All_Other_Objects_To_Background=true;
    extern int Days_For_ATR=100;

    extern bool Show_Symbol_and_Timeframe=1;
    extern bool Show_Price_and_Spread=1;
    extern bool Show_Time_and_Tick = 1;
    extern bool Show_Fractal_Trend = 1;
    extern bool Show_Average_Hi_Lo = 1;
    extern bool Show_Today_Hi_Lo=1;
    extern bool Show_Hi_Lo_to_Spread=1;
    extern bool Show_Current_Bar_Hi_Lo=1;
    extern bool Show_Previous_Bar_Hi_Lo=1;
    extern bool Show_Tickvalue = 1;
    extern bool Show_Stoplevel = 1;
    extern bool Show_Swap=1;

    extern color Background_Color=C’40,40,40′;
    extern color Text_Color=C’220,220,220′;
    extern color Text_Label_Color=C’120,120,120′;
    extern color Up_Color=Green;
    extern color Middle_Color=Yellow;
    extern color Down_Color=Red;

    double old_price,old_spread;
    string timeframe;
    string tick=”n”;
    int di,po,ti;

    string info_font=”Verdana”;
    int info_fontsize=8;

    int tf[]={1,5,15,30,60,240,1440};
    string tf_label[]={“M1″,”M5″,”M15″,”M30″,”H1″,”H4″,”D1”};
    int tf_lab_ofset[]={4,4,2,2,4,4,4};
    int xp[4],yo[10],lo[3];
    int x,y,ofs_sema=23;;
    //+——————————————————————+
    //| |
    //+——————————————————————+
    int init()
    {

    int ylen=3;
    int TitleX,TitleY,WebX,WebY,extend_board,offset_col;
    int symlen=StringLen(Symbol());

    if(All_Other_Objects_To_Background)
    {
    int hwnd=WindowHandle(Symbol(),Period());
    int msg=RegisterWindowMessageW(“MetaTrader4_Internal_Message”);
    PostMessageW(hwnd,msg,2,1);
    }

    if(Show_Symbol_and_Timeframe)
    {
    if(symlen>7)
    {
    extend_board=symlen-6;
    offset_col=symlen*5;
    }
    ylen+=3;
    }

    if(Show_Price_and_Spread) ylen+=3;
    if(Show_Time_and_Tick) ylen+=3;
    if(Show_Fractal_Trend) ylen+=4;
    if(Show_Average_Hi_Lo) ylen+=1;
    if(Show_Today_Hi_Lo) ylen+=1;
    if(Show_Hi_Lo_to_Spread) ylen+=1;
    if(Show_Current_Bar_Hi_Lo) ylen+=1;
    if(Show_Previous_Bar_Hi_Lo) ylen+=1;
    if(Show_Tickvalue) ylen+=1;
    if(Show_Stoplevel) ylen+=1;
    if(Show_Swap) ylen+=2;

    if(Corner>3) Corner=1;

    switch(Corner)
    {
    case 0: x = Offset_X;
    y = Offset_Y;
    TitleX = x+42;
    TitleY = y+3;
    WebX = x+60;
    WebY = y+21;
    xp[0] = x+132+offset_col;
    xp[1] = x+10;
    xp[2] = x+10;
    xp[3] = x+123;
    yo[0] = y+40;
    yo[1] = 14;
    yo[2] = 26;
    yo[3] = 6;
    yo[4] = 0;
    yo[5] = 10;
    yo[6] = 14;
    yo[7] = 24;
    yo[8] = 45;
    yo[9] = 14;
    lo[0] = -32;
    lo[1] = -28;
    lo[2] = 10;

    CreateBox(“XBoard_Main”,x,y,14+extend_board,ylen);

    break;

    case 1: x = Offset_X;
    y = Offset_Y;
    TitleX = x+42;
    TitleY = y+3;
    WebX = x+60;
    WebY = y+21;
    xp[0] = x+10;
    xp[1] = x+80;
    xp[2] = x+74;
    xp[3] = x+10;
    yo[0] = y+40;
    yo[1] = 14;
    yo[2] = 26;
    yo[3] = 6;
    yo[4] = 0;
    yo[5] = 10;
    yo[6] = 14;
    yo[7] = 24;
    yo[8] = 45;
    yo[9] = 14;
    lo[0] = -32;
    lo[1] = -28;
    lo[2] = 10;

    CreateBox(“XBoard_Main”,x,y,14+extend_board,ylen);

    ArraySetAsSeries(tf,true);
    ArraySetAsSeries(tf_label,true);
    ArraySetAsSeries(tf_lab_ofset,true);

    break;

    case 2: x = Offset_X;
    y = Offset_Y-(25-ylen)*14;
    TitleX = x+42;
    TitleY = y+3+330;
    WebX = x+60;
    WebY = y+325;
    xp[0] = x+132+offset_col;
    xp[1] = x+10;
    xp[2] = x+10;
    xp[3] = x+123;
    yo[0] = y+295;
    yo[1] = -30;
    yo[2] = -10;
    yo[3] = 9;
    yo[4] = 12;
    yo[5] = -29;
    yo[6] = -300;
    yo[7] = -4;
    yo[8] = -28;
    yo[9] = -14;
    lo[0] = 24;
    lo[1] = 22;
    lo[2] = -11;

    CreateBox(“XBoard_Main”,x,y+(25-ylen)*14,14+extend_board,ylen);

    break;

    case 3: x = Offset_X;
    y = Offset_Y-(25-ylen)*14;
    TitleX = x+42;
    TitleY = y+3+330;
    WebX = x+60;
    WebY = y+325;
    xp[0] = x+10;
    xp[1] = x+80;
    xp[2] = x+75;
    xp[3] = x+10;
    yo[0] = y+295;
    yo[1] = -30;
    yo[2] = -10;
    yo[3] = 9;
    yo[4] = 12;
    yo[5] = -29;
    yo[6] = -300;
    yo[7] = -4;
    yo[8] = -28;
    yo[9] = -14;
    lo[0] = 24;
    lo[1] = 22;
    lo[2] = -11;

    CreateBox(“XBoard_Main”,x,y+(25-ylen)*14,14+extend_board,ylen);

    ArraySetAsSeries(tf,true);
    ArraySetAsSeries(tf_label,true);
    ArraySetAsSeries(tf_lab_ofset,true);

    break;
    }

    switch(Period())
    {
    case 1 : timeframe = “M1”; break;
    case 5 : timeframe = “M5”; break;
    case 15 : timeframe = “M15”; break;
    case 30 : timeframe = “M30”; break;
    case 60 : timeframe = “H1”; break;
    case 240 : timeframe = “H4”; break;
    case 1440 : timeframe = “D1”; break;
    case 10080 : timeframe = “W1”; break;
    case 43200 : timeframe = “MN1″; break;
    default : timeframe = Period()+” Min”; break;
    }

    switch(Digits)
    {
    case 0: di = 0; po = 1; ti = 1; break;
    case 1: di = 1; po = 1; ti = 10; break;
    case 2: di = 0; po = 100; ti = 1; break;
    case 3: di = 1; po = 100; ti = 10; break;
    case 4: di = 0; po = 10000; ti = 1; break;
    case 5: di = 1; po = 10000; ti = 10; break;
    default: di= Digits;
    }

    CreateText(“XBoard_Title”,TitleX,TitleY,”INFOBOARD”,11,”Arial Black”,Text_Color);
    CreateText(“XBoard_Web”,WebX,WebY,”www.truetl.com”,7,”Arial”,Text_Color);

    return(0);
    }
    //+——————————————————————+
    //| |
    //+——————————————————————+
    int deinit()
    {

    for(int i=ObjectsTotal(); i>=0; i–)
    {
    if(StringSubstr(ObjectName(i),0,7)==”XBoard_”)
    {
    ObjectDelete(ObjectName(i));
    }
    }
    return(0);
    }
    //+——————————————————————+
    //| |
    //+——————————————————————+
    int start()
    {

    int i,c,a;
    double uplevel,dolevel,new_price,new_spread,avg;

    if(All_Other_Objects_To_Background)
    {
    for(i=ObjectsTotal(); i>=0; i–)
    {
    if(StringSubstr(ObjectName(i),0,7)!=”XBoard_”)
    {
    ObjectSet(ObjectName(i),OBJPROP_BACK,1);
    }
    }
    }

    y=yo[0];

    for(a=1; a<11; a++) CreateText(“XBoard_Line1″+”_”+a,a*16+x-3,y+lo[0],”_”,20,”Verdana”,Text_Label_Color);

    if(Show_Symbol_and_Timeframe)
    {
    CreateText(“XBoard_Tf”,xp[0],y,timeframe,16,”Verdana”,Text_Color);
    CreateText(“XBoard_Symbol”,xp[1],y,Symbol(),16,”Verdana”,Text_Color);
    y+=yo[2];

    CreateText(“XBoard_Tf_label”,xp[0],y,”TF”,6,”Verdana”,Text_Label_Color);
    CreateText(“XBoard_Symbol_label”,xp[1],y,”SYMBOL”,6,”Verdana”,Text_Label_Color);
    y+=yo[1];
    }

    if(Show_Price_and_Spread)
    {

    new_price=Bid;

    if(old_price<new_price) { CreateText(“XBoard_Price”,xp[1],y,DoubleToStr(new_price,Digits),16,”Verdana”,Up_Color); } else if(old_price>new_price) {
    CreateText(“XBoard_Price”,xp[1],y,DoubleToStr(new_price,Digits),16,”Verdana”,Down_Color);
    } else {
    CreateText(“XBoard_Price”,xp[1],y,DoubleToStr(new_price,Digits),16,”Verdana”,Middle_Color);
    }

    old_price=new_price;

    new_spread=(Ask-Bid)*po;

    if(old_spread<new_spread) { CreateText(“XBoard_Spread”,xp[0],y,DoubleToStr(new_spread,di),16,”Verdana”,Up_Color); } else if(old_spread>new_spread) {
    CreateText(“XBoard_Spread”,xp[0],y,DoubleToStr(new_spread,di),16,”Verdana”,Down_Color);
    } else {
    CreateText(“XBoard_Spread”,xp[0],y,DoubleToStr(new_spread,di),16,”Verdana”,Middle_Color);
    }

    old_spread=new_spread;

    y+=yo[2];
    CreateText(“XBoard_Spread_label”,xp[0],y,”SPREAD”,6,”Verdana”,Text_Label_Color);
    CreateText(“XBoard_Price_label”,xp[1],y,”BID PRICE”,6,”Verdana”,Text_Label_Color);
    y+=yo[1];
    }

    if(Show_Time_and_Tick)
    {

    CreateText(“XBoard_Tick”,xp[0],y,tick,18,”Wingdings”,Text_Color);

    datetime closetime=Time[0]+(Time[0]-Time[1])-TimeCurrent();
    string TimeRemain = TimeToStr(closetime,TIME_SECONDS);
    if(TimeRemain==”invalid time” || StringFind(TimeRemain,”-“,0)>=0 || StringLen(TimeRemain)==0 || TimeRemain==” “)
    {
    TimeRemain= “Waiting…”;
    }

    CreateText(“XBoard_Time”,xp[1],y,TimeRemain,16,”Verdana”,Text_Color);

    if(tick==”n”)
    {
    tick= “o”;
    } else {
    tick=”n”;
    }

    y+=yo[2];
    CreateText(“XBoard_Tick_label”,xp[0],y,”TICK”,6,”Verdana”,Text_Label_Color);
    CreateText(“XBoard_Time_label”,xp[1],y,”TIME REMAIN”,6,”Verdana”,Text_Label_Color);
    y+=yo[1];
    }

    if(Show_Symbol_and_Timeframe || Show_Price_and_Spread || Show_Time_and_Tick)
    {
    for(a=1; a<11; a++) CreateText(“XBoard_Line2″+”_”+a,a*16+x-3,y+lo[1],”_”,20,”Verdana”,Text_Label_Color);
    y+=yo[3];
    } else {
    y+=yo[4];
    }

    if(Show_Fractal_Trend)
    {

    CreateText(“XBoard_Fractal_label”,x+57,y,”FRACTAL TREND”,6,”Verdana”,Text_Label_Color);
    y+=yo[5];

    for(i=0; i<7; i++)
    {

    CreateText(“XBoard_Segment_”+i,x+16+ofs_sema*i,y,CharToStr(108),20,”Wingdings”,Gray);
    CreateText(“XBoard_Segment_Label_”+i,x+16+tf_lab_ofset[i]+ofs_sema*i,y+yo[7],tf_label[i],6,”Verdana”,Text_Label_Color);

    for(c=3; c<200; c++) { if(iHigh(Symbol(),tf[i],c) >= iHigh(Symbol(),tf[i],c+1) &&
    iHigh(Symbol(),tf[i],c) >= iHigh(Symbol(),tf[i],c+2) &&
    iHigh(Symbol(),tf[i],c) >= iHigh(Symbol(),tf[i],c-1) &&
    iHigh(Symbol(),tf[i],c) >= iHigh(Symbol(),tf[i],c-2))
    break;
    }
    uplevel=iHigh(Symbol(),tf[i],c);

    for(c=3; c<200; c++)
    {
    if(iLow(Symbol(),tf[i],c) <= iLow(Symbol(),tf[i],c+1) &&
    iLow(Symbol(),tf[i],c) <= iLow(Symbol(),tf[i],c+2) &&
    iLow(Symbol(),tf[i],c) <= iLow(Symbol(),tf[i],c-1) &&
    iLow(Symbol(),tf[i],c) <= iLow(Symbol(),tf[i],c-2))
    break;
    }
    dolevel=iLow(Symbol(),tf[i],c);

    if(Bid<dolevel) ObjectSet(“XBoard_Segment_”+i,OBJPROP_COLOR,Down_Color); if(Bid>=dolevel && Bid<=uplevel) ObjectSet(“XBoard_Segment_”+i,OBJPROP_COLOR,Middle_Color); if(Bid>uplevel) ObjectSet(“XBoard_Segment_”+i,OBJPROP_COLOR,Up_Color);
    }

    for(a=1; a<11; a++) CreateText(“XBoard_Line3″+”_”+a,a*16+x-3,y+lo[2],”_”,20,”Verdana”,Text_Label_Color);
    y+=yo[8];
    }

    if(Show_Average_Hi_Lo)
    {
    for(i=1; i<=Days_For_ATR; i++)
    {
    avg+=iHigh(Symbol(),1440,i)-iLow(Symbol(),1440,i);
    }
    double PrevHiLo=(avg/Days_For_ATR)*po;
    CreateText(“XBoard_ATR”,xp[3],y,DoubleToStr(PrevHiLo,di),info_fontsize,”Verdana”,Text_Color);
    CreateText(“XBoard_ATR_label”,xp[2],y,Days_For_ATR+” Days ATR:”,info_fontsize,”Verdana”,Text_Color);
    y+=yo[9];
    }

    if(Show_Today_Hi_Lo)
    {
    double TodayHiLo=(iHigh(Symbol(),1440,0)-iLow(Symbol(),1440,0))*po;
    CreateText(“XBoard_TodayHiLo”,xp[3],y,DoubleToStr(TodayHiLo,di),info_fontsize,”Verdana”,Text_Color);
    CreateText(“XBoard_TodayHiLo_label”,xp[2],y,”Today Hi-Lo:”,info_fontsize,”Verdana”,Text_Color);
    y+=yo[9];
    }

    if(Show_Hi_Lo_to_Spread)
    {
    double HiLoToSpread=PrevHiLo/NormalizeDouble((Ask-Bid)*po,di);
    CreateText(“XBoard_ATRToSpread”,xp[3],y,DoubleToStr(HiLoToSpread,2)+”X”,info_fontsize,”Verdana”,Text_Color);
    CreateText(“XBoard_ATRToSpread_label”,xp[2],y,”ATR/Spread Ratio:”,info_fontsize,”Verdana”,Text_Color);
    y+=yo[9];
    }

    if(Show_Current_Bar_Hi_Lo)
    {
    double BarHiLo=(High[0]-Low[0])*po;
    CreateText(“XBoard_CurrentBarHiLo”,xp[3],y,DoubleToStr(BarHiLo,di),info_fontsize,”Verdana”,Text_Color);
    CreateText(“XBoard_CurrentBarHiLo_label”,xp[2],y,”Current Bar Hi-Lo:”,info_fontsize,”Verdana”,Text_Color);
    y+=yo[9];
    }

    if(Show_Previous_Bar_Hi_Lo)
    {
    double PrevBarHiLo=(High[1]-Low[1])*po;
    CreateText(“XBoard_PrevBarHiLo”,xp[3],y,DoubleToStr(PrevBarHiLo,di),info_fontsize,”Verdana”,Text_Color);
    CreateText(“XBoard_PrevBarHiLo_label”,xp[2],y,”Prev Bar Hi-Lo:”,info_fontsize,”Verdana”,Text_Color);
    y+=yo[9];
    }

    if(Show_Tickvalue)
    {
    CreateText(“XBoard_Tickvalue”,xp[3],y,DoubleToStr(MarketInfo(Symbol(),MODE_TICKVALUE)*ti,3),info_fontsize,”Verdana”,Text_Color);
    CreateText(“XBoard_Tickvalue_label”,xp[2],y,”Tickvalue:”,info_fontsize,”Verdana”,Text_Color);
    y+=yo[9];
    }

    if(Show_Stoplevel)
    {
    CreateText(“XBoard_Stoplevel”,xp[3],y,DoubleToStr(MarketInfo(Symbol(),MODE_STOPLEVEL),3),info_fontsize,”Verdana”,Text_Color);
    CreateText(“XBoard_Stoplevel_label”,xp[2],y,”Stoplevel:”,info_fontsize,”Verdana”,Text_Color);
    y+=yo[9];
    }

    if(Show_Swap)
    {
    CreateText(“XBoard_SwapLong”,xp[3],y,DoubleToStr(MarketInfo(Symbol(),MODE_SWAPLONG),Digits),info_fontsize,”Verdana”,Text_Color);
    CreateText(“XBoard_SwapLong_label”,xp[2],y,”Swap Long:”,info_fontsize,”Verdana”,Text_Color);
    y+=yo[9];

    CreateText(“XBoard_SwapShort”,xp[3],y,DoubleToStr(MarketInfo(Symbol(),MODE_SWAPSHORT),Digits),info_fontsize,”Verdana”,Text_Color);
    CreateText(“XBoard_SwapShort_label”,xp[2],y,”Swap Short:”,info_fontsize,”Verdana”,Text_Color);
    }

    return(0);
    }
    //+——————————————————————+
    //| |
    //+——————————————————————+
    void CreateText(string label,int posx,int posy,string text,int fontsize,string font,color fontcolor)
    {
    ObjectDelete(label);
    ObjectCreate(label,OBJ_LABEL,0,0,0);
    ObjectSet(label,OBJPROP_CORNER,Corner);
    ObjectSet(label,OBJPROP_XDISTANCE,posx);
    ObjectSet(label,OBJPROP_YDISTANCE,posy);
    ObjectSet(label,OBJPROP_BACK,false);
    ObjectSetText(label,text,fontsize,font,fontcolor);
    }
    //+——————————————————————+
    //| |
    //+——————————————————————+
    void CreateBox(string name,int xpos,int ypos,int xsize,int ysize)
    {
    for(int a=0; a<xsize; a++)
    {
    for(int b=0; b<ysize; b++)
    {
    CreateText(name+”_”+a+”_”+b,a*13+xpos,b*14+ypos,CharToStr(110),18,”Wingdings”,Background_Color);
    }
    }
    }
    //+——————————————————————+

    WhatsApp-Image-2020-09-11-at-08.51.34.jpeg WhatsApp-Image-2020-09-11-at-08.51.34.jpeg
    #143909 quote
    settival
    Participant
    Senior

    vorrei chiedervi un aiuto per la conversione di questo indicatore mt4 in codice prorealtime , in particolare la parte delle informazioni del frattale sui diversi timeframe

    ringrazio anticipatamente

    valentino

    #143913 quote
    Nicolas
    Keymaster
    Legend

    Alcune limitazioni per la conversione di questo codice:

    • compatibile solo con PRT v11
    • non può essere ancorato nel grafico dei prezzi
    • deve essere aggiunto in una finestra separata come un oscillatore (per evitare problemi di zoom avanti e indietro non ancorati)
    • non è possibile recuperare il valore dello spread
    #143916 quote
    settival
    Participant
    Senior

    grazie Nicolas. e’ invece possibile convertire solo la parte dei frattali per i diversi timeframe?

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

conversione dell’indicatore infoboard dal software mt4 grazie anticipatamente


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
settival @settival Participant
Summary

This topic contains 3 replies,
has 2 voices, and was last updated by settival
6 years ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 09/11/2020
Status: Active
Attachments: 1 files
Logo Logo
Loading...