0
Что имеете? Не подумайтеплохого.Ввиду.
И что вы можете предложить?
Или это тоже не для вас?

Тема обозначена. Идея изложена. Менеджмент? Изложен буковками и картинкой.
Что не понятно — уточняйте.
В конце концов посомневайтесь, что ли.
avatar

kvashnin007

  • 6 июня 2026, 21:45
0
Alex, доброго дня.

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

А кроме дохода есть еще куча полезных штуковин. Например, женщины.

Так-что не надо язвить. Хотите участвовать — побольше позитива. Хорошие идеи тоже не помешают.

Иначе проходите мимо.

Хорошего дня.
avatar

kvashnin007

  • 6 июня 2026, 13:21
0
Просто:

Два одинаковых разнонаправленных ордера не имеют общего безубытка.
по простой причине:

AllBU = (OOP_Buy*Lot_Buy — OOP_Sell*LotSell)/(LotBuy-LotSell);

Но каждый ордер получит свой SL, равный дистанции трала, если цена его достигнет.
На самом деле тралится SL каждого ордера, равный тралу БУ.

Опять язвите. Ничего никому не продаю и ничего не показываю. Тем более, что советник только собираюсь писать, в том числе при помощи заинтересованных лиц.

Вы к ним явно не относитесь. Балы что ли зарабатываете?
ЗарабатывайтеСЬ в другом месте.

Просто не мешайте.

И Вам не хворать.
avatar

kvashnin007

  • 6 июня 2026, 13:19
0
Теперь за нюансы выше, отложенные на потом.

1. Закрывать или нет второй ордер из стартовых? Думаю лучше оставить. И вот почему:

— Во-первых нет падения депозита. А то что он тянет за собой минус — не беда.
— Во-вторых тралим то мы все равно ОБЩИЙ БУ. А наличие противоположного ордера, при всех прочих равных, ставит трал БУ в более выгодное положение, что дает больше меневра.
Это практически не заметно, но… всё таки.Иногда.
— В -третьих при закрытии серии по общему БУ оставшийся ордер, в зависимость от его положения, может, при прочих равных, тоже «улучшить» расположение трала для увеличения маневра.

2. А может двух! Имеется ввиду открытие в зоне безопасности ордеров в двух направлениях. Надо пробовать. И вот в чем мыслЯ. В принципе нам не важно какие ордера. Лишь бы побольше. В пределах разумного конечно.
А открытие противонаправленных ордеров дают замок, что не влияет на общий БУ, и просадку по эквити. Ну кроме поборов брокера. Так и там тоже не без них.
Зато этот маневр не дает тралу так стремительно приближаться к изменчивой цене.
Что в свою очередь способствует продлению сессии. С другой стороны снижается доходность. Но мы же не о ней? А то, что снижается просадка, об этом в иретьем нюансе.

3. Третий нюанс.
Просадки низкой ожидать не приходится. По прикидкам — более 50%. Но… Любимое НО…
Любая текущая просадка ограничивается ТРАЛОМ БУ.
И раздражает эта просадка только до закрытия сессии.
А с другой стороны радует то, что работают не 2-5% «просадочных» денег, а все 50%.

Нюансов будет еще много. Например, работа без SL и ТР.

avatar

kvashnin007

  • 6 июня 2026, 12:30
0
Ордера можем открывать по любому принципу. Да хоть:
bool buy = Close[1]>Open[1];
bool sell = Close[1]<Open[1];
Или наоборот. Пока не важно. Главное — побольше, побольше.

Беда в другом:
Цена за внешней границей, общий SL стоит. Да и еще в плюсе.
А мы все кидаем и кидаем себе ордера до срабатывания SL БУ.
Вернее мы спокойно спим, а ордера кидает советник.
Просыпаемся утром, смотрим — гочерга. Идем в журнал, а там черным по белому: StopOut.
Да и еще по марже чего-то там должны.

Я не зря сделал выше оговорку по фрейду за смерть… Это про смерть депозита.
Оказывается, что безмерное открытие ордеров в безопасной зоне привело к тому,
что залоговые средства съели всю маржу. Вот тебе и Тришкин кафтан безопасной зоны.

Решения этой проблемы есть:

1. Можно определять лотность каждого ордера, как процент от, например, 70% свободной
маржи. Когда она будет заканчиваться, не открывать ордера из-за Lot=0.
Тогда за повышение лотности можно забыть. Тралим прибыль. Что тоже не плохо.
Но… это другое.

