0
ДАВАЙТЕ Я СДЕЛАЮ, ЧТОБЫ ОН ПОДХВАТЫВАЛ ордера с Magic, который Вы укажете в настройках, а если Вы поставите Magic=-1, то сов будет подхватывать любой из открытых ордеров валютной пары, на которую Вы кинули сова.
Можно при желании с выбором символов (пары) повыеживаться.
На счет размера лота ордера. Сейчас он закрывает 0.5 ордера.
Можно сделать, что бы он закрывал указанную часть ордера коэффициентом (укажете 0.3), можно просто указать, в размере, который Вы хотите закрыть. Например, укажите закрыть 0,02.
Но тогда Вы потеряете универсальность. И запутаетесь непосредственно в работе. Можно покумекать и совместить (например, если закрываемый лот Вы укажете «0») два варианта. Единственно, если вычисленный лот окажется меньше 0.01, закрывать 0.01 или 0.00 лота?
Помните, универсальность не всегда удобна.

Сформулируйте четко по пунктам, чего петь то будем, барин? Шутка.
avatar

kvashnin007

  • 18 апреля 2022, 11:23
+1
Надеюсь, это не было ругательством. Вы что, указываете MagicNumber?
Если Вам все подходит… Удачи Вам. Обращайтесь. Если смогу, помогу. Не забывайте только, что я пока сам учусь.
Да и заходите ко мне на блог.
kvashnin007.opentraders.ru/74118.html#comment162230
avatar

kvashnin007

  • 17 апреля 2022, 22:50
0
Еще немого и перейдем в закрытый чат.
Здесь, однако, пользы никакой.

В СРЕДУ ВАГОН ОТХОДИТ.
avatar

kvashnin007

  • 17 апреля 2022, 22:22
0
Сдвинулся на шажок.

//+------------------------------------------------------------------+
//|                                                    НЕВАЛЯШКА.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

// Хотя теоретически не важно где и когда открывать ордер, но считаю, что если мы сразу пойдем и заработаем, мы будем молодцы. По-этому
// 1. При отсутствии СВОИХ ордеров и при получени сигнала (Direct), открываем ордер (Direct) стартовым лотом. Сигнал только для первого ордера.
// 2. SL равен 2*Step+SL. Стоп выставляем от БУ. Думаю лучше подобрать SL, а не брать середину следующей полосы (2,5*Step).
// 3. Когда весь уровень ордеров (OP_BUY или OP_SELL) закроется по стопу, запускаем трал эквити с указанной дистанции.
// 4. При прохождении цены против ордера на расстояние равное Step, открываем ордер противоположного направления лотом в 2 раза больше предыдущего.
// 5. При прохождении цены в направлении ордера растояния, равного Step, закрываем поллота (если получится) и тралим цену от БУ (ООР) ордера.
// Вот в принципе и все. Думаю, для повышения доходности сигнал сделать надо отключаемым. Кому как подойдет.

input double          StartLots       = 0.01;     
input double          MaximalLots     = 2.56; // Есоли ордер больше максимальнлго, то открываем максимальный лот в нужном направлении и    
input int             OrderStep       = 495;                   // закрываем противоположные ордера лотом, чтобы оставшихся было в 2 раза меньше. ???   
input int             StopLoss        = 160;  // Стоп будет 2 шага плюсс SL. SL будет стартом длятрала эквити.
//---
input int             TralTP_Dist     = 57;                 
input int             TralTP_Step     = 9;                 
//--- Трал для эквити включится автоматически, после закрытия баластных ордеров. Шаг ему не нужен.
input bool            Signalius       = true;
input ENUM_TIMEFRAMES TF_ATR          = PERIOD_M5;
input int             Per_MA          = 5;
input int             Level_Up        = 24;
input int             Level_Dn        = 24;
//---
input int             MagicNumber     = 1961;      
input int             Slippage        = 30;       

