0
Кто-то на сайте искал советника, который наращивает эквити вместо депо. Пожалуйста поищите свои настройки. Этот результат за месяц.
И за это моему калькулятору гранд мерси.

avatar

kvashnin007

  • 29 мая 2022, 17:04
0
НА ОТКАТАХ НАДО ЗАРАБАТЫВАТЬ.
avatar

kvashnin007

  • 28 мая 2022, 02:23
0
Фактически стрелочник на стохастике.
Гораздо полезнее и безопаснее использовать стрелки только в направлении облака. И вообще забыть про стохастик. Он тормоз и трудно поддается приручению. Думаю нужен какой -то индюк с намеком на импульс. Например similare.
avatar

kvashnin007

  • 22 мая 2022, 10:32
0
Мои мысли — мои скакуны.
Ускакали.

Ну если вообще были.

Активность пассива не наблюдается.
Так и просидите всю жизнь в последнем ряду.
Нацелуетесь…
Совет да любовь.
avatar

kvashnin007

  • 19 мая 2022, 19:08
0
<code>//+------------------------------------------------------------------+
double Lot()
{
   double lot=Lots;

   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
         if(OrderProfit()>0)
            lot=Lots;
         if(OrderProfit()<0)
            lot=OrderLots()*KLot;
   if(lot>MaxLot)
      lot=Lots;       // lot=MaxLot; ???????????? Может так лучше?
   return(lot);
}
//+------------------------------------------------------------------+
</code>


Андрей, а Вы уверены, что это лот последнего закрытого ордера?
avatar

kvashnin007

  • 19 мая 2022, 14:26
0
Я бы организовал работу индикатора попроще. Для проверки идеи, а может и навсегда, использовал бы координаты ZZ. Его же сформировавшиеся крайние плечи являются точками приложения индикатора. Все это сильно сократит статистику.

Для разработки стратегии понадобится направление тренда.

Направление: рост high и low — медвежий тренд и наоборот.
Что-то растет, а что-то упало (или не очень?) — широкий флэт.
Полученный вымпел можно прорисовать.

Статистика просчитывает за указанный срок и в зависимости от «силы» тренда:

1. Плюс-минус изменения цены (полоса, а по ней стратегия на отложках).
2. Возможное время (вертикальная полоса). Нужны ли нам свопы? Или, если цена
не попала в получаемый квадрат, может есть смысл задуматься?
3. Можно, используя коэффициенты Гартли, предполагать фигуры и перерисовывать
их (а может и удалять?) при возникшем случае.

Кроме своеобразного прогноза этот индикатор поможет формализовать SL и ТР.
Может рисовать поддержки и сопротивления. А сколько здесь стратегий!

Дамы и господа, может уже пора подумать не только о том, что делать, а и как?
Особенно дамы.
avatar

kvashnin007

  • 19 мая 2022, 11:58
0
Для удобства добавил бы простенького индюка.

//+------------------------------------------------------------------+
//|                                                  dayBreakout.mq4 |
//|                                                        Bill Sica |
//|                                         http://www.tetsuyama.com |
//+------------------------------------------------------------------+
#property copyright "Bill Sica"
#property link      "http://www.tetsuyama.com"

#property indicator_chart_window
//---- input parameters
extern int       DAYS=5;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+

int init()
  {
//---- indicators

//---- indicators

   

//----
   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   double daily_high[20];
   double daily_low[20];
   double phigh,plow;
   int i=1;

//---- TODO: add your code here
ArrayResize(daily_high,DAYS);
ArrayResize(daily_low,DAYS);
ArrayInitialize(daily_high,0);
ArrayInitialize(daily_low,0);

ArrayCopySeries(daily_low, MODE_LOW, Symbol(), PERIOD_D1);
ArrayCopySeries(daily_high, MODE_HIGH, Symbol(), PERIOD_D1);

/* initialise */
plow=daily_low[1];
phigh=daily_high[1];

for(i=1;i<DAYS;i++)
{
   if(plow>daily_low[i])
   {
      plow =daily_low[i];
   }
}

for(i=1;i<DAYS;i++)
{
   if(phigh<daily_high[i])
   {
      phigh =daily_high[i];
   }
}

Comment("\n5dayH ",phigh,"\n5dayL ",plow);

ObjectDelete("5dayHigh");
ObjectDelete("5dayLow");

ObjectCreate("5dayHigh", OBJ_HLINE,0, CurTime(),phigh);
ObjectSet("5dayHigh",OBJPROP_COLOR,SpringGreen);
ObjectSet("5dayHigh",OBJPROP_STYLE,STYLE_SOLID);

ObjectCreate("5dayLow", OBJ_HLINE,0, CurTime(),plow);
ObjectSet("5dayLow",OBJPROP_COLOR,Red);
ObjectSet("5dayLow",OBJPROP_STYLE,STYLE_SOLID);

ObjectsRedraw();

   return(0);
  }