2. Можно установить ограничение на количество ордеров в серии. Например, coun=20;
Решает проблему? ЧАСТИЧНО. Во-первых оптимальное количество ордеров сильно
зависит от волатильности рынка, правильно подобранной дистанции трала.
Кроме того, можно тоже забыть за повышение лотностию Тралим прибыль.

3. Есть убойный вариант. И лотность повышаем и прибыль повышаем.
Для этого берем первый (предпочтительнее) или второй (проще) вариант решения.
Но… Или лоты снизнтились до ноля, или количество ордеров стало предельным,
мы просто закрываем старейший ордер в серии, тем самым возвращаем залог за него в
свободную маржу, плюс, туда же кладем пего прибыль.
Депо повысилось, свободных средств стало поболее. Просто и изящно.Мечта главбуха.

avatar

kvashnin007

  • 6 июня 2026, 11:25
0
Извините за ошибки в топе. Съел что-то не то.

Часто попадаются записи на сайте о том, что хотелось бы иметь такой советник.

Я этим вопросом не заморачивался, а сейчас в командировке.
Дело было вечером, делать было… Ну совсем.

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

Рашифрую девиз.

Цели поставлены в топе.

Предлагаю простую идею для написания советника.



Пока без извращений.

Запускаем советник. Открываются два ордера одинаковым лотом в двух направлениях.
Без SL. Запускаем ТРАЛ безубытка каждого из них. Спим спокойно, ибо полный замок хоть и не дает расти прибыль, так и не допускает роста убытков.
Цена ходит туды-сюды. Ходит… и ВСЕГДА наступает такой момент, когда цена отрывается от открытия какого-нибудь из ордеров на дистанцию заданного трала. Этот ордер получает свой SL. который тралится. Второй (Не обязательно! Позже поясню) можем закрыть.
Снова спим спокойно: SL есть, и он в плюсе.

Далее наступают веселые мгновенья, а иногда и недели с месяцами. Зависит от дистанции трала и длительности тренда. Посмотрите на японца — непрерывно падает. Тралим себе.
Веселье в том, что пока цена находится за наружными пределами трала общего БУ, мы можем кидать кучу ордеров нужного направления (А может и двух? Надо подумать!!!) сколь душе угодно. До тех пор, пока смерть не...(пардон), пока цена не достигнет нашего, вполне подвижного трала.

Дальше — по-новому.

СРАЗУ ЗАЯВЛЯЮ: Я НЕ ОБЯЗУЮСЬ САМ НАПИСАТЬ СОВЕТНИК. ТЕМ БОЛЕЕ ДЛЯ ТОРГОВЛИ. ПРОСТО ГИМНАСТИКА ДЛЯ УМА. НАДЕЮСЬ — НЕ ТОЛЬКО.
avatar

kvashnin007

  • 6 июня 2026, 10:25
0
Вторая склейка:
void PutOrder(int type,double price,int mn)
{
   int r=0;
   color clr=Green;
   sl=0;tp=0;

   if(type==OP_SELL || type==OP_SELLSTOP || type==OP_SELLLIMIT)
     {
      clr=Red;
      if(SL>0)
         sl=NormalizeDouble(price+sl,_Digits);
      if(TP>0)
         tp=NormalizeDouble(price-tp,_Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(SL>0)
         sl=NormalizeDouble(price-sl,_Digits);
      if(TP>0)
         tp=NormalizeDouble(price+tp,_Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,_Digits),Slip,sl,tp," ",0,clr);
   return;
}
//+------------------------------------------------------------------+
//|   Подсчёт отложенных ордеров Ветви Sell                          |
//+------------------------------------------------------------------+
int CountLimVS(int type)
{
     int count=0;
   	
     for(int i=OrdersTotal()-1; i>=0; i--)
         {
   		if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==SMB)
				if(OrderType()==type)
					 count++;
      	}
  return(count);
}
//+------------------------------------------------------------------+
//|     Счётчик  всех  открытых  ордеров  ветки  Sell                |
//+------------------------------------------------------------------+
int CountOpenVS()
{
	int count=0;
	
   for(int i=OrdersTotal()-1; i>=0; i--)
      {
		if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==SMB)
			if(OrderType() == OP_BUY || OrderType() == OP_SELL)
				if(OrderMagicNumber()==MagicSell)
					count++;
   	}
  return(count);
}
//+------------------------------------------------------------------+
//|        Закрытие всех открытых ордеров                            |
//+------------------------------------------------------------------+
void CloseAllOpen()
{
  bool cl;
	
  for(int i=OrdersTotal()-1; i>=0; i--)
     {
		if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
			if(OrderSymbol()==SMB && OrderMagicNumber()==MagicSell)
   			{
				if(OrderType()==OP_BUY)
   				{
					RefreshRates();
					cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,clrWhite);
   				}
				if(OrderType()==OP_SELL)
   				{
					RefreshRates();
					cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,clrWhite);
   				}
   			}
   	}
}
//+------------------------------------------------------------------+
//|       Удаление всех отложенных ордеров                           |
//+------------------------------------------------------------------+
void DelLimOrderVS()
{
	for(int i=OrdersTotal()-1; i>=0; i--)
   	{
		if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
			if(OrderSymbol()==SMB && OrderMagicNumber()==MagicSell)
				if(OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP || OrderType() == OP_BUYLIMIT || OrderType() == OP_SELLLIMIT)
					if(!OrderDelete(OrderTicket()))
						Print(__FUNCTION__," Ошибка № ",GetLastError()," при удалении отложенного ордера");
   	}
}
//+------------------------------------------------------------------+
//|       Профит всех открытых ордеров                               |
//+------------------------------------------------------------------+
double AllProfit()
{
   	double profit=0;
      for(int i=OrdersTotal()-1; i>=0; i--)
        {
   		if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   			if(OrderSymbol()==SMB && OrderMagicNumber()==MagicSell)
   				if(OrderType()== OP_BUY || OrderType()== OP_SELL)
   					profit+=OrderProfit()+OrderSwap()+OrderCommission();
        }
  return(profit);
}
//+------------------------------------------------------------------+
avatar