double step;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{


}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//|    Создаем функцию получения сигнала на указанном ТФ и баре      |
//+------------------------------------------------------------------+
int Signal()                   // Взяд простой similare
{
        int    iB   = 1;
        double Mash = iMA(NULL,0,Per_MA,0,0,4,iB) ;
        double Atr  = 0.2 * iATR(NULL,TF_ATR,Per_MA,iB);
        double Sell = 0;
        double Buy  = 0;
         
        if (Atr!=0)
          {
          Sell = 3.0 * (High[iB]  - Mash) / Atr;
          Buy  = 3.0 * (Low[iB]   - Mash) / Atr;
          }
          if (Sell >=  Level_Up) 
            return OP_BUY;
          
          if (Buy <= -Level_Dn) 
            return OP_SELL;
      return (-1);           // Иначе - НЕТ СИГНАЛА
}
//+------------------------------------------------------------------+
avatar

kvashnin007

  • 17 апреля 2022, 22:17
0
Слепил простое Тех. Задание.

Не знаю Ваших возможностей, но хотелось бы посильного участия.
Главное не стесняться. Если чего-то не можете, попробую поделиться тем, чем сам владею. Я хоть далеко не крут, но я учусь. Вместе веселее.

Я нуждаюсь в Вашей реакции, что бы понимать, на русском языке с Вами общаться, или на языке mql. Я и суржиком владею.
Если обидел, то не нарочно. Заранее извиняюсь. Слоны не только в Африке.

//+------------------------------------------------------------------+
//|                                                    НЕВАЛЯШКА.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

