Комментарии пользователя Op_Man💰

Мои комментарии:в блогах в форуме
Ответы мне:в блогах в форуме
Все комментарии: к моим постам

так много доходностей построчно расписали… раньше вроде тоже понятно было. 

Макс профит на металлах получился?

По ГО загружаете на 90% как прежде?

avatar
  • 01 февраля 2026, 21:47
  • Еще

Добрый день. Вы в своих блогах регулярно писали, как вы на банках заработали то и это, кредитные карусели, кешбеки, скидки и т.д.... 

Видимо, не нужно было.

avatar
  • 01 февраля 2026, 16:24
  • Еще

роман 30, 

Спасибо, сами пробуйте)

avatar
  • 29 января 2026, 13:14
  • Еще

А почему не договориться и не сделать один общий стандарт Trade API для всех брокеров? Сейчас каждый городит свой огород — кто в лес, кто по дрова... 

Зачем? 

https://habr.com/ru/articles/963856/

avatar
  • 29 января 2026, 12:09
  • Еще

Лайт-версия идеи: 

//+------------------------------------------------------------------+
//| Angle EA «Кусок робота алго» |
//+------------------------------------------------------------------+
#property strict
#property description «Угловой робот: сравнивает φ1 и φ2 из arcsin((x1-x2)/t)»
#include <Trade/Trade.mqh>

CTrade trade;

//--- константы
#define M_PI 3.14159265358979323846

//--- входные параметры
input int InpTimeframeMinutes = 5; // t в минутах (5, 15, 60 и т.д.)
input double InpAngleScale = 10000.0; // масштаб для (x1-x2) перед asin
input double InpLots = 0.1; // фиксированный лот
input bool InpTradeOnNewBar = true; // торговать только на новом баре
input ulong InpDeviation = 10; // проскальзывание в пунктах
input string InpComment = «AngleEA»; // комментарий к ордеру

//--- глобальные переменные
datetime last_bar_time = 0;
ulong last_trade_time = 0;

//+------------------------------------------------------------------+
//| Вспомогательные функции |
//+------------------------------------------------------------------+

// Преобразование минут в ENUM_TIMEFRAMES
ENUM_TIMEFRAMES MinutesToTimeframe(int minutes)
{
switch(minutes)
{
case 1: return PERIOD_M1;
case 5: return PERIOD_M5;
case 15: return PERIOD_M15;
case 30: return PERIOD_M30;
case 60: return PERIOD_H1;
case 120: return PERIOD_H2;
case 180: return PERIOD_H3;
case 240: return PERIOD_H4;
case 360: return PERIOD_H6;
case 480: return PERIOD_H8;
case 720: return PERIOD_H12;
case 1440: return PERIOD_D1;
case 10080: return PERIOD_W1;
case 43200: return PERIOD_MN1;
default: return PERIOD_CURRENT;
}
}

double GetPrice(int shift)
{
// используем цену закрытия
ENUM_TIMEFRAMES tf = MinutesToTimeframe(InpTimeframeMinutes);
double close = iClose(_Symbol, tf, shift);

// если не получилось с указанным ТФ, берем текущий
if(close == 0)
close = iClose(_Symbol, PERIOD_CURRENT, shift);

return close;
}

// нормализованный asin
double AngleFromDiff(double diff)
{
// diff = (x1 — x2)/t * масштаб
double x = diff * InpAngleScale;

// ограничим аргумент [-1,1]
x = NormalizeDouble(x, 8);
if(x > 1.0) x = 1.0;
if(x < -1.0) x = -1.0;

// MQL5: используем asin() вместо MathAsin()
double rad = asin(x); // радианы [-π/2, π/2]
double deg = rad * 180.0 / M_PI; // градусы [-90, 90]

return deg;
}

// получить текущую позицию
bool GetCurrentPosition(long &pos_type, double &pos_volume)
{
if(!PositionSelect(_Symbol))
return false;

pos_type = (long)PositionGetInteger(POSITION_TYPE);
pos_volume = PositionGetDouble(POSITION_VOLUME);
return true;
}