kvashnin007

  • 17 февраля 2026, 16:56
0
#property strict

extern double         Loss           = 590;          // убыток в валюте
extern double         Profit         = 2;            // профит в валюте
extern int            SL             = 1;            // Stop Loss
extern int            TP             = 1;            // STake Profit
extern int            Distance       = 4;            // дистанция отложек
extern int            StepTrail      = 7;            // шаг трала отложек
extern double         Lots           = 0.8;          // лот
extern double         LotK           = 2.5;          // увеличение лота
extern double         MaxLot         = 14.7;         // максимальный лот
extern int            Slip           = 30;           // проскальзывание
extern int            MagicSell      = 1961;         // магик продажа
//---
double buy=0,sel=0,MinLevel,PNT,dist, TralStep,sl,tp;
int    numVS=0;
string SMB;
double BuyPriceMax,SelPriceMin,LotBuyMax,LotSellMin,
       op,lt,pr,ProfitBuy,ProfitSell,StartLot;
int    tk,SchBuy,SchSell,SchRyn;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
	  SMB  = Symbol();
	  PNT  = MarketInfo(SMB,MODE_POINT);
 return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
     MinLevel = (int)MarketInfo(NULL,MODE_STOPLEVEL);
	  TralStep = StepTrail*PNT;
	  dist     = (Distance + MinLevel)*PNT;
     sl       = (SL + MinLevel)*PNT;
     tp       = (TP + MinLevel)*PNT;
     
// При достижении профита или убытка больше уствновленных, закрываются все ордера, удаляются все отложки и начинается новый цикл.
// Эта функция, фрктически, является и SL и более ТР для ордеров. Так проще, лучше и эффективнее, чем SL и ТР отдельных ордеров.
     
     if((AllProfit()>Profit && Profit!=0) || (-AllProfit()>Loss && Loss!=0))
        {
   	  CloseAllOpen();          // закрытие всех открытых ордеров
   	  DelLimOrderVS();        // удаление всех отложек
   	  }
     // ----------------------------------- Установка стартового ордера -----------------------------------------------
     