//+------------------------------------------------------------------
avatar

kvashnin007

  • 17 мая 2022, 23:18
0
Я Бы подумал про тему по свече построить BOX dayBreakout и расширить стратегию.
avatar

kvashnin007

  • 17 мая 2022, 20:24
0
Я вот покурил и осенился.

Статистику проще собирать по координатам. Ну ту, которая была чаще.
Гартли, конечно, нам не догнать, но приблизиться можем.
А его я считаю Достоевским на бирже. Математика и статистика рулят.
Ну и инсайд, конечно.

Так что, какие мысли?
avatar

kvashnin007

  • 17 мая 2022, 20:16
0
      all=NormalizeDouble((allBuy — allSell) / (countBuy — countSell),Digits);


Одесса.
avatar

kvashnin007

  • 12 мая 2022, 08:07
0
Вот здесь, как раз, дико ошибаюсь. Пардон всем недоверчивым. Вариант первый выше верный.
Кому надо, можете пользоваться.
avatar

kvashnin007

  • 12 мая 2022, 00:05
0
Андрей, извините. Вот только с автором индюка связался. Он сбросил нужную часть кода, подтвердив, что я таки не ошибся.

//+------------------------------------------------------------------+
//|         Автор поделился.                                         |
//+------------------------------------------------------------------+
  
 for(int i = 0; i < ArraySize(st.orders); i++)
           {
            if(st.orders[i].GetType() == 0)
              {
               buy_price += st.orders[i].GetCena() * st.orders[i].GetLots();
               buy_lot += st.orders[i].GetLots();

               t++;
              }
            if(st.orders[i].GetType() == 1)
              {
               sel_price += st.orders[i].GetCena() * st.orders[i].GetLots();
               sel_lot += st.orders[i].GetLots();
               t++;
              }
           }

     
            price_aw = NormalizeDouble((buy_price - sel_price) / (buy_lot - sel_lot), Digits());
            
// Превел для себя

//+------------------------------------------------------------------+
//|         Превел для себя                                          |
//+------------------------------------------------------------------+
   
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
            if(OrderType()==OP_BUY)
              {
              allBuy+=OrderOpenPrice()*OrderLots();
              countBuy+=OrderLots();
              countBuy++;
              }
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
            if(OrderType()==OP_SELL)
              {
              allSell+=OrderOpenPrice()*OrderLots();
              countSell+=OrderLots();
              countSell++;
              }

   if(countBuy + countSell > 0)
      all=NormalizeDouble((allBuy - allSell) / (countBuy - countSell),_Digits);
//+------------------------------------------------------------------+
avatar

kvashnin007

  • 12 мая 2022, 00:01
0
Исправь. Вспомни молодух. Я вон до сих пор за ними…
avatar

kvashnin007

  • 10 мая 2022, 13:48
0
Великое необходимое мне знание и умение:
тут даже проверять нечего. Зачем два раза делите на лоты?

Хочу эти знания.

Тоже мне гуру выискался.
Знаниями можно делиться, а не пытаться мордой в…

Вот вам мое знание — формула не верна.
А… вам это не нужно. А нахрена тогда мне ваши, якобы истинные знания.
Не всякая хорошая машинистка хорошие стихи напишет.

Ну вот и поговорили. Апломб уберите. Не к лицу.
avatar

kvashnin007

  • 10 мая 2022, 12:10
0
Да надоели мне ваши потрудитесь то, сделайте се.
Я вообще не к вам обращался. А раз вы уже влезли в чужой базар, то потрудитесь сами и не забудьте доказать. Или мешки лучше ворочайте. Ну раз вежливого общения не понимаете.
Андрей не среагировал, а я не собираюсь напрягаться ради вашего больного себялюбия.
Тема закрыта.
avatar

kvashnin007

  • 10 мая 2022, 11:55
0
Ну что вы за человек? Все время норовите себя в неловкое положение поставить. Неудобно же.

Представьте себе, что вы не как ежик с кактусом, а просто написали одно предложение. Не важно какое. Мне, например, второе больше нравится.
Какой бы был результат?

Если бы вы обратили внимание, то в первых скобках разница между ценой БУ покупок и продаж. Заметьте — ЦЕНОЙ, а не весом. Цену потом поделили на разницу лотов. Заметьте — лотов.
Все как вы считаете и для однонаправленных ордеров.

Разница цен дает полосу между безубытками. Здесь должно насторожиться.
И задать свой вопрос себе же.

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

Пока не связался с автором, но крепнет уверенность в правильности последнего варианта.
avatar

kvashnin007

  • 10 мая 2022, 10:29
0
И вам доброе утро.
Если вы мне расскажете зачем четырежды делите на лоты в своем советнике, я вам расскажу зачем я занимаюсь этой ерундовай ерундой.
Сумма весов лотов и нулевая цена, это немного тоже, что и ящерица с крокодилом
Хорошего дня.
avatar