// закрыть позицию
bool ClosePosition()
{
if(!PositionSelect(_Symbol))
return true;

if(GetTickCount() — last_trade_time < 1000)
return false;

ulong ticket = (ulong)PositionGetInteger(POSITION_TICKET);

trade.SetDeviationInPoints(InpDeviation);
trade.SetAsyncMode(false);

bool res = trade.PositionClose(ticket);

if(res)
last_trade_time = GetTickCount();

return res;
}

// проверка возможности торговли
bool IsTradeAllowed()
{
if(!MQLInfoInteger(MQL_TRADE_ALLOWED))
{
Print(«Торговля запрещена в настройках терминала»);
return false;
}

if(!SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE))
{
Print(«Торговля по символу запрещена»);
return false;
}

return true;
}

//+------------------------------------------------------------------+
//| OnInit |
//+------------------------------------------------------------------+
int OnInit()
{
last_bar_time = 0;
last_trade_time = 0;

trade.SetDeviationInPoints(InpDeviation);
trade.SetTypeFilling(ORDER_FILLING_IOC);

Print(«AngleEA инициализирован. Масштаб: », InpAngleScale);
return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| OnDeinit |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Comment("");
Print(«AngleEA остановлен. Причина: », reason);
}

//+------------------------------------------------------------------+
//| Основная логика |
//+------------------------------------------------------------------+
void OnTick()
{
if(!IsTradeAllowed())
return;

// торговать только на новом баре
if(InpTradeOnNewBar)
{
ENUM_TIMEFRAMES tf = MinutesToTimeframe(InpTimeframeMinutes);
datetime curr_bar_time = iTime(_Symbol, tf, 0);

if(curr_bar_time <= last_bar_time)
return;
last_bar_time = curr_bar_time;
}

// проверка количества баров
ENUM_TIMEFRAMES tf_check = MinutesToTimeframe(InpTimeframeMinutes);
int bars = iBars(_Symbol, tf_check);
if(bars < 5)
{
Comment(«Недостаточно истории: », bars, " баров");
return;
}

double t = (double)InpTimeframeMinutes;
if(t <= 0.0)
{
Print(«Ошибка: Timeframe <= 0»);
return;
}

// получаем цены
double x1 = GetPrice(1);
double x2 = GetPrice(2);
double x3 = GetPrice(3);
double x4 = GetPrice(4);

if(x1 == 0 || x2 == 0 || x3 == 0 || x4 == 0)
{
Comment(«Ошибка получения цен»);
return;
}

// расчет углов
double diff1 = (x1 — x2) / t;
double diff2 = (x3 — x4) / t;

double phi1 = AngleFromDiff(diff1);
double phi2 = AngleFromDiff(diff2);

// фильтр шума
if(MathAbs(phi1 — phi2) < 0.1)
return;

// получаем позицию
long pos_type = -1;
double pos_volume = 0.0;
bool have_pos = GetCurrentPosition(pos_type, pos_volume);

if(GetTickCount() — last_trade_time < 3000 && have_pos)
return;

string status = StringFormat(«phi1=%.2f phi2=%.2f | x1=%.5f x2=%.5f»,
phi1, phi2, x1, x2);

// логика торговли
if(phi1 > phi2) // покупка
{
if(have_pos && pos_type == POSITION_TYPE_BUY)
{
Comment(status + " | Long");
return;
}

if(have_pos && pos_type == POSITION_TYPE_SELL)
{
if(!ClosePosition())
{
Comment(status + " | Closing SELL...");
return;
}
Sleep(100);
}

trade.SetDeviationInPoints(InpDeviation);
if(trade.Buy(InpLots, _Symbol, 0, 0, 0, InpComment))
{
Print(«Buy executed. phi1=», phi1, " phi2=", phi2);
last_trade_time = GetTickCount();
Comment(status + " | BUY");
}
else
{
Print(«Buy error: », GetLastError());
}
}
else if(phi1 < phi2) // продажа
{
if(have_pos && pos_type == POSITION_TYPE_SELL)
{
Comment(status + " | Short");
return;
}

if(have_pos && pos_type == POSITION_TYPE_BUY)
{
if(!ClosePosition())
{
Comment(status + " | Closing BUY...");
return;
}
Sleep(100);
}

trade.SetDeviationInPoints(InpDeviation);
if(trade.Sell(InpLots, _Symbol, 0, 0, 0, InpComment))
{
Print(«Sell executed. phi1=», phi1, " phi2=", phi2);
last_trade_time = GetTickCount();
Comment(status + " | SELL");
}
else
{
Print(«Sell error: », GetLastError());
}
}
else
{
Comment(status + " | Neutral");
}
}
//+------------------------------------------------------------------+

 

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