// Если нет открытых ордеров, то удаляются все отложенные ордера и открывается OP_SELL ордер стартовым лотом. Начало цикла.
// Дальше обвязывается тремя ордерами. На Distance ниже SellStop, выше на Distance SellLimit и на Distance*1.5 ордер BuyStop.
// Все ордера выставляются также стартовым лотом.
   
     if(CountOpenVS()<1)                                            // Если открытых ордеров ветки Sell (VS)нет
        {
        DelLimOrderVS();                                            // удаление всех отложенных ордеров ветки Sell 
        
        PutOrder(OP_SELL, Bid, MagicSell);                          // открываем Sell ордер ветки Sell
      	 
        if(CountLimVS(OP_SELLLIMIT)<1)                              // если нет SellLimit ордеров ветки Sell,
           {
           sel = NormalizeDouble(Bid+MinLevel+dist,_Digits);
           PutOrder(OP_SELLLIMIT, sel, MagicSell);                  // выставляем SellLimit ордер
           }
        if(CountLimVS(OP_BUYSTOP)<1)                                // а если нет BuyStop ордеров ветки Sell,
       	  {
           buy = NormalizeDouble(Ask+(MinLevel+dist)*1.5,_Digits);
           PutOrder(OP_BUYSTOP,buy, MagicSell);                     // выставляем BuyStop ордер
           }
        if(CountLimVS(OP_SELLSTOP)<1)                               // если нет SellStop ордеров ветки Sell,
           {
           sel = NormalizeDouble(Bid-MinLevel-dist,_Digits);
           PutOrder(OP_SELLSTOP, sel, MagicSell);                   // выставляем SellLimit ордер
           }
        numVS = CountOpenVS(); 
        }
     //------------------------------------ открытие последующих ордеров ---------------------------------------------
     