// Хотя теоретически не важно где и когда открывать ордер, но считаю, что если мы сразу пойдем и заработаем, мы будем молодцы. По-этому
// 1. При отсутствии СВОИХ ордеров и при получени сигнала (Direct), открываем ордер (Direct) стартовым лотом. Сигнал только для первого ордера.
// 2. SL равен 2*Step+SL. Стоп выставляем от БУ. Думаю лучше подобрать SL, а не брать середину следующей полосы (2,5*Step).
// 3. Когда весь уровень ордеров (OP_BUY или OP_SELL) закроется по стопу, запускаем трал эквити с указанной дистанции.
// 4. При прохождении цены против ордера на расстояние равное Step, открываем ордер противоположного направления лотом в 2 раза больше предыдущего.
// 5. При прохождении цены в направлении ордера растояния, равного Step, закрываем поллота (если получится) и тралим цену от БУ (ООР) ордера.
// Вот в принципе и все. Думаю, для повышения доходности сигнал сделать надо отключаемым. Кому как подойдет.

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{


}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int Signal()
{
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+

Ребята и девчата, привет.
Это я вам, со стороны наблюдающим. Вам то не скучно? Присоединяйтесь тоже.
avatar

kvashnin007

  • 17 апреля 2022, 19:42
0
Спасибо за волшебный пендель.
Сейчас составлю упрощенное ТЗ. Потом обсосем.
Если есть желание, попробуйте свое задание изобразить. Это не обязательно, но желательно. Я хоть пойму как Вы поняли основную идею.

Да и Вам будет польза. Приблизитесь к вершине правильного составления ТЗ.
avatar

kvashnin007

  • 17 апреля 2022, 18:40
+1
И еще, Руслан.
Что Вы боитесь потерять? Время? А Вы его здесь очень плодотворно проводите?
Мне от Вас ответ не требуется. Ответьте себе.

Будет познавательно, полезно и, обещаю, не скучно.

Так что, добро пожаловать! Вы в банде?
avatar

kvashnin007

  • 17 апреля 2022, 15:53
0
Руслан, добрый день.
Вы сильно ошибаетесь Тренд, да и еще затяжной, это наш друг. От него хороший заработок случается.
Видимо, Вы не внимательно изучили тему.
Флэт — наш враг, но при одном условии. Мы каким-то образом должны были угадать и ширину канала, и момент входа в рынок, а про лот вообще промолчу.
В противном случае мы просто теряем время. Правда, многие трейдеры этим балуются тоже, теряя время. Повторюсь, чем больше волатильность, тем больше мы зарабатываем.

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

kvashnin007

  • 17 апреля 2022, 15:49
+1
Есть система защиты от просадки и превышения ордеров.
Ну нет больше сил смотреть на просадку эквити больше 20% или залог превысил все разумные размеры. Включается Защита.
В принципе система одна для двух случаев.
Система либо мгновенно, что реже, либо в кратчайший срок ликвидирует проблему.
Причем с прогнозируемой (задаваемой) прибылью, извлеченной из просадки.

Эта тема будет освещена только в закрытом чате с участниками обсуждения.
avatar

kvashnin007

  • 17 апреля 2022, 11:35
+1
Депозит 10000$.
Стартовый лот 0.1.
просадка EQ 2310$. Это 23% от депо от открытия первого и до закрытия всех ордеров.
Заработок 780$.

И это за день.

За день полпроцента от дэпо, Карл!
avatar

kvashnin007

  • 17 апреля 2022, 11:26
0
Почему половина?
Настраивали бы Фибоначчи. По крайне мере, было бы пограмотнее.
avatar

kvashnin007

  • 16 апреля 2022, 20:49
0
Евгений, я не волшебник, а только учусь.
Могу, наверное, немного скорректировать советник.
Скажите, Вам нужно чтобы советник тупо сокращал все ордера или например только ордера с MagicNumber, которые Вы хотите задать?
avatar

kvashnin007

  • 16 апреля 2022, 20:41
+1
Итого за данный день.

Максимальная просадка была: Объем в лотах*Размер контракта/Кредитное плечо.
Грубо 63*100000/300=21000 баксов. Но мы же договорились, что лотами торговать будем попозже, а пока наш стартовый лот равен 0.01. Т.е. залог был порядка 210 баксов при плече 300. При плече 1000, залог был бы 63 бакса.
Максимальная просадка была минус 21ТР. 21ТР* Step 0.01*21*100=21$.
Тобишь мы просели на 231 бакс. При этом рисковали бы только 21$, ибо закрыв при максиальной просадке все ордера, мы бы из-за вернувшегося залога потеряли бы 21 бакс При 10000-ом дэпо это 0.21%. при просадке по эквити 2.3%. Многовато будет. Лот надо повышать. Но об этом потом.
Ну и ради чего все это? Где деньги, Зин?
Что получили. Трал стартанул от плюс 10.5ТР и 42 лота дали еще прибыль в 150 пунктов(+42ТР).
Итого считаем 0.105*100+0.42*150= 78 баксов. За день при таких просадке и риске. Неплохо, а?

Вроде сильно не ошибся. Хотя…
avatar

kvashnin007

  • 16 апреля 2022, 17:49
+1
Поговорим о деньгах. Как бы это не было противно.
Рассмотрим предыдущую денежную котировку и договоримся об условностях.



Итак.
1. треугольник с цифрой — направление ордера и и размер его лота/.
2. Шаг сетки Step, примем 100 пунктов.
3. Уровни покупок — buy и продаж — sell.
4. Прибыль считаем в условных единицах ТР=1*lot*Step. 1_лот*1_пункт=1$.

Поехали.
В точ.2 имеем минус 1ТР и лот задействованной маржи. Открываем еще 2 лота.
т.3 имеем минус 2ТР и 3 лота задействованной маржи. Открываем еще 4 лота.
т.4 имеем минус 5ТР и 7 лотов задействованной маржи. Открываем еще 8 лотов.
т.5 имеем убыток 0 и 15 лотов задействованной маржи.
т.6 имеем минус 10ТР и 15 лотов задействованной маржи. Открываем еще 16 лотов.
т.7 имеем минус 21ТР и 31 лот задействованной маржи. Открываем еще 32 лота.
т.8 имеем убыток 0 и 63 лота задействованной маржи.
т.9 имеем уже плюс 21ТР и 63 лота задействованной маржи.
т.10, для примера, возьмем на середине канала. От нее будем тралить прибыль. Т.е. минимальную прибыль в 10,5*ТР мы уже ограничили. Спим спокойно.
не забываем закрыть все продажи. А это 21 лот задействованной маржи.
т.11 опять же для примера, равна шагу. Здесь сработал трал для 42 лотов покупок.

Пора считать бабули.

Другой раз посчитаем.
avatar

kvashnin007

  • 16 апреля 2022, 16:48
+1
Да, мальчишки и девчонки, для всех участвующих в обсуждении и разработке «народного» советника я открою приватный чат, где расскажу (ну и закодировать попробуем, если силенок хватит) о своем видении страховки от чрезмерной просадки и перебора количества ордеров. Ну не любят брокеры, когда ордеров много. Им бы один на всю котлету и, желательно, не в ту степь.

Здесь приветствуются все, не зависимо от знаний и умений. Иногда самая «глупая» мысль становится вишенкой на торте. Запишите. Пригодится.

И еще. Очень хотелось бы, чтобы программисты любого уровня, без ложной скромности, приняли посильной участие. Кто только в начале — будет учиться, кто просто послабже — подтянется, кто посильнее — поможет другим и заработает плюс в карму. Здесь не место для замера причиндалов. Просто совместная работа.
avatar

kvashnin007

  • 16 апреля 2022, 15:29
0
Сразу предупреждаю, лотами я здесь раскидываюсь для упрощения.
Возьмите за один лот лот размером 0.01. Спокойнее будет. Проверено.

Немного увеличим.



Какой-нибудь индюк типа similar в точ.1 скажет: «Родной, продавай.» Ну мы одним лотом и продали. Индюк же это наше все. Так думают многие.
А цена пошла вверх на величину нашего терпения. Нет, будем покупать. Открыли в точ.2 2 лота на покупку. Про закрытие села я уже говорил. Не наш вариант. А цена-зараза возьми да и вернись на уровень sell в точ.3. Ну что же, продаем 4 лота. Ну а цена,… сами знаете. В точ.4 открываем покупки 8 лотов. Ну стратегию мы выбрали такую.
Цена сжалилась и дошла до уровня нашего безубытка к точ.5. 15 лотов, полдня и в нулях. Нет, подождем хоть небольшой прибыли. А цена взяла, развернулась и дошла до уровня buy. Эквити просело, убыток растет, надо что-то делать. А мы… спать пошли. Ну а я на море. А цена-зараза к sell прошла. Убыток возрос до максимального за день. Продаем 16 лотов. Цена издевается, уперлась в точ.7. Эквити еще ниже Можем выровнять позиции в замке и пойти оттачивать мастерство. За это время свопы добавят просадку, но не добавят уверенности, что Вы все правильно делаете. А я по стратегии куплю 32 лота. Пару часов и я уже в нулях. 63 лота, день коту под хвост и спать охота. Многие бы сдались, закрылись бы при + 11 центах и пошли спать. А вот робот…
А робот дождется, когда прибыль достигнет заложенную, и в точ.9 по своим правилам, например, откроет трал эквити от точ.10, при этом закрыв балласт (21 лот продажи). Оставшиеся же в рынке 42 лота на покупку, закрывшись по тралу, например в точ.11 принесут шикарную прибыль. Проснувшись утром, Вы сами напроситесь отвести дочку (ну а я лапочку-внучку) в садик, а кто и в школу.

О прибыли в другой раз.
avatar

kvashnin007

  • 16 апреля 2022, 14:31
0
Ладно, тут один посетитель классную идею подбросил и денег не попросил.
Viva Cesar.

Никто на моих картинках не видит ДЕНЕГ.
Взял линейный график каких-то там (не важно каких) ДЕНЕГ. Один лот, один пункт… Короче, завтра на Майами не поеду, внучку в садик вести.

Решил показать и рассказать на примере денег. Думаю, так понятнее будет.

avatar

kvashnin007

  • 16 апреля 2022, 14:18
0
Ни одного корректного советника в этой ветке не обнаружено.
avatar

kvashnin007

  • 16 апреля 2022, 11:58
0
bool BarCL() булевая функция,
а выдает номер бара return(iBarShift(Symbol(),0,t,true));

Хитро задумано.
avatar

kvashnin007

  • 16 апреля 2022, 11:56
0
При чем здесь шаблон? Просто набор готовых функций. С такими темпами заказов, по-другому не получится. А вот на счет «выдумывать и заморачиваться за бесплатно не охота» тут я соглашусь. А кому сильно то охота? Готовые функции кроме явных плюсов, имеют и минусы. Люди разучаются думать. Некогда.
avatar

kvashnin007

  • 16 апреля 2022, 02:43