avatar
  • 29 января 2026, 11:35
  • Еще

Кирилл Гудков, чем масштабнее разводка — тем она древнее и ее проще провернуть. По двум причинам: людям кажется, что разводка не может быть такой древней и масштабной. Не могло ведь так много людей повестись на нее — это из кино. 

А по сути — мне в диковину, что люди до сих пор попадаются на такое...

avatar
  • 28 января 2026, 13:13
  • Еще
🐌 Сочетания слов «автоматизированный торговый робот» и «форекс» должны сразу заставить немного напрячься. 

Не соглашусь с вами. Форекс‑кухни с обещаниями по 20% в месяц и алготрейдинг как инструмент — это две большие разницы.

То, о чём здесь идёт речь, похоже не на торговых роботов, а на типичную форекс‑пирамиду с «волшебным алгоритмом» и сетевым маркетингом. 

avatar
  • 28 января 2026, 11:22
  • Еще
Идея о том, что «любимчики» получат максимальный приток денег — совершенно логичная. НО! Максимальный приток денег не означает максимальный рост акций. 
Ожидания большинства спекулянтов, что при низкой ставке деньги просто хлынут на рынок акций, рискуют остаться ожиданиями. Да, «любимчики» получат какой-то приток ликвидности, но это не гарантирует им максимального роста котировок: во‑первых, доверие к самому рынку подорвано, во‑вторых, для частного инвестора риск по акциям по‑прежнему выглядит неприемлемо высоким на фоне понятных депозитов/ОФЗ, в‑третьих, прозрачность корпоративного управления и механизмов «как тут зарабатывать» по‑прежнему оставляет вопросы. Плюс значительная часть потенциального притока осядет не в акциях, а в квази‑депозитных инструментах, структурках, ИИС с облигациями, ПИФах и т.п., то есть в продуктах, где брокеру и банку есть что продать, а рознице кажется, что она «инвестирует в рынок»…
avatar
  • 26 января 2026, 16:17
  • Еще
Пацаны, поздравьте меня с профитом!
С профитом вас!
avatar
  • 26 января 2026, 15:42
  • Еще

Eugen Invest Malina, я, кажется, понял причину желчи вашей. Можете не отвечать. 

15 минут ушло?👇 Без ВПН не навайбкодилось? 



Чувствуется, что тема вас задела. Не вижу смысла спорить, кто из нас быстрее и лучше кодит. Мне это вообще не интересно. 

Живите с миром, будьте счастливы.

avatar
  • 26 января 2026, 12:17
  • Еще

Eugen Invest Malina, если у вас получается такие вещи за пару часов делать — искренне рад за вас. 

Что является предметом обсуждения сейчас? Вы с какой целью эти вопросы задаёте? 

avatar
  • 26 января 2026, 12:06
  • Еще
Большой Брат, то есть займете не глядя первое место, верно понимаю ваш коммент?!)
avatar
  • 26 января 2026, 10:29
  • Еще
Eugen Invest Malina, добрый день. Ушло заметно больше времени, чем на калькуляторы. Нигде специально не пиарю: как закончил — просто поделился здесь. В основных соцсетях зарегистрирован, если вы об этом. Проект некоммерческий, чистое творчество.
avatar
  • 26 января 2026, 10:24
  • Еще
investor_day, это, похоже, локальная особенность DuckDuckGo: в Chrome, Edge, Firefox, Safari и мобильных браузерах масштабирование и автоцентровка графика работают штатно (проверял). Если не сложно, попробуйте открыть в любом Chromium-браузере и напишите, сохраняется ли проблема — тогда буду копать глубже именно под DuckDuckGo.
avatar
  • 26 января 2026, 02:41
  • Еще
