Monster Arrows V2
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «monster arrows mt5 source code @fundedmillionairess.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Monster Arrows V2 — индикатор для MetaTrader 5, отображающий стрелки покупок и продаж на графике ценовых свечей. Он объединяет несколько аналитических компонентов: фильтр по старшему таймфрейму на основе EMA и системы SuperTrend, обнаружение ликвидностных сэпов и зон справедливой стоимости (FVG), а также уровни Fibonacci и ZigZag-пивоты. Индикатор рисует линии входа, стоп-лосса и трёх уровней тейк-профита, привязанные к свече сигнала, и предоставляет информационную панель с текущим состоянием фильтров и последним сигналом.
Настройки программы
| Настройка | Описание |
|---|---|
| Enable Higher Timeframe Confluence Filter (EnableHTFFilter) | Фильтр старшего таймфрейма — Включает или выключает фильтрацию сигналов по направлению на более высоком таймфрейме. |
| Require BOTH HTF confirmations (Strict Mode) (RequireBothHTF) | Требовать оба подтверждения HTF — При включении оба фильтра старшего таймфрейма (EMA и SuperTrend) должны совпасть для формирования сигнала. |
| Bars to wait to confirm signal (Non-Repaint) (BarsToConfirm) | Баров для подтверждения сигнала — Количество баров ожидания перед подтверждением сигнала, предотвращающее перерисовку. |
| HTF EMA Period (HTF_EMAPeriod) | Период EMA старшего таймфрейма — Период скользящей средней EMA, используемой для определения направления на старшем таймфрейме. |
| SuperTrend RMA 1 Length (ST_RMA1Length) | Длина RMA 1 SuperTrend — Период первой RMA-линии в системе SuperTrend на старшем таймфрейме. |
| SuperTrend RMA 2 Length (ST_RMA2Length) | Длина RMA 2 SuperTrend — Период второй RMA-линии в системе SuperTrend на старшем таймфрейме. |
| SuperTrend ATR Period (ST_ATRPeriod) | Период ATR SuperTrend — Период ATR, используемый для расчёта полос SuperTrend на старшем таймфрейме. |
| SuperTrend ATR Multiplier (ST_ATRMult) | Множитель ATR SuperTrend — Множитель ATR для расширения или сужения полос SuperTrend. |
| Liquidity Sweep (Stop Hunt) (UseLiquiditySweep) | Обнаружение сэпов ликвидности — Включает распознавание ситуаций, когда цена пробивает уровень стоп-лоссов и возвращается. |
| Fair Value Gap (Displacement) (UseFairValueGap) | Обнаружение зон справедливой стоимости — Включает выявление разрывов цены (FVG) как потенциальных зон разворота. |
| Show SMC Lines & Boxes (ShowSMCLines) | Показывать линии и блоки SMC — Отображает линии сэпов и заливку зон FVG на графике. |
| FVG Box color for Buy (FVGBoxColorBuy) | Цвет блока FVG для покупки — Цвет заливки прямоугольника зоны справедливой стоимости при сигнале на покупку. |
| FVG Box color for Sell (FVGBoxColorSell) | Цвет блока FVG для продажи — Цвет заливки прямоугольника зоны справедливой стоимости при сигнале на продажу. |
| Hunt line color for Buy (HuntLineColorBuy) | Цвет линии сэпа для покупки — Цвет горизонтальной линии уровня сэпа при сигнале на покупку. |
| Hunt line color for Sell (HuntLineColorSell) | Цвет линии сэпа для продажи — Цвет горизонтальной линии уровня сэпа при сигнале на продажу. |
| ZigZag Depth (ZZDepth) | Глубина ZigZag — Минимальное количество баров между пивотами ZigZag для определения значимых уровней. |
| ZigZag Deviation (ZZDeviation) | Отклонение ZigZag — Минимальное отклонение цены для признания нового пивота ZigZag. |
| ZigZag Backstep (ZZBackstep) | Шаг назад ZigZag — Минимальное количество баров между соседними пивотами одного направления. |
| Fibonacci Retracement Level (FibLevel) | Уровень Фибоначчи — Уровень ретреймента Фибоначчи для определения зон поддержки и сопротивления. |
| Number of historical bars to analyze (HistBars) | Баров для анализа — Количество исторических баров, анализируемых индикатором для поиска сигналов. |
| Show Daily ATR Lines (ShowDailyATR) | Показывать дневные линии ATR — Отображает горизонтальные линии верхней и нижней границы дневного ATR. |
| ATR Period (ATRPeriod) | Период ATR — Период расчёта индикатора Average True Range. |
| Daily ATR High Color (ATRHighColor) | Цвет верхней дневной ATR линии — Цвет линии верхней границы дневного ATR. |
| Daily ATR Low Color (ATRLowColor) | Цвет нижней дневной ATR линии — Цвет линии нижней границы дневного ATR. |
| Daily ATR Line Style (ATRLineStyle) | Стиль дневной ATR линии — Стиль отрисовки линий дневного ATR (сплошной, пунктир и т.д.). |
| Show Weekly ATR Lines (ShowWeeklyATR) | Показывать недельные линии ATR — Отображает горизонтальные линии верхней и нижней границы недельного ATR. |
| Weekly ATR High Color (WkATRHighColor) | Цвет верхней недельной ATR линии — Цвет линии верхней границы недельного ATR. |
| Weekly ATR Low Color (WkATRLowColor) | Цвет нижней недельной ATR линии — Цвет линии нижней границы недельного ATR. |
| Weekly ATR Line Style (WkATRLineStyle) | Стиль недельной ATR линии — Стиль отрисовки линий недельного ATR. |
| Draw TP/SL Lines for signal (DrawTPLines) | Рисовать линии TP/SL — Включает отрисовку линий входа, стоп-лосса и трёх уровней тейк-профита от сигнальной свечи. |
| Entry Price Reference Candle (EntryCandle) | Свеча отсчёта входа — Выбирает свечу, по цене которой определяется точка входа: свеча сэпа, первая или вторая подтверждения. |
| Entry line color (EntryColor) | Цвет линии входа — Цвет горизонтальной линии цены входа. |
| Stop Loss line color (SLColor) | Цвет линии стоп-лосса — Цвет горизонтальной линии стоп-лосса. |
| TP1 line color (TP1Color) | Цвет линии TP1 — Цвет горизонтальной линии первого уровня тейк-профита. |
| TP2 line color (TP2Color) | Цвет линии TP2 — Цвет горизонтальной линии второго уровня тейк-профита. |
| TP3 line color (TP3Color) | Цвет линии TP3 — Цвет горизонтальной линии третьего уровня тейк-профита. |
| Line width (LevelWidth) | Толщина линий — Толщина линий уровней входа, стоп-лосса и тейк-профита. |
| Line style (LevelStyle) | Стиль линий уровней — Стиль отрисовки линий уровней (сплошной, пунктир и т.д.). |
| SL distance (ATR multiplier) (SL_ATR_Mult) | Множитель ATR для стоп-лосса — Множитель ATR для расчёта расстояния стоп-лосса от точки входа. |
| TP1 distance (ATR multiplier) (TP1_ATR_Mult) | Множитель ATR для TP1 — Множитель ATR для расчёта расстояния первого тейк-профита от точки входа. |
| TP2 distance (ATR multiplier) (TP2_ATR_Mult) | Множитель ATR для TP2 — Множитель ATR для расчёта расстояния второго тейк-профита от точки входа. |
| TP3 distance (ATR multiplier) (TP3_ATR_Mult) | Множитель ATR для TP3 — Множитель ATR для расчёта расстояния третьего тейк-профита от точки входа. |
| Show Info Panel (ShowPanel) | Показывать информационную панель — Включает или выключает отображение дашборда с текущим состоянием фильтров и последним сигналом. |
| Horizontal position (PanelX) | Позиция панели по горизонтали — Горизонтальное смещение информационной панели в пикселях от левого края графика. |
| Vertical position (PanelY) | Позиция панели по вертикали — Вертикальное смещение информационной панели в пикселях от верхнего края графика. |
| Title color (DashTitleColor) | Цвет заголовка панели — Цвет заголовка информационной панели. |
| Text color (DashTextColor) | Цвет текста панели — Цвет текстовых меток информационной панели. |
| Master Alert Switch (MasterAlert) | Главный переключатель оповещений — Включает или выключает систему оповещений индикатора. |
| Popup Alert (DoPopup) | Всплывающее оповещение — Отображает всплывающее уведомление при формировании сигнала. |
| Sound Alert (DoSound) | Звуковое оповещение — Воспроизводит звуковой файл при формировании сигнала. |
| Email Alert (DoEmail) | Email-оповещение — Отправляет email-сообщение при формировании сигнала. |
| Mobile Push Notification (DoPush) | Мобильное push-уведомление — Отправляет push-уведомление на мобильное устройство при формировании сигнала. |
| Sound file (AlertSound) | Файл звука оповещения — Имя звукового файла для воспроизведения при срабатывании оповещения. |
| Seconds between alerts (AlertCooldown) | Задержка между оповещениями — Минимальный интервал в секундах между последовательными оповещениями. |
| Arrow size (1-5) (ArrowSize) | Размер стрелок — Размер стрелок сигналов покупки и продажи на графике. |
| Buy arrow color (BuyArrowColor) | Цвет стрелки покупки — Цвет стрелки, обозначающей сигнал на покупку. |
| Sell arrow color (SellArrowColor) | Цвет стрелки продажи — Цвет стрелки, обозначающей сигнал на продажу. |
| Arrow distance from candle (points) (ArrowGap) | Отступ стрелки от свечи — Расстояние в пунктах между ценовой свечой и стрелкой сигнала. |
| Buy arrow symbol code (BuyArrowCode) | Код символа стрелки покупки — Код графического символа стрелки для сигнала покупки. |
| Sell arrow symbol code (SellArrowCode) | Код символа стрелки продажи — Код графического символа стрелки для сигнала продажи. |
| Bars to scan for missed signals (RecentBars) | Баров для поиска пропущенных сигналов — Количество недавних баров, которые пересматриваются при пересчёте для обнаружения пропущенных сигналов. |
Поиск по коду файла
#property version "2.0"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_label1 "Buy Signal"
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrLime
#property indicator_style1 STYLE_SOLID
#property indicator_width1 4
#property indicator_label2 "Sell Signal"
#property indicator_type2 DRAW_ARROW
#property indicator_color2 clrRed
#property indicator_style2 STYLE_SOLID
#property indicator_width2 4
input group "=== FILTERS & CONFIRMATION ==="
input bool EnableHTFFilter = true; // Enable Higher Timeframe Confluence Filter
input bool RequireBothHTF = true; // Require BOTH HTF confirmations (Strict Mode)
input int BarsToConfirm = 2; // Bars to wait to confirm signal (Non-Repaint)
input int HTF_EMAPeriod = 20; // HTF EMA Period
input int ST_RMA1Length = 14; // SuperTrend RMA 1 Length
input int ST_RMA2Length = 21; // SuperTrend RMA 2 Length
input int ST_ATRPeriod = 14; // SuperTrend ATR Period
input double ST_ATRMult = 1.0; // SuperTrend ATR Multiplier
input group "=== SMART MONEY CONCEPTS (SMC) ==="
input bool UseLiquiditySweep = true; // Liquidity Sweep (Stop Hunt)
input bool UseFairValueGap = true; // Fair Value Gap (Displacement)
input bool ShowSMCLines = true; // Show SMC Lines & Boxes
input color FVGBoxColorBuy = clrDarkGreen; // FVG Box color for Buy
input color FVGBoxColorSell = clrDarkRed; // FVG Box color for Sell
input color HuntLineColorBuy = clrAqua; // Hunt line color for Buy
input color HuntLineColorSell = clrMagenta; // Hunt line color for Sell
input group "=== ZIGZAG SETTINGS ==="
input int ZZDepth = 30; // ZigZag Depth
input int ZZDeviation = 5; // ZigZag Deviation
input int ZZBackstep = 3; // ZigZag Backstep
input double FibLevel = 0.618; // Fibonacci Retracement Level
input int HistBars = 1000; // Number of historical bars to analyze
input group "=== DAILY ATR TARGETS ==="
input bool ShowDailyATR = true; // Show Daily ATR Lines
input int ATRPeriod = 14; // ATR Period
input color ATRHighColor = clrAqua; // Daily ATR High Color
input color ATRLowColor = clrMagenta; // Daily ATR Low Color
input ENUM_LINE_STYLE ATRLineStyle = STYLE_DASH; // Daily ATR Line Style
input group "=== WEEKLY ATR TARGETS ==="
input bool ShowWeeklyATR = true; // Show Weekly ATR Lines
input color WkATRHighColor = clrDodgerBlue; // Weekly ATR High Color
input color WkATRLowColor = clrOrange; // Weekly ATR Low Color
input ENUM_LINE_STYLE WkATRLineStyle = STYLE_DASH; // Weekly ATR Line Style
enum ENUM_ENTRY_REF
{
CANDLE_A = 0, // Candle A — Sweep candle close
CANDLE_B = 1, // Candle B — 1st confirmation candle close
CANDLE_C = 2 // Candle C — 2nd confirmation candle close
};
input group "=== AUTO TP SETTINGS ==="
input bool DrawTPLines = true; // Draw TP/SL Lines for signal
input ENUM_ENTRY_REF EntryCandle = CANDLE_A; // Entry Price Reference Candle
input color EntryColor = clrYellow; // Entry line color
input color SLColor = clrCrimson; // Stop Loss line color
input color TP1Color = clrLime; // TP1 line color
input color TP2Color = clrOrange; // TP2 line color
input color TP3Color = clrRed; // TP3 line color
input int LevelWidth = 2; // Line width
input ENUM_LINE_STYLE LevelStyle = STYLE_DASH; // Line style
input double SL_ATR_Mult = 1.5; // SL distance (ATR multiplier)
input double TP1_ATR_Mult = 1.5; // TP1 distance (ATR multiplier)
input double TP2_ATR_Mult = 3.0; // TP2 distance (ATR multiplier)
input double TP3_ATR_Mult = 6.0; // TP3 distance (ATR multiplier)
input group "=== DASHBOARD & ALERTS ==="
input bool ShowPanel = true; // Show Info Panel
input int PanelX = 20; // Horizontal position
input int PanelY = 20; // Vertical position
input color DashTitleColor = clrGold; // Title color
input color DashTextColor = clrWhite; // Text color
input bool MasterAlert = false; // Master Alert Switch
input bool DoPopup = false; // Popup Alert
input bool DoSound = false; // Sound Alert
input bool DoEmail = false; // Email Alert
input bool DoPush = false; // Mobile Push Notification
input string AlertSound = "alert2.wav"; // Sound file
input int AlertCooldown = 60; // Seconds between alerts
input group "=== ARROW VISUALS ==="
input int ArrowSize = 4; // Arrow size (1-5)
input color BuyArrowColor = clrLime; // Buy arrow color
input color SellArrowColor = clrRed; // Sell arrow color
input int ArrowGap = 15; // Arrow distance from candle (points)
input int BuyArrowCode = 233; // Buy arrow symbol code
input int SellArrowCode = 234; // Sell arrow symbol code
input group "=== MISC SETTINGS ==="
input int RecentBars = 50; // Bars to scan for missed signals
double BuyBuf[];
double SellBuf[];
double TriggerBuf[]; // not a plot buffer, just internal tracking
int hATR = INVALID_HANDLE;
int hATRDaily = INVALID_HANDLE;
int hATRWeekly = INVALID_HANDLE; // Weekly ATR
int hHTF_EMA = INVALID_HANDLE;
int hHTF_ATR = INVALID_HANDLE;
double g_ST_rma1_hlc3v = 0, g_ST_rma1_vol = 0;
double g_ST_rma2_hlc3v = 0, g_ST_rma2_vol = 0;
bool g_ST_initialized = false;
double g_ST_trendDir = 1.0; // last known SuperTrend direction on HTF
datetime g_LastAlert = 0;
int OnInit()
{
// код доступен только после оплаты
}
ENUM_TIMEFRAMES GetHTF(ENUM_TIMEFRAMES tf)
{
switch(tf)
{
case PERIOD_M1: return PERIOD_M15;
case PERIOD_M5: return PERIOD_H1;
case PERIOD_M15: return PERIOD_H1;
case PERIOD_M30: return PERIOD_H4;
case PERIOD_H1: return PERIOD_H4;
case PERIOD_H4: return PERIOD_D1;
default: return PERIOD_W1;
}
}
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[])
{
// код доступен только после оплаты
}
if(rates_total < ZZDepth + BarsToConfirm + 10)
return 0;
if(ArraySize(TriggerBuf) < rates_total)
{
ArrayResize(TriggerBuf, rates_total);
ArrayInitialize(TriggerBuf, 0);
}
double atr[];
ArrayResize(atr, rates_total);
{
double tmp[];
ArraySetAsSeries(tmp, true);
int copied = CopyBuffer(hATR, 0, 0, rates_total, tmp);
if(copied <= 0) return prev_calculated;
for(int k = 0; k < rates_total; k++)
atr[k] = tmp[rates_total - 1 - k];
}
double dailyATR = 0;
{
double tmp[];
ArraySetAsSeries(tmp, true);
if(CopyBuffer(hATRDaily, 0, 0, 1, tmp) > 0)
dailyATR = tmp[0];
}
if(ShowDailyATR && dailyATR > 0)
{
double dayOpen = iOpen (_Symbol, PERIOD_D1, 0);
datetime dayTime = iTime (_Symbol, PERIOD_D1, 0);
SetLevelLine("MA_ATR_High", dayTime, dayOpen + dailyATR, ATRHighColor, ATRLineStyle, 1);
SetLevelLine("MA_ATR_Low", dayTime, dayOpen - dailyATR, ATRLowColor, ATRLineStyle, 1);
datetime tLabel = time[rates_total-1] + (datetime)(PeriodSeconds(_Period) * 3);
DrawLineLabel("MA_ATR_Lbl_High", tLabel, dayOpen + dailyATR, ATRHighColor, " D-ATR High");
DrawLineLabel("MA_ATR_Lbl_Low", tLabel, dayOpen - dailyATR, ATRLowColor, " D-ATR Low");
}
double weeklyATR = 0;
{
double tmp[];
ArraySetAsSeries(tmp, true);
if(CopyBuffer(hATRWeekly, 0, 0, 1, tmp) > 0)
weeklyATR = tmp[0];
}
if(ShowWeeklyATR && weeklyATR > 0)
{
double weekOpen = iOpen (_Symbol, PERIOD_W1, 0);
datetime weekTime = iTime (_Symbol, PERIOD_W1, 0);
SetLevelLine("MA_WATR_High", weekTime, weekOpen + weeklyATR, WkATRHighColor, WkATRLineStyle, 1);
SetLevelLine("MA_WATR_Low", weekTime, weekOpen - weeklyATR, WkATRLowColor, WkATRLineStyle, 1);
datetime tLabel = time[rates_total-1] + (datetime)(PeriodSeconds(_Period) * 3);
DrawLineLabel("MA_WATR_Lbl_High", tLabel, weekOpen + weeklyATR, WkATRHighColor, " W-ATR High");
DrawLineLabel("MA_WATR_Lbl_Low", tLabel, weekOpen - weeklyATR, WkATRLowColor, " W-ATR Low");
}
bool htfBull = false, htfBear = false;
bool ema20Bull = false, ema20Bear = false;
bool stBull = false, stBear = false;
if(EnableHTFFilter)
{
ENUM_TIMEFRAMES htfTF = GetHTF(_Period);
{
double emaBuf[];
ArraySetAsSeries(emaBuf, true);
double htfClose[];
ArraySetAsSeries(htfClose, true);
if(CopyBuffer(hHTF_EMA, 0, 0, 3, emaBuf) == 3 &&
CopyClose(_Symbol, htfTF, 0, 3, htfClose) == 3)
{
ema20Bull = (htfClose[0] > emaBuf[0] && emaBuf[0] > emaBuf[1]);
ema20Bear = (htfClose[0] < emaBuf[0] && emaBuf[0] < emaBuf[1]);
}
}
{
int htfBars = MathMax(ST_RMA1Length, ST_RMA2Length) + ST_ATRPeriod + 50;
double htfHigh[], htfLow[], htfClose[], htfATR[], htfVol[];
ArraySetAsSeries(htfHigh, true);
ArraySetAsSeries(htfLow, true);
ArraySetAsSeries(htfClose, true);
ArraySetAsSeries(htfATR, true);
int copied = CopyHigh (_Symbol, htfTF, 0, htfBars, htfHigh);
copied += CopyLow (_Symbol, htfTF, 0, htfBars, htfLow);
copied += CopyClose(_Symbol, htfTF, 0, htfBars, htfClose);
copied += CopyBuffer(hHTF_ATR, 0, 0, htfBars, htfATR);
if(copied == htfBars * 4)
{
int n = htfBars;
double rma1_hlc3v = 0, rma1_vol = 0;
double rma2_hlc3v = 0, rma2_vol = 0;
bool rmaInit = false;
double prevTrend = 1.0;
double lastFlipDir = g_ST_trendDir;
double finalRMA1 = 0, finalRMA2 = 0;
for(int k = n - 1; k >= 0; k--)
{
double vol = 1.0;
double hlc3 = (htfHigh[k] + htfLow[k] + htfClose[k]) / 3.0;
double hlc3v = hlc3 * vol;
if(!rmaInit)
{
rma1_hlc3v = hlc3v; rma1_vol = vol;
rma2_hlc3v = hlc3v; rma2_vol = vol;
rmaInit = true;
}
else
{
rma1_hlc3v = (rma1_hlc3v * (ST_RMA1Length - 1) + hlc3v) / ST_RMA1Length;
rma1_vol = (rma1_vol * (ST_RMA1Length - 1) + vol) / ST_RMA1Length;
rma2_hlc3v = (rma2_hlc3v * (ST_RMA2Length - 1) + hlc3v) / ST_RMA2Length;
rma2_vol = (rma2_vol * (ST_RMA2Length - 1) + vol) / ST_RMA2Length;
}
double rma1val = (rma1_vol != 0) ? rma1_hlc3v / rma1_vol : hlc3;
double rma2val = (rma2_vol != 0) ? rma2_hlc3v / rma2_vol : hlc3;
double basis = (rma1val + rma2val) / 2.0;
double atrVal = htfATR[k];
double upper = basis + ST_ATRMult * atrVal;
double lower = basis - ST_ATRMult * atrVal;
double trendDir;
if(htfClose[k] > upper) trendDir = 1.0;
else if(htfClose[k] < lower) trendDir = -1.0;
else trendDir = prevTrend;
if(k < n - 1)
{
bool bullFlip = (prevTrend == -1.0 && trendDir == 1.0);
bool bearFlip = (prevTrend == 1.0 && trendDir == -1.0);
if(bullFlip) lastFlipDir = 1.0;
if(bearFlip) lastFlipDir = -1.0;
}
prevTrend = trendDir;
if(k == 0) { finalRMA1 = rma1val; finalRMA2 = rma2val; }
}
g_ST_trendDir = lastFlipDir;
bool rma1AboveRMA2 = (finalRMA1 > finalRMA2);
bool rma1BelowRMA2 = (finalRMA1 < finalRMA2);
stBull = (lastFlipDir == 1.0 && rma1AboveRMA2);
stBear = (lastFlipDir == -1.0 && rma1BelowRMA2);
}
}
htfBull = (ema20Bull && stBull);
htfBear = (ema20Bear && stBear);
}
int startBar;
if(prev_calculated <= 0)
startBar = MathMax(ZZDepth + BarsToConfirm + 2, rates_total - HistBars);
else
startBar = MathMax(ZZDepth + BarsToConfirm + 2, prev_calculated - RecentBars - BarsToConfirm - 5);
for(int i = startBar; i <= rates_total - BarsToConfirm - 2; i++)
{
BuyBuf[i] = 0.0;
SellBuf[i] = 0.0;
if(i < ZZDepth + 2) continue;
double curATR = atr[i];
if(curATR <= 0) continue;
double pivotLow = 0, pivotHigh = 0;
int pivotLowBar = -1, pivotHighBar = -1;
int scanFrom = i - 1; // look left only — no lookahead
int scanTo = MathMax(ZZDepth + 1, i - HistBars);
for(int k = scanFrom; k >= scanTo; k--)
{
if(pivotLowBar < 0)
{
bool isPivLow = true;
int leftLim = MathMax(0, k - ZZDepth);
for(int m = leftLimПоказано первые 50% кода (символов: 21475)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.