// Если количество открытых ордеров OP_SELL стало больше, значит сработала какая-то SELL отложка.
// Удаляем все оставшиеся(юся)отложки(у).
// Дальше обвязывается тремя ордерами. На Distance ниже SellStop стартовым лотом умноженном на LotK, 
// выше на Distance выставляем SellLimit  стартовым лотом и на Distance*1.5 ордер BuyStop стартовым лотом.
     
     if(numVS<CountOpenVS())              // Если увеличелось количество открытых ордеров ветки Sell,
        {
        DelLimOrderVS(); 
        }                     // удаляем все отложки ветки Sell.
}
//+------------------------------------------------------------------+
//|      Определение цены последнего открытого ордера ветви Sell     | 
//+------------------------------------------------------------------+
double LastOrderPriceVS()
{      
	double   price = 0;
	datetime time  = 0;
	
	for(int i=0; i<=OrdersTotal()-1; i++)
   	{
		if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
			if(OrderSymbol()==SMB && OrderMagicNumber()==MagicSell)
				if(OrderType()==OP_SELL)
					if(time < OrderOpenTime())
   					{
						price = OrderOpenPrice();
						time = OrderOpenTime();
   					}
   	}
	return(price);
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
avatar

kvashnin007

  • 17 февраля 2026, 16:55
0
Гигачату тоже надо правильно задачу поставить. А не только АМ2.
avatar

kvashnin007

  • 22 сентября 2025, 19:02
0
Сигналом открытия (выставления рыночного ордера) будет:
а) Свеча закрылась за границей канала TMA_Centered_H1_V2_VS — это самое важное условие!!!
б) есть сигнал (ромб от TMA+CG (красный либо синий) причем сигнал может появиться при формировании новой свечи


Как вариант…

А если рассмотреть другой: на ромбы не ориентируемся от слова вообще. Ромб — свеча закрылась в направлении против выхода из полосы. Относительно надежный, но… малоприбыльный. Если вы уж хотите закрытия свечи вне полосы, то логичнее было бы рассмотреть возврат цены в полосу. Или, если свеча закрылась за полосой, например выше, то ожидаем свечу которая закроется либо вниз, либо, ак вариант, текущая цена станет ниже цены открытия предыдущей свечи. Тогда OP_SELL.
avatar

kvashnin007

  • 14 сентября 2025, 17:39
0
И да. Есть у меня свои и чужие советники, которые работают без strict.
avatar

kvashnin007

  • 24 августа 2025, 14:13
0
Вы таки не поняли смысла моего умозаключения. Я не за ошибки говорю, а за замечания. Желтенькие треугольники. С ними советник всеже может работать. Как и сколько — другой вопрос. С ошибками (красные кружочки), конечно же не будет даже устанавливаться.
avatar

kvashnin007

  • 24 августа 2025, 14:10
0
Скорее всего Вы правы. Но 98 замечаний тоже сильно влияют на работу совы. Возможно, сильнее, чем строгость. Уходит корректность и повторяемость.
Лучший вариант: оставить strict и поработать над замечаениями. Тем более, что это муторно, но не так сложно.
avatar

kvashnin007

  • 24 августа 2025, 11:06
0
Хорошо. Это самый простой вариант, я так думаю.
avatar

kvashnin007

  • 23 августа 2025, 09:46
0
98 замечаний. Удивляюсь, как сова вообще может устанавливаться.

На счет Elise. Control+H, Все Elise заменить на пробел. Их там 13 штукОВ.
Забаньте (//) strict в стр.16. Или удалите строку. Объявите глобальную переменную int i =0; В поиске найти по очереди все int i и у всех, кроме глобальной, удалите int. Останется только 27 замечаний. Их тоже желательно побороть.
Программист я хреновый, сам советник не устанавливал и не запускал. Просто мои мысли.

Пробуйте.
avatar

kvashnin007

  • 23 августа 2025, 08:36
0
Ну чтобы попробовать помочь, надо хотя бы сам советник. Ссылка не рабочая. И вообще админу сайта надо пеесмотреть работу сайта. Особенно в вопросе ссылок.
avatar

kvashnin007

  • 23 августа 2025, 08:05
0
Aleh7999, привет. Со ссылками хрень какая=то. Открываю страницу, копирую адресную строку и вношу в текст.
Ан… не открывается. Чудеса.

Даже не знаю, как правильно отправить ссылку. Нажмите на мою морду лица и посмотрите записи в блоге. Там найдете искомое.

Там я и писал, что верхняя линия строится по high, а нижняя по low. Это за большой период. За малый период М1 тоже строятся две центральные линии по high и low. Период у у мелкого 2-7, а у крупного, как писал выше. А подробнеенай найдете в моем блоге, как и первый раз.

Да… и на счет какой индюк. Не помню. Пишу на работе. Взял, что здесь есть. Это чисто для прмера. Идея. А вы берите не рисующий.
Да… в моем примере все построения на М1.

Первый блог называется: Что такое ТМА и как его пользовать.
Второй: Как из любого индюка самостоятельно сделать мультитаймфрейм индикатор.
avatar

kvashnin007

  • 21 августа 2025, 11:30
0
Писал в другом месте. Переношу сюда.

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

Выскажу свои соображения на эту тему, а Вы сами решайте (проверяйте) подходит для Вас или нет.

TMA+CG mladen NRP TEAMTRADER2 buy sell относится к разряду не перерисовывающихся, но… Посмотрите его в тестере. Потом ререзапустите индикатор (открыть- закрыть свойства) и заметите, что, если по ходу прогона в тестере он не рисовал, то после перезапуска изменит свои показания и при одинаковых переменных он станет один в один с TMA_Centered_H1_V2_VS. Но при торговле он не перерисовывается. Можно строить стратегии, глядя на результаты прогона индюка в тестере. Надо быть внимательным к этому.
Подробнее об этом я писал здесь kvashnin007.opentraders.ru/133015.html.

А если Вы хотите два индюка, то рассмотрите вариант, например, такой:
1. Оба не прерисовывающиеся. Например TMA+CG mladen NRP TEAMTRADER2 buy sell.
2. Один ставите на М1 с переодом, например, 5. Второй ставите тоже на М1, но спериодом, соответсвующим М15. Т.е. с периодом в пятнадцать раз больше. Т.е. 5*15=75. Об этом я тоже писал kvashnin007.opentraders.ru/133013.html#comment175740

У вас получится похожая картинка



Работать теперь надо вверху с черной верхней линией, а внизу — с черной нижней. Можно улучшить картинку (и, соответствено, и результат), если верхние линии рисовать по high, а нижние по low.

Думайте. Решайте.
avatar

kvashnin007

  • 15 августа 2025, 20:03
0
Пожалуй продолжу.
Хоть один смотрящий, но объявился. Возможно еще кто ни будь заинтересуется.

Блин, не могу никак успокоиться. Этот… студент довел до каления. А как ты сам сможешь показать на реале что-то там и утверждать, что это на ТМА? Или с помощью ТМА. Да и вообще с чъей-то помощью.
Умник, блин.Болтает ерундой за тридцать сребников.

Я сделал индикатор, в котором одна верхняя средняя ТМА и верхняя красная построена по цене high, а втрая пара по low.

Индикатор полностью не рисующий. А картинка выглядит так:



Не такой красивый, как рисующий индюк. Зато реальный и при торговле, и на истории.

Такой канал, построенный на хай -лоу, лучше отрабатывает на границах. Плюс у вас есть три четких линии, при касании которой можно применить тот или иной вариант фиксации или иной заботы за прибылью.

Например: на первой линии переводим ордер в БУ+. На второй закрываем треть ордера, а SL остатку переводим на первую среднюю линию. На границе канала закрываем еще половину остатка ордера, а оставшемуся остатку выставляем тралSL. Вариантов тьма. Надо учитывать спред, ширину канала, волатильность пары и пр. Выбирай — не хочу.
avatar

kvashnin007

  • 15 августа 2025, 19:23