investor_day, в каком браузере запустили?
avatar
  • 26 января 2026, 02:36
  • Еще

Beach Bunny, свечи генерируются не «чистым рандомом», а с контролем волатильности и направленного дрейфа, чтобы имитировать типичное поведение каждого конкретного инструмента из представленных. Цель тренажёра — отработка базовых навыков (механика входов/выходов, риск-менеджмент, психология), а не тестирование конкретной стратегии на истории. Для бэктестов уместны реальные котировки, а для тренировки реакции и дисциплины или просто времяпрепровождения с соревновательной составляющей синтетики достаточно.

Активность приветствуется, тем более предметная: было бы здорово видеть такую же вовлечённость и в ответах на вопросы под вашими постами...

avatar
  • 26 января 2026, 02:30
  • Еще

Тут, как обычно, всё упирается в методику: как считать, как часто пересобирать портфель, по каким принципам делать ротацию, что фильтровать по ликвидности и риску и т.д. На одних настройках импульс даёт приличную эквити, на других просто стирает капитал в ноль — у вас в примерах это хорошо видно.
Я тоже копал эту тему на примерах разных (биток, отдельные акции, портфель из нескольких бумаг, разные триггеры вместо прямого тайм‑шагового ребаланса) — вот пост: https://smart-lab.ru/blog/1173693.php
У коллег по алго‑и не только тоже достаточно материалов по моментуму (даже здесь на СЛ) и его «подводным камням», так что, думаю, если собрать и проанализировать все известные подходы, можно будет уже делать не только красивые бэктесты, но и более жизнеспособные реализации.

Короче говоря, пространство вариантов очень большое по теме.

avatar
  • 25 января 2026, 20:51
  • Еще

__rtx, про мальчика ничего конкретного не скажу — читал не все подряд заметки его, а автора топика совсем не знаю...:(

у них появятся(если так однажды случится) деньги то им их станет очень жалко(сейчас когда нет они в теории могут тогрговать не то что 10 000 000 но вполне (как им может казаться) и 100 000 000 но если такое произойдёт то всё будет идти во вклады(мало кто из них реально сможет открыть позицию на 10 млн. и не потеть в этом проблема

интересную тему затронули. Мне вот, например, очень тяжело и долго было привыкать и к объемам, и к рискам, и вообще ко всей «спекулятивной движухе». У многих людей толерантность к риску околонулевая, при этом имеется сильная недокапитализированность, которая и заставляет людей брать непомерные риски и делать на рынке вещи, изначально им не подходящие по профилю и типу личности. Эти люди, как вы и пишете, при наличии сумм, которые позволят не ходить на работу больше, в массе своей выберут безриск, как мне думается. То есть им «просто очень нада денег, брат». А сама биржевая активность — один из возможных способов приблизиться… Что думаете?

 

avatar
  • 24 января 2026, 23:23
  • Еще

__rtx, а вдруг человек алгодзен познал и у него всё суперпупер в торговле и хорошие результаты с 2017 года (или может раньше), но описать концепцию мировоззренческую смог только вот так, как получилось?!) 

Я на протяжении всего поста надеялся, что хотя бы результаты бэктеста будут за длительный период, краткое описание подхода к торговле (тренды, нейтраль, скальпинг может) или что-то такое. Вами часто упоминаемый мальчик буй буй когда-то писал, что по сути не столь важно, насколько красивая кривая доходности, важно, чтобы вправо и вверх постоянно (ну или как-то похоже) Может тут тоже неплохо, но автор не отвечает, поэтому пост и комменты получаются сугубо философские.

avatar
  • 24 января 2026, 22:54
  • Еще

Фёдор Г., кто знает, как это трактует автор топика)

Поэтому и спросил. 

 

avatar
  • 24 января 2026, 22:23
  • Еще
Выберите надежного брокера, чтобы начать зарабатывать на бирже:
....все тэги
UPDONW
Новый дизайн