← К каталогу
Исходный код · ID 2441

bluemarket_info.mq4

Похожие материалы по тегам

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор bluemarket_info представляет собой информационную панель для MetaTrader 4, отображающую на графике различные торговые данные в виде текстовых меток. Показывается текущая цена (Bid), спред, дневные максимум и минимум (PERIOD_D1), свопы Long и Short, таймер до закрытия свечи, а также расстояние цены от настраиваемой скользящей средней (LWMA).

Для каждой открытой позиции на текущем символе индикатор рассчитывает и отображает прибыль/убыток в долларах и в пунктах, цвет меток меняется в зависимости от направления движения. Внутренняя система множителя корректирует расчёт пунктов в зависимости от количества знаков после запятой у счёта, с дополнительной логикой для инструментов XAUUSD и XAGUSD.

Визуальная настройка включает цвета для различных элементов (цена, спред, прибыль, символ) и позиционные смещения по горизонтали и вертикали. Цвет цены индикатора динамически меняется при росте или падении Bid. Метки создаются и обновляются на каждом пересчёте бара, при изменении количества ордеров все объекты удаляются и пересоздаются заново.

Настройки программы

НастройкаОписание
MA_Timeframe Таймфрейм MA — Таймфрейм, на котором рассчитывается скользящая средняя для отображения расстояния от цены.
MA_Period Период MA — Период расчёта линейной взвешенной скользящей средней (LWMA), используемой для определения расстояния цены от MA.
up_downShift Смещение по вертикали — Вертикальное смещение (в пикселях) элементов информационной панели от правого верхнего угла графика.
sideAdjustment Смещение по горизонтали — Горизонтальное смещение (в пикселях) всех элементов информационной панели от правого верхнего угла графика.
symbolColor Цвет символа — Цвет отображения имени торгового символа и текущего таймфрейма на графике.
commentColor Цвет подписей — Цвет текстовых подписей (меток-описаний) информационной панели.
spreadColor Цвет спреда — Цвет значений спреда и связанных с ним меток на информационной панели.
colorPriceUp Цвет роста цены — Цвет, применяемый к меткам и значениям, когда цена Bid растёт по сравнению с предыдущим значением.
colorPriceDown Цвет снижения цены — Цвет, применяемый к меткам и значениям, когда цена Bid снижается по сравнению с предыдущим значением.
ProfitLossColor Цвет прибыли/убытка — Цвет отображения значений текущей прибыли и убытка в долларовом выражении.
Получить полный код

Поиск по коду файла

#property version   "V1.0"

#property strict
#property indicator_chart_window
sinput ENUM_TIMEFRAMES MA_Timeframe=PERIOD_CURRENT;
sinput int MA_Period=34;
sinput int up_downShift=0;
sinput int sideAdjustment= 0;
sinput color symbolColor = clrAqua;
sinput color commentColor= clrWhite;
sinput color spreadColor = clrDeepSkyBlue;
sinput color colorPriceUp= clrLime;
sinput color colorPriceDown=clrOrange;
sinput color ProfitLossColor=clrGold;
bool showPairSymbol=true;
bool showMagnifiedPrice=true;
bool showOnRightTop=true;
bool showMoreInfo=true;
bool showPipProfit=true;
color tradeValueColor=clrGold;
color profitColor=clrGold;
double oldPrice=0;
int ordersTotal= 0;
int multiplier = 10;

int OnInit()
  {
      // код доступен только после оплаты
   }