kvashnin007

  • 10 мая 2022, 09:59
0
Вспоминаю себя в отрочестве. Все было цикаво, но многое быстро набрыдало.
avatar

kvashnin007

  • 9 мая 2022, 23:32
0
Сочувствую.
А я уже большУю часть навалял. Ладно. Мне то оно точно не нужно.
Спи сибиряк, а то в Одессе скоро рассвет.
avatar

kvashnin007

  • 9 мая 2022, 23:30
0
Добавил вариант.

<code>//+------------------------------------------------------------------+
//|                                                       Odessa.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                          http://www.mункцql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.mункцql5.com"
#property version   "1.00"
#property strict

extern int TrailingStop = 1000;
extern int Magic         = 111;        // магик
input color col = clrLime;
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   ObjectsDeleteAll();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//--------------AM2
   double all=0, all_1=0, all_2=0, all_3=0, all_4=0,count=0,sl=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2)
              {
               all+=OrderOpenPrice()*OrderLots();
               count+=OrderLots();
              }
           }
        }
     }
   if(count>0) all=NormalizeDouble(all/count,_Digits);// AM2
//--------------------------------------------------------------

//-----------------------Odessa
   double allBuy=0,countBuy=0,allSell=0,countSell=0;
   
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
            if(OrderType()==OP_BUY)
              {
               allBuy+=OrderOpenPrice()*OrderLots();
               countBuy+=OrderLots();
              }
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
            if(OrderType()==OP_SELL)
              {
               allSell+=OrderOpenPrice()*OrderLots();
               countSell+=OrderLots();
              }

   if(countBuy+countSell>0) all_1=NormalizeDouble((allBuy - allSell) / (countBuy - countSell),_Digits);//Odessa
   if(countBuy+countSell>0) all_2=NormalizeDouble((allBuy/countBuy + allSell/countSell) / (countBuy + countSell),_Digits);//Odessa
//-----------------------------------------------------------------------

//------------------------------Сибирь
   double allBuy_2=0,countBuy_2=0,allSell_2=0,countSell_2=0;
   
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
            if(OrderType()==OP_BUY)
              {
               allBuy_2+=OrderOpenPrice()*OrderLots();
               countBuy_2+=OrderLots();
              }
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
            if(OrderType()==OP_SELL)
              {
               allSell_2+=OrderOpenPrice()*OrderLots();
               countSell_2+=OrderLots();
              }
   if(countBuy_2+countSell_2>0) all_3=NormalizeDouble((allBuy_2 + allSell_2) / (countBuy_2 + countSell_2),_Digits);//Сибирь
   if(countBuy_2+countSell_2>0) all_4=NormalizeDouble((allBuy_2 - allSell_2) / (countBuy_2 - countSell_2),_Digits);//Сибирь
//------------------------------------------------------------------- 
   DrawLABEL("AM2",StringConcatenate(count," лотов. БУ AM2 =  ",DoubleToStr(all,_Digits)),135,70,col,ANCHOR_LEFT);
   DrawLABEL("Odessa1",StringConcatenate(countBuy+countSell," лотов. БУ Odessa 1 =   ",DoubleToStr(all_1,_Digits)),135,90,col,ANCHOR_LEFT);  
   DrawLABEL("Odessa2",StringConcatenate(countBuy+countSell," лотов. БУ Odessa 2 =   ",DoubleToStr(all_2,_Digits)),135,110,col,ANCHOR_LEFT);  
   DrawLABEL("Сибирь1",StringConcatenate(countBuy_2+countSell_2," лотов. БУ Сибирь сложение =   ",DoubleToStr(all_3,_Digits)),135,130,col,ANCHOR_LEFT); 
   DrawLABEL("Сибирь2",StringConcatenate(countBuy_2+countSell_2," лотов. БУ Сибирь вычитание =   ",DoubleToStr(all_4,_Digits)),135,150,col,ANCHOR_LEFT);
  }
//+------------------------------------------------------------------+
color Color(bool P,color a,color b)
{
   if (P) return(a);
   else return(b);
}
//------------------------------------------------------------------
void DrawLABEL(string name, string Name, int X, int Y, color clr,ENUM_ANCHOR_POINT align=ANCHOR_RIGHT)
{
   if (ObjectFind(name)==-1)
      {
      ObjectCreate(name, OBJ_LABEL, 0, 0, 0);
      ObjectSet(name, OBJPROP_CORNER, 2);
      ObjectSet(name, OBJPROP_XDISTANCE, X);
      ObjectSet(name, OBJPROP_YDISTANCE, Y);
      ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
      ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
      ObjectSetInteger(0,name,OBJPROP_HIDDEN,true);
      ObjectSetInteger(0,name,OBJPROP_ANCHOR,align); 
      }
   ObjectSetText(name,Name,12,"Arial",clr);
}
//-------------------------------------------------------</code>


avatar

kvashnin007

  • 9 мая 2022, 23:26