Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2094

 
А в самом деле, почему не исходник? Тайна интеллектуальной собственности, да? :))))))))
 
Alexey Viktorov #:

Виталий, я не понял почему надо переключать график на D1. Чушь какая-то…

Почему вы так заполняете массивы

Разве не проще будет так

И самое главное… Пора уже давно забыть, как страшный сон, функцию int start()… Пора уже научиться пользоваться правильными именами функций…

Алексей! Во-первых, спасибо за подсказку. Я использую Notepad++  c подсветкой синтаксиса. Судя по тому, что CopyHigh() и CopyLow() у меня не подсветились в этом редакторе, я этими функциями ни разу за свои уже более чем 15 лет программирования так и не воспользовался. Да, так действительно проще. Теперь так и буду делать. Знаете, умные книжки говорят, что 20 процентов знания языка достаточно, чтоб решить 80 процентов задач программиста. Я до сих пор не знаю ВСЕХ нюансов MQL4 - использую то, что требуется, да и всё. Знаете, я даже не замечал ранее, что есть 2 такие хорошие функции :). Так что спасибо. Вам +1 в карму, мне +2 полезняшки в копилку :) Во-вторых, код был написан в 2007 году (это видно в коде скрипта, удаляющего линии) - я просто подправли старый код под новые условия, да и всё. :) В третьих, согласен, нужно привыкать к новым правильным именам функций. Опять же - просто подправил старое. Старт работает - да и Бог с ним. Но привыкать нужно, ни куда не денешься. :)

 
Vitaly Murlenko #:

…, мне +2 полезняшки в копилку :) …

Там полезняшек гораздо больше двух. Есть ещё копирование открытия, закрытия и даже OHLC сразу в один массив структур. Только жаль, что математические функции не работают со структурами…

С Рождеством Христовым.

 

 

 
Tretyakov Rostyslav #:

Проверяйте

Доброго дня всем!

Признаюсь, с некоторым трепетом сегодня открывал сайт с мыслью – ответят? Нет?

Ответили!

Спасибо большое, Ростислав!

Поставил, проверил – «летает»! Отлегло в душе!

Все отлично!

 

 Теперь и правда буду ждать от Вас исходник – ведь в этом екзешнике даже цвет не поменяешь. 

И вообще – исходник можно изменять под свои «хотелки», пробовать, экспериментировать, учиться, развиваться, если хотите.

И мне лично это всегда помогало. Хоть чему то научился, что то понял.

Поэтому я – за исходники!

 

В отношении интеллектуальной собственности, –

·         так обычному трейдеру она просто не нужна,

·         а если программист захочет «увести» часть кода – ведь все равно «уведет». Декомпиляторы никто не отменял. Да и мне, «чайнику», представляется, что грамотный программист и специалист по данному языку программирования, всегда «вскроет» код, написанный на этом языке. Майкросовт борется, борется с пиратством, а KMSAuto Net как жило, так и живет своей жизнью. И пиратство процветает!

·         И третье – воровство – оно и здесь воровство! Оно всегда осуждаемо в обществе! Но это моральная субстанция, ценность! И далеко не все поддерживают в своем поведении эти ценности! А люди воровали и будут воровать.

Блин! Что то в философию ударился. Простите – захламляю ветку…

  С праздником, - всех христиан, – с Рождеством Христовым!

  Ростислав! Еще раз – большое спасибо!

И жду исходник!

С уважением!

 
Kedrov #:

Доброго дня всем!

Признаюсь, с некоторым трепетом сегодня открывал сайт с мыслью – ответят? Нет?

Ответили!

Спасибо большое, Ростислав!

Поставил, проверил – «летает»! Отлегло в душе!

Все отлично!

Пользуйтесь

Файлы:
 
Tretyakov Rostyslav #:

Пользуйтесь

Спасибо большое, Ростислав!

Удачи!

С уважением

 

Здравствуйте! Вопрос к специалистам.

Озадачился как сделать советник двуязычным: определил #define COUNTRY_LANG "Russian" и на этом построил функцию которая в зависимости от языка терминала возвращает строку либо на русском, либо на английском. Всё хорошо в теле советника - определения, комментарий, подсказки.

Но как сделать двуязычными названия параметров советника (extern bool param=true; //название параметра) - функцию отсюда не вызовешь. Подумал сделать два списка параметров - но как переключаться между списками в зависимости от языка терминала.

Что-то в голове шевельнулось когда перечитывал справку по #ifdef-#endif.

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

 
Alexey Smolyakov #:

Здравствуйте! Вопрос к специалистам.

Озадачился как сделать советник двуязычным: определил #define COUNTRY_LANG "Russian" и на этом построил функцию которая в зависимости от языка терминала возвращает строку либо на русском, либо на английском. Всё хорошо в теле советника - определения, комментарий, подсказки.

Но как сделать двуязычными названия параметров советника (extern bool param=true; //название параметра) - функцию отсюда не вызовешь. Подумал сделать два списка параметров - но как переключаться между списками в зависимости от языка терминала.

Что-то в голове шевельнулось когда перечитывал справку по #ifdef-#endif.

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

Ха, прикольная задачка. Тоже задумывался поработать над этим. Пока читал Ваш пост, кое-какие мысли возникли. Сейчас проведу эксперимент. В любом случае рассажу об идее.

P.S.

Не прокатило. Компилятор ругнулся, мол, конструкция if запрещена в глобальной области видимости. А идея была вот такая:

#property copyright ""
#property link      ""
#property version   "1.00"
#property strict
// ========= Язык пользовательских параметров =============
enum typeprofit{
  LangNULL=0,// None Language
        Lang1=1,    // Russian
        Lang2=2 // English
        
};
input typeprofit Language=0;// Coose Language

if(Language==1){
        input double StartLot=0.1;// Лот стартового ордера
}
if(Language==2){
        input double StartLot=0.1;// Lots for start orders
}

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit(){
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick(){
}
//+------------------------------------------------------------------+
 
Vitaly Murlenko #:

Ха, прикольная задачка. Тоже задумывался поработать над этим. Пока читал Ваш пост, кое-какие мысли возникли. Сейчас проведу эксперимент. В любом случае рассажу об идее.

P.S.

Не прокатило. Компилятор ругнулся, мол, конструкция if запрещена в глобальной области видимости. А идея была вот такая:

В том то и дело, в этом запрете. Я тоже сразу такой вариант попробовал. Видимо надо колдовать с препроцессорами.

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