void OnDeinit(const int reason)
  {
   ObjectsDeleteAll(0,OBJ_LABEL);

  }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
      // код доступен только после оплаты
   }
   color priceColor;
   double tradeValue=0;
   double profit=0;
   double totalprofit=0;
   int i = 0;
   int j = 0;
   int total=0;
   if(Bid>oldPrice) priceColor=colorPriceUp;
   else if(Bid<oldPrice) priceColor=colorPriceDown;
   else priceColor=Gold;
   oldPrice=Bid;
   string actualPrice=DoubleToStr(Bid,Digits);
   double spreadActual=(Ask-Bid)/Point/multiplier;
   double dayHigh= iHigh(NULL,PERIOD_D1,0);
   double dayLow = iLow(NULL,PERIOD_D1,0);
   string spreadValue=DoubleToStr(spreadActual,1);
   string dayHighValue= DoubleToStr(dayHigh,Digits);
   string dayLowValue = DoubleToStr(dayLow, Digits);
   int candeleRestTime = int(Time[0] + 60 * Period() - TimeCurrent());
   int candleRestTimeM= candeleRestTime%60;
   candeleRestTime = (candeleRestTime - candeleRestTime % 60) / 60;
   string longSwap = DoubleToStr( MarketInfo(Symbol(),MODE_SWAPLONG), 2 );
   string shortSwap= DoubleToStr(MarketInfo(Symbol(),MODE_SWAPSHORT),2);
   double ma240=iMA(NULL,MA_Timeframe,MA_Period,0,MODE_LWMA,PRICE_OPEN,0);
   double distance=(Bid-ma240)/Point/multiplier;
   string ma240Distance=DoubleToStr(distance,1);
   string Sym=Symbol()+" "+PeriodToStr(Period());
   if(ordersTotal!=OrdersTotal()) ObjectsDeleteAll(0,OBJ_LABEL);

   if(showPairSymbol==true) 
     {
      ObjectCreate("pairsymbolLabel",OBJ_LABEL,0,0,0);
      ObjectSetText("pairsymbolLabel","BlueStarck V1.0",17,"Nunito SemiBold",clrDeepSkyBlue);
      ObjectSet("pairsymbolLabel",OBJPROP_CORNER,showOnRightTop);
      ObjectSet("pairsymbolLabel",OBJPROP_XDISTANCE,sideAdjustment+14);
      ObjectSet("pairsymbolLabel",OBJPROP_YDISTANCE,up_downShift+1);
      ObjectCreate("pairsymbol",OBJ_LABEL,0,0,0);
      ObjectSetText("pairsymbol",""+Sym+"",12,"Nunito",symbolColor);
      ObjectSet("pairsymbol",OBJPROP_CORNER,showOnRightTop);
      ObjectSet("pairsymbol",OBJPROP_XDISTANCE,sideAdjustment+14);
      ObjectSet("pairsymbol",OBJPROP_YDISTANCE,up_downShift+34);
     }

   if(showMagnifiedPrice==true) 
     {
      ObjectCreate("priceLabel",OBJ_LABEL,0,0,0);
      ObjectSetText("priceLabel","Current Price :",11,"Nunito",clrWhite);
      ObjectSet("priceLabel",OBJPROP_CORNER,showOnRightTop);
      ObjectSet("priceLabel",OBJPROP_XDISTANCE,sideAdjustment+96);
      ObjectSet("priceLabel",OBJPROP_YDISTANCE,up_downShift+58);
      ObjectCreate("actualPrice",OBJ_LABEL,0,0,0);
      ObjectSetText("actualPrice",""+actualPrice+"",11,"Nunito",clrPaleTurquoise);
      ObjectSet("actualPrice",OBJPROP_CORNER,showOnRightTop);
      ObjectSet("actualPrice",OBJPROP_XDISTANCE,sideAdjustment+14);
      ObjectSet("actualPrice",OBJPROP_YDISTANCE,up_downShift+58);
     }

   if(showMoreInfo==true) 
     {
      if(showMagnifiedPrice==true) 
        {

         ObjectCreate("dayHighLabel",OBJ_LABEL,0,0,0);
         ObjectSetText("dayHighLabel","Day High :",10,"Nunito",commentColor);
         ObjectSet("dayHighLabel",OBJPROP_CORNER,showOnRightTop);
         ObjectSet("dayHighLabel",OBJPROP_XDISTANCE,sideAdjustment+96);
         ObjectSet("dayHighLabel",OBJPROP_YDISTANCE,up_downShift+80);
         ObjectCreate("dayHighValue",OBJ_LABEL,0,0,0);
         ObjectSetText("dayHighValue",""+dayHighValue+"",10,"Nunito",clrDeepSkyBlue);
         ObjectSet("dayHighValue",OBJPROP_CORNER,showOnRightTop);
         ObjectSet("dayHighValue",OBJPROP_XDISTANCE,sideAdjustment+14);
         ObjectSet("dayHighValue",OBJPROP_YDISTANCE,up_downShift+80);

         ObjectCreate("dayLowLabel",OBJ_LABEL,0,0,0);
         ObjectSetText("dayLowLabel","Day Low :",10,"Nunito",commentColor);
         ObjectSet("dayLowLabel",OBJPROP_CORNER,showOnRightTop);
         ObjectSet("dayLowLabel",OBJPROP_XDISTANCE,sideAdjustment+96);
         ObjectSet("dayLowLabel",OBJPROP_YDISTANCE,up_downShift+98);
         ObjectCreate("dayLowValue",OBJ_LABEL,0,0,0);
         ObjectSetText("dayLowValue",""+dayLowValue+"",10,"Nunito",clrMediumSlateBlue);
         ObjectSet("dayLowValue",OBJPROP_CORNER,showOnRightTop);
         ObjectSet("dayLowValue",OBJPROP_XDISTANCE,sideAdjustment+14);
         ObjectSet("dayLowValue",OBJPROP_YDISTANCE,up_downShift+98);

         ObjectCreate("spreadLabel",OBJ_LABEL,0,0,0);
         ObjectSetText("spreadLabel","Spread :",10,"Nunito",commentColor);
         ObjectSet("spreadLabel",OBJPROP_CORNER,showOnRightTop);
         ObjectSet("spreadLabel",OBJPROP_XDISTANCE,sideAdjustment+96);
         ObjectSet("spreadLabel",OBJPROP_YDISTANCE,up_downShift+118);
         ObjectCreate("spreadValue",OBJ_LABEL,0,0,0);
         ObjectSetText("spreadValue",""+spreadValue+"",10,"Nunito",clrCornflowerBlue);
         ObjectSet("spreadValue",OBJPROP_CORNER,showOnRightTop);
         ObjectSet("spreadValue",OBJPROP_XDISTANCE,sideAdjustment+14);
         ObjectSet("spreadValue",OBJPROP_YDISTANCE,up_downShift+118);

         if(showPipProfit==true) 
           {
            total=OrdersTotal();
            ordersTotal=total;
            j=0;
            double lots;;
            for(i=0; i<total; i++) 
              {
               bool orderSelect=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
               if(Symbol()==OrderSymbol()) 
                 {
                  if(OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT) continue;
                  j++;
                  if(OrderType()==OP_BUY) 
                    {
                     lots=OrderLots();
                     profit+=OrderProfit()+OrderSwap()+OrderCommission();
                     tradeValue=(Bid-OrderOpenPrice())/Point/multiplier;
                     if(tradeValue>0) tradeValueColor=LightSeaGreen;
                     else tradeValueColor=MediumOrchid;
                     if(profit>0) profitColor=LightSeaGreen;
                     else profitColor=MediumOrchid;

                     ObjectCreate("profitLabel",OBJ_LABEL,0,0,0);
                     ObjectSetText("profitLabel","Current Profit/Loss :                  $",10,"Nunito",commentColor);
                     ObjectSet("profitLabel",OBJPROP_CORNER,showOnRightTop);
                     ObjectSet("profitLabel",OBJPROP_XDISTANCE,sideAdjustment+14);
                     ObjectSet("profitLabel",OBJPROP_YDISTANCE,up_downShift+138);

                     ObjectCreate("profitValue",OBJ_LABEL,0,0,0);
                     ObjectSetText("profitValue", DoubleToStr(profit,2),10,"Nunito",profitColor);
                     ObjectSet("profitValue",OBJPROP_CORNER,showOnRightTop);
                     ObjectSet("profitValue",OBJPROP_XDISTANCE,sideAdjustment+27);
                     ObjectSet("profitValue",OBJPROP_YDISTANCE,up_downShift+138);

                     ObjectCreate("openTradeLabel"+IntegerToString(i),OBJ_LABEL,0,0,0);
                     ObjectSetText("openTradeLabel"+IntegerToString(i),"Trade"+IntegerToString(j)+" {BUY}, Lots {"+DoubleToStr(lots,2)+"} :             pips",10,"Nunito",commentColor);
                     ObjectSet("openTradeLabel"+IntegerToString(i),OBJPROP_CORNER,showOnRightTop);
                     ObjectSet("openTradeLabel"+IntegerToString(i),OBJPROP_XDISTANCE,sideAdjustment+13);
                     ObjectSet("openTradeLabel"+IntegerToString(i),OBJPROP_YDISTANCE,15*j+130+up_downShift+15);
                     ObjectCreate("pipProfitValue"+IntegerToString(i),OBJ_LABEL,0,0,0);
                     ObjectSetText("pipProfitValue"+IntegerToString(i),DoubleToStr(tradeValue,1),10,"Nunito",tradeValueColor);
                     ObjectSet("pipProfitValue"+IntegerToString(i),OBJPROP_CORNER,showOnRightTop);
                     ObjectSet("pipProfitValue"+IntegerToString(i),OBJPROP_XDISTANCE,sideAdjustment+50);
                     ObjectSet("pipProfitValue"+IntegerToString(i),OBJPROP_YDISTANCE,15*j+130+up_downShift+15);

                     continue;
                    }
                  if(OrderType()==OP_SELL) 
                    {
                     lots=OrderLots();
                     profit+=OrderProfit()+OrderSwap()+OrderCommission();
                     tradeValue=(OrderOpenPrice()-Ask)/Point/multiplier;
                     if(tradeValue>0) tradeValueColor=LightSeaGreen;
                     else tradeValueColor=MediumOrchid;
                     if(profit>0) profitColor=LightSeaGreen;
                     else profitColor=MediumOrchid;

                     ObjectCreate("profitLabel",OBJ_LABEL,0,0,0);
                     ObjectSetText("profitLabel","Current Profit/Loss :              $",10,"Nunito",commentCol

Показано первые 50% кода (символов: 16472)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

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

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 647,20₽ ≈ $20.13