Ошибки, баги, вопросы - страница 3123

 
x572intraday #:

 Кстати, о поиске бесплатного кода.

 Попробуйте предположить, в каком процентном соотношении программы ищут в помощь прибыльному трейдингу либо ради изучения кода. Лично я полагаю, что перевес будет в сторону первых, так как программистами в этой области видят себя намного меньше ищущих.

1. Уверен, что если кто-то и ищет что-то в кодобазе, то исключительно для применения в своих разработках, т.е. ищут код для кода. и качество и понятность кода огромное значение имеет в данном случае. Лично я, сталкиваясь с новой более-менее сложной задачей, которую ещё сам не решал, лезу в кодобазу, если там нет вменяемого решения, делаю сам. Так эффективнее, но с тем нюансом, что я возьму только почти идеальный код, или который легко допилить до почти идеального. Лапшу, пусть в итоге как-то и работающую, никогда не возьму.

2. Виталий вам всё верно расписал насчет минусов кода, а вы смешно так как в детском саду оправдываетесь. Вам хотелось побыть в центре внимания и показать свою упёртость?)

 
Aleksey Mavrin #:

1. Уверен, что если кто-то и ищет что-то в кодобазе, то исключительно для применения в своих разработках, т.е. ищут код для кода. и качество и понятность кода огромное значение имеет в данном случае. Лично я, сталкиваясь с новой более-менее сложной задачей, которую ещё сам не решал, лезу в кодобазу, если там нет вменяемого решения, делаю сам. Так эффективнее, но с тем нюансом, что я возьму только почти идеальный код, или который легко допилить до почти идеального. Лапшу, пусть в итоге как-то и работающую, никогда не возьму.

2. Виталий вам всё верно расписал насчет минусов кода, а вы смешно так как в детском саду оправдываетесь. Вам хотелось побыть в центре внимания и показать свою упёртость?)

 1. Интересная уверенность. Попробую предположить её истоки. Вы, поди, считаете, что раз CodeBase содержит только бесплатные продукты, то они априори не могут быть полноценными для прибыльной торговли, поэтому понимающие это пользователи (не программисты, а те, кто решил подзаработать трейдерством) сразу ломают копилку с кровными и идут в Market покупать платное, якобы готовое для автозаработка на бирже? Если это и есть Ваше мнение, то я с ним не согласен. Достаточно привести основную причину: помимо прочих, в трейдеры ломится много небогатых и даже вовсе халявщиков, которые дай Боже скопили на первый центовый депозит, но уж никак не программку из Market'а за десятки $$ минимум. И они также понимают, что чем дешевле программулька из Market'а, тем, вероятнее всего, меньше от неё толку, а исходный код вообще может быть недоступен, поэтому что? — правильно, лучше уж порыться в CodeBase — авось повезёт выловить что-то относительно дельное... а если вдруг очень припрёт улучшить её, то вот он сырой код — изучай и совершенствуй (на что пойдут далеко не все). По-моему, предубеждение, будто фри софт хуже, чем платный — удел тех, кто не копался тщательно в CodeBase. Это то же самое, что сказать, будто платная серверная часть Metatrader'а круче, чем клиентская бесплатная. Понятно, что здесь бесплатность клиента обеспечивается финансированием за счёт платности серверной части — разработчик-то один и тот же и может себе позволить. Но если смотреть шире, то в мире софта вообще полно фри аналогов платного с очень неплохим функционалом и качеством. Вместе с тем, возвращаясь в экосистему софта для торговли, нужно понимать, что в бесплатный раздел грааль автоторговли никто не выложит. Его и в Market-то за большие деньги выложат едва ли. Но если не гнаться за граалем, а искать хорошее подспорье хотя бы для ручной торговли, то фри софт не уступает многим амбициозным платным потугам.

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

 2. Виталий совершенно верно подметил некоторые недочёты, но по итогу влепил пару в качестве оценки за код. В учители информатики его бы близко не подпустили. В отличие от него, я стараюсь быть более рассудительным и аргументированным. Пару ставят за полное незнание ЯП, либо за настолько плохое его знание, что код недописан, либо написан, но он у бедолаги не компилируется (или не интерпретируется) без ошибок и в итоге не запускается, либо запускается, но выдаёт дичь. Трояк можно поставить, если в базовом смысле готовый продукт работает как задумывалось, но глючно и нестабильно, заметно медленно, функционал предельно скромен и нет настроек, когда они явно нужны (хотя это больше относится не к исходному коду, а к результату работы). Четвёрку уже можно ставить при мелких недочётах: недостаточную оптимизированность по скорости, плохую читаемость, неотформатированность, недокументированность кода. Если бы код оказался инопланетно-заумным или шизофренически несуразным, но программа прекрасно и стабильно работала, я бы не взял на себя ответственность ставить низкую оценку — разве что четвёрку как минимум. Если всех обучать по стандарту, не давая проявлять индивидуальность, легко можно задушить талант.

 Двойка Виталика — явный перегиб и не мой случай, он прав в неадекватных моему случаю условиях.

 
Aleksey Mavrin #:

1. Уверен, что если кто-то и ищет что-то в кодобазе, то исключительно для применения в своих разработках, т.е. ищут код для кода. и качество и понятность кода огромное значение имеет в данном случае. Лично я, сталкиваясь с новой более-менее сложной задачей, которую ещё сам не решал, лезу в кодобазу, если там нет вменяемого решения, делаю сам. Так эффективнее, но с тем нюансом, что я возьму только почти идеальный код, или который легко допилить до почти идеального. Лапшу, пусть в итоге как-то и работающую, никогда не возьму.

 Вот как раз для таких, как мы, программистов-искателей я и предлагаю ввести дополнительное голосование за исходный код в виде отдельного рейтинга. MQL5.community — не какая-нибудь забегаловка-однодневка и не софт-помойка с пятью звёздочками (где голосуют за что только можно в отношении готового софта, но никак не за исходный код), а серьёзная площадка как для трейдеров, так и для программистов, известная не только в Рунете, но и на весь Интернет и далеко за его пределами. Вот как ещё искать качественные сырцы без рейтинга, м?

О проекте MQL5.community
О проекте MQL5.community
  • www.mql5.com
MQL5.community - это описание языка программирования MetaQuotes Language 5, статьи по самой различной тематике, форум, программы автотрейдинга, написанные на MQL5 c их использованием в торговой платформе MetaTrader 5
 
x572intraday #:

Перенесите свои жалобы на низко оцененный ваш код в обсуждение вашего кода.

Сами вряд-ли сможете перенести, попросите барабашку. Хватит уже своё творение обсуждать в общей полезной теме.

 
Очень печально и неправильно, что нет возможности переголосования в КБ.

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

 
 Почему на серверах MQ по выходным нет столь доступных ныне криптокотировок? Не проблема переключиться на другого поставщика 24/7, но чем MQ хуже? Не помешало бы...
 

Валидатор маркета сыпет это 

test on EURUSD,H1 (hedging) not synchronized with trade server strategy tester report 462 total trades

Билд МТ 5 3134

 

Прошу помочь разобраться с типом построения DRAW_FILLING

Почему-то одна пара буферов работает нормально, а вторая отказывается принимать цвет назначаемый разными способами.


Даже пытался оставить два буфера и соответственно одно построение и результат не изменяется. Если по high строить заполнение, то цвет нормальный, а по low цвета нет.

Вот код

#property indicator_chart_window
//---
#property indicator_buffers 4
#property indicator_plots   2
#property indicator_type1   DRAW_FILLING
#property indicator_label1  "Line UP"
#property indicator_color1  clrDarkOrchid
#property indicator_type2   DRAW_FILLING
#property indicator_label2  "Line DN"
#property indicator_color2  clrMagenta

/****************indicator buffers****************/
double upLine[],
       upWidth[],
       dnLine[],
       dnWidth[];
/**************Custom indicator initialization function**************/
int OnInit()
 {
  SetIndexBuffer(0, upLine);
  SetIndexBuffer(1, upWidth, INDICATOR_CALCULATIONS);
  SetIndexBuffer(2, dnLine);
  SetIndexBuffer(3, dnWidth, INDICATOR_CALCULATIONS);
  //PlotIndexSetInteger(1, PLOT_SHOW_DATA, false);
  //PlotIndexSetDouble(1, PLOT_EMPTY_VALUE, -1.0);
  //PlotIndexSetInteger(2, PLOT_SHOW_DATA, false);
  //PlotIndexSetInteger(2, PLOT_LINE_COLOR, clrYellow);
  //PlotIndexSetDouble(2, PLOT_EMPTY_VALUE, -1.0);
  return(INIT_SUCCEEDED);
 }/******************************************************************/

/****************Custom indicator iteration function*****************/
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[])
 {
  int count = 0, limit = prev_calculated > 0 ? rates_total-1 : 0;
  if(prev_calculated == 0)
   {
    ArraySetAsSeries(time, true);
    ArraySetAsSeries(high, true);
    ArraySetAsSeries(low, true);
    ArraySetAsSeries(upLine, true);
    ArraySetAsSeries(upWidth, true);
    ArrayInitialize(upLine, 0.0);
    ArrayInitialize(upWidth, 0.0);
    ArraySetAsSeries(dnLine, true);
    ArraySetAsSeries(dnWidth, true);
    ArrayInitialize(dnLine, 0.0);
    ArrayInitialize(dnWidth, 0.0);
    for(int i = limit; i < rates_total; i++)
     {
      int arrMax = ArrayMaximum(high, i, 11); //  ищем максимум в 11-ти барах
      if(arrMax-i == 5)                       //  если максимум средний из 11-ти баров
       {
        for(int j = arrMax; j > fmax(arrMax-5, 0); j--)
        {
         upLine[j] = high[arrMax];
         upWidth[j] = high[arrMax]-_Point*2;
        }
       }
      int arrMin = ArrayMinimum(low, i, 11); //  ищем минимум в 11-ти барах
      if(arrMin-i == 5)                      //  если минимум средний из 11-ти баров
       {
        for(int j = arrMin; j > fmax(arrMin-5, 0); j--)
        {
         dnLine[j] = low[arrMin];
         dnWidth[j] = low[arrMin]+_Point*10;
  //PlotIndexSetInteger(3, PLOT_LINE_COLOR, clrYellow); // Это тоже не помогает…
        }
       }
     }
   }
//---
  Comment("\n"
         );
  return(rates_total);
 }/*******************************************************************/

Может в каком-то .ini файле застряла какая настройка? Может его удалить, да я не знаю где искать этот файл… Я уже не знаю что и думать.

 
Народ, день добрый, почему при открытии демо стчета на любую сумму, баланс 0
 
Alexey Viktorov #:

Прошу помочь разобраться с типом построения DRAW_FILLING

Почему-то одна пара буферов работает нормально, а вторая отказывается принимать цвет назначаемый разными способами.


Даже пытался оставить два буфера и соответственно одно построение и результат не изменяется. Если по high строить заполнение, то цвет нормальный, а по low цвета нет.

Вот код

Может в каком-то .ini файле застряла какая настройка? Может его удалить, да я не знаю где искать этот файл… Я уже не знаю что и думать.

У DRAW_FILLING два буфера для построения

Причина обращения: