All_Info_1.5

Author: Copyright © 2025, Drknn
Price Data Components
Series array that contains the highest prices of each barSeries array that contains the lowest prices of each bar
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
All_Info_1.5
//+------------------------------------------------------------------+
//|                                                 All_Info_1.5.mq4 |
//|                                          Copyright © 2025, Drknn |
//|                                                    drknn@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2025, Drknn"
#property link      "drknn@mail.ru"
#property show_inputs
#property strict
extern int HowManyDays=21;// How Many Days
// количество дней для среднесуточного среднего движения валютной пары

/*
	ВНИМАНИЕ! Перед использованием скрипта нужно обновить график D1

	Добавить в скрипт:
	 - Рассчёт стоимости пункта при минимальном лоте
*/

//+------------------------------------------------------------------+
//|          Старт работы скрипта                                    |
//+------------------------------------------------------------------+
int start(){
  string    SMB=Symbol();
  string    Priznak;// Признак плавающего спреда
	if(SymbolInfoInteger(SMB,SYMBOL_SPREAD_FLOAT)){
		Priznak=Text("  (Плавающий)","  (Float)");
	}
	else{
		Priznak=Text("  (Фиксированный)","  (Fixed)");
	}
	double Laverage =  MarketInfo(SMB,MODE_TICKVALUE)*Bid / MarketInfo(SMB,MODE_MARGINREQUIRED) / MarketInfo(SMB,MODE_POINT);
	string NameScript="============ All_Info_1.5 ("+SMB+") ============";
	
  int Zalog=(int)MarketInfo(SMB,MODE_MARGINCALCMODE);//Способ расчета залоговых средств. 0 - Forex; 1 - CFD; 2 - Futures; 3 - CFD на индексы
  int PoSkolkoPunktov=0;
  string Type;
  if(Zalog==0){
    Type="Forex";
  }
  if(Zalog==1){
    Type="CFD";
  }
  if(Zalog==2){
    Type="Futures";//фьючерсы
  }
  if(Zalog==3){
    Type="CFD on Index";
  }
	double FreeMargin=MarketInfo(SMB,MODE_MARGINREQUIRED);
  PoSkolkoPunktov=MarketInfo(SMB,MODE_TICKSIZE)/Point;
	Alert(Text("Уровень заморозки отложенных ордеров = ","Freezing distance for pending orders = "),MarketInfo(SMB,MODE_FREEZELEVEL)," (pt)");
	Alert(Text("Время окончания торгов = ","Trade End Time = "),TimeToString(SymbolInfoInteger(SMB,SYMBOL_EXPIRATION_TIME),TIME_DATE|TIME_MINUTES));
	Alert(Text("Время начала торгов = ","Trade Start Time = "),TimeToString(SymbolInfoInteger(SMB,SYMBOL_START_TIME),TIME_DATE|TIME_MINUTES));
	Alert(Text("Миниальная цена сегодня = ","Today Min Price = "),MarketInfo(SMB,MODE_LOW)); 
  Alert(Text("Максимальная цена сегодня = ","Today Max Price = "),MarketInfo(SMB,MODE_HIGH));
  Alert(Text("Своп для Селл-ордеров = ","Swap For Sell = "),NormalizeDouble(MarketInfo(SMB,MODE_SWAPSHORT),2)," ($)");
  Alert(Text("Своп для Бай-ордеров = ","Swap for Buy = "),NormalizeDouble(MarketInfo(SMB,MODE_SWAPLONG),2)," ($)");
	Alert("TickSize = ",PoSkolkoPunktov," pt");
	Alert("Point = ",DoubleToString(Point(),5),"    Digits = ",(int)MarketInfo(SMB,MODE_DIGITS));
	Alert(Text("Спред = ","Spraed = "),(int)MarketInfo(SMB,MODE_SPREAD),Priznak);
	Alert("Min Level = ",(int)MarketInfo(SMB,MODE_STOPLEVEL)," pt");
  Alert("Lot Step = ",MarketInfo(SMB,MODE_LOTSTEP));
  Alert("Max Lot = ",MarketInfo(SMB,MODE_MAXLOT));
  Alert("Min Lot = ",MarketInfo(SMB,MODE_MINLOT));
	Alert(Text("Залог за 1 лот = ","Zalog for 1 Lot = "),NormalizeDouble(MarketInfo(SMB,MODE_MARGININIT),2)," ($)");
	Alert(Text("Контракт в базовой валюте = ","Contract in base currency = "),MarketInfo(SMB,MODE_LOTSIZE));
  Alert(Text("Размер залоговых средств для поддержки открытых ордеров в расчете на 1 лот = ","Amount of collateral to support open orders per 1 lot = "),NormalizeDouble(MarketInfo(SMB,MODE_MARGINMAINTENANCE),2)," ($)");
	Alert(Text("Свободная маржа для открытия 1 лота = ","Free Margin for open 1 Lot = "),NormalizeDouble(FreeMargin,2)," ($)");
	Alert(Text("Текущее кредитное плечо 1 : ","Leverage at this point in time 1 : "),NormalizeDouble(Laverage,0));
	Alert(Text("В среднем валюта ходит по ","On average, the currency moves at "),Srednestatistich(HowManyDays),Text(" пунктов в день"," pt. for 1 day"));
	Alert(Text("Тип инструмента - ","Tool Type - "),Type);
	Alert(NameScript);
  return(0);
}
//+------------------------------------------------------------------+
//|          Пользовательские подпрограммы                           |
//+------------------------------------------------------------------+

// ================ Srednestatistich(int PeriodSMB) ================================================
// функция возвращает число пунктов, которое делает валюта в среднем в день
//-------------
// входные параметры:
// int PeriodSMB - число дней, на которых вычисляется, сколько валюта проходит пунктов в день
int Srednestatistich(int PeriodSMB){
	int PunktovSegodnya=0,Srednee=0;
	for(int i=1; i<=PeriodSMB; i++){
		PunktovSegodnya=(iHigh(Symbol(),PERIOD_D1,i)-iLow(Symbol(),PERIOD_D1,i))/Point;
		if(i==1){
			Srednee=PunktovSegodnya;
		}
		else{
			Srednee=Srednee+PunktovSegodnya;
		}
	}
	Srednee=Srednee/PeriodSMB;
	NormalizeDouble(Srednee,0);
	return(Srednee);
}
// =================== Text ========================================================================
// Функция возвращает текст на выбраном языке терминала.
// Если терминал русскоязычный, то возвращается строка на русском. В противном случае на английском.
// -------------------------------------------------------------------------------------------------
string Text(string Russ,string Engl){
	if(TerminalInfoString(TERMINAL_LANGUAGE)=="Russian"){
		return(Russ);
	}
  else return(Engl);
}
// ========================== Leverage() ==========================================================
double Leverage(int PoSkPunkt){
	double Rez=0;
	Rez=PoSkPunkt*Bid/MarketInfo(Symbol(),MODE_MARGINREQUIRED)/Point();
	return(Rez);
}

//	Формула расчета текущего кредитного плеча:
//Laverage =  MarketInfo(SMB,MODE_TICKVALUE)*Bid / MarketInfo(SMB,MODE_MARGINREQUIRED) / MarketInfo(SMB,MODE_POINT);

Comments