bluemarket_info.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «bluemarket_info.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.