Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
ТОП СООБЩЕНИЙ
30.06.2016, 18:19
Лучший ответ
Выплачено: 24049 RUB
Сеичас для начала скачаем и установим Visual Studio от маикрософт.
Это просто, полностью легально и совершенно бесплатно.
В любом поисковике нужно вбить "скачать Visual Studio" и переити на саит ...
[IMG]C:\Users\Антон\Documents\Lightshot\Screenshot_4[/IMG]
06.07.2016, 11:05
Лучший ответ
Выплачено: 24049 RUB
Осталься последнии шаг затереть то что мы нарисовали. В метод обработчик события "Клик_кнопки" добавте следующии код.
MQL код:

Список_точек = new List<Point>();
Список_точек.Add(new Point(0, Height / 2));
Invalidate();

В первои строке создоеться новыи обект списока старыи автоматическии уничтожаеться и память его освобождается. Во второи строке мы уже в новыи список опять добавляем первую точку.Ну и перерисовка.
Наш список это по сути буффер индикатора или скрипта языка MQL . Координата X это индекс бара, координата Y котировка.
12.12.2016, 18:39
Лучший ответ
Выплачено: 28811 RUB
Сообщение от АнтонР85 Посмотреть сообщение
Тут вы ошибайтесь по нему очень много книг, видео и так далее. Лучшая книга которую я читал по C++ (доходчиво и постепенно усложняется) смотрите скрин.
Наверное, я просто искал конкретно видеокурсы, точно уже не помню... какую-то версию того же специалиста смотрел, но что-то так и не пошло. А книга по C#, по какой вы учились? Скрин необязательно, просто скажите как называется и какой автор, плиз... потому что в данный момент и правда начинаю подумывать о C# (мотивация для меня - это все, не хочу ее снова зарубить в самом начале)
13.12.2016, 08:29
Лучший ответ
Выплачено: 24049 RUB
Так же при установки точки "останова" можно кликнуть по сплывающей подсказке и выбрать параметры. Если выбрать "условие", то точка останова сработает только при определенном условие. Это хорошо иллюстрирует цикл впишем условие i == 10 поток управления остановиться когда i будет равна 10. Для чего режим "Действия" я честно говоря не знаю не приходилось его использовать (так как тут знать или запомнить все практически не возможно) я изучаю постепенно когда мне это надо для конкретной задачи.

Нажмите на изображение для увеличения.

Название:	Screenshot_38.png
Просмотров:	1
Размер:	64.8 Кб
ID:	26058967

Нажмите на изображение для увеличения.

Название:	Screenshot_39.png
Просмотров:	1
Размер:	63.4 Кб
ID:	26058968
14.12.2016, 11:01
Лучший ответ
Выплачено: 24049 RUB
Сейчас я показал общие операторы которых достаточно для управление потоком выполнение. В круглых скобках(где происходит проверка условия) оператора if нельзя выполнять операцию присваивания. Выражение в итоге должно быть приведено к булевому значению то есть например
MQL код:

(i >= 10 && (i < 20 || i != 0))
Сделано это для того что, например вы думали записать i == 0, а записали i = 0, либо наоборот(то есть задумались и просмотрели). Эту ошибку крайне сложно обнаружить(если оба выражения будут корректны) поэтому компилятор просто не разрешает так сделать. Я когда начинал только кодить на mql(еще до C#) случайно сделал такую ошибку и чуть все волосы себе не повыдергивал. Не мог понять кто сходит с ума я или машина. Оказалось моя невнимательность, но надо отдать должное что при большом объеме кода найти такую ошибку крайне не просто, а может и невозможно и тогда придется все переписывать заново. С циклами все так же, единственное если есть зацикливание(вечный цикл) дальше по тексту(как у меня) он будет выдавать предупреждение "Обнаружен недостижимый код"

Нажмите на изображение для увеличения.

Название:	Screenshot_56.png
Просмотров:	1
Размер:	65.6 Кб
ID:	26059909
01.02.2017, 07:44
Лучший ответ
Выплачено: 24049 RUB
Сообщение от Gold Посмотреть сообщение
Вы можете расположить картинки в тексте с помощью скрепки в расширенном режиме ответа.
Спасибо! Хорошо в следующий раз буду знать.
  • #1 Свернуть

    Стороннее приложение на C#

    Всем привет! Посмотрел и не нашел в этом разделе не чего о C#, интересуюсь этим языком и буду рад всем кто захочет пообщаться на эту тему.
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Не много пред истории. Заинтересовался рынком я года три тому назад прошол стандартныи путь рядого треидера. Тоесть как у всех в поиске "чуда-индикатора" и легких денег. Но к большому сожелению все без результатно. Потом пришол к мнению (личное мнение) что только волны Р.Н. Эллиота и тех.анализ мне поможет. Конечно не отрицаю что с помощью индикаторов не возможно зароботать, но там проблема что только два режима. Груба говоря вверх и вниз, с третьем режимом- продолжения тренда при локальным откате сложно.
    Мое личное мнение со мнои многие здесь могут поспорить что зароботать только тех.анализом(волны Эллиота, Ганн, классически тех.анализ и т.д и т.п)
    Кто серезно интересуються волнами по любому читал Гленна Нилли в его книги приводяться здравые мысли. И именно его книга 80-годов не расходиться с идеями Р.Н Эллиота(это опять же мое личное мнение) но запомнить и применять на практике, да еще на разных валютных инструментах и на малых временных периодах не реально. Хотя теоретически это может принести огромную потенциальную финансовую отдачу.
    Единственный способ применить все его правила (конечно отредактированные нами, на предмет целесообразности) это только закодеть один раз.
    Но язык mql это прикладной язык программирования даже с подержкой библиотек C++ что то подобное реализовать достаточно сложно нужна полноценная среда разработки .
    Меня вдохновил на разработку своего приложения некий "Немец" обитатель этого форума. Он своял прогу для разметки волн она конечно была примитив и у нее был главныи недостаток
    проблема с обновлением данных(как и у эл вафе). Но все ровно это меня вдохновило на изучения профессионального языка и возможности создания своеи проги которая работает как хочу я.
    Сразу хочу сказать что я не профи , а так любитель, но я хочю помочь начать, сделать первыи шаг всем кто думает также как я.

    Комментарий

    • #3 Свернуть

      Сразу хочу сказать что делать советник или индикатор на C# нет смысла. Для этого среда Mql предостовляет все возможности. Единственное только если логика на столько сложна что требует использовать стороннию dl.
      Так как C#, mql и C++ и "си" подобные языки то код для простых операции и операторов полностью одинаков то есть операторы : if, else, do, while, for, breek,continue, switch - полностью индентичны. Единственное там где идет проверка условия требуеться логическая переменная типа bool либо вычесляемое выражение которое приводить к типу bool.
      Пример:
      MQL код:
       if (0 == true) {    } // так будет ошибка


      int переменная = 1;
      while(переменная > 0 )// так выражение вычисляеться и приводиться к типу bool
      {

      }
      Последний раз редактировалось Gold; 01.02.2017, 08:36.

      Комментарий

      • #4 Свернуть

        Сеичас для начала скачаем и установим Visual Studio от маикрософт.
        Это просто, полностью легально и совершенно бесплатно.
        В любом поисковике нужно вбить "скачать Visual Studio" и переити на саит ...
        [IMG]C:\Users\Антон\Documents\Lightshot\Screenshot_4[/IMG]

        Комментарий

        • #5 Свернуть

          Переходим : Загрузки->Все фаилы для скачивания->Visual Studio 2015 ->Express 2015 для Windows Desktop это легко весная бесплатная среда потом если будет интересно можно устоновить
          Visual Studio Community 2015 это тоже бесплатная но уже более профессиональная среда хотя библиотека классов NET Framework и компилятор одинаковы.
          Ну думою процесс самои установки объяснять не надо, единственное может потребоваться скачать и установить пакет обновлении. При первом запуске он попросит сделать вход нажмите "не сеичас"

          Комментарий

          • #6 Свернуть

            Всем привет. Запустим визуал студио откроеться начальная страница VS

            Нажмите на изображение для увеличения.

Название:	Screenshot_5.png
Просмотров:	1
Размер:	151.0 Кб
ID:	25947906

            Дальше нужно выбрать создать проект->Визуал C#->консольное приложение. В поле "имя" можно как то назвать свои проект.

            Нажмите на изображение для увеличения.

Название:	Screenshot_6.png
Просмотров:	1
Размер:	119.4 Кб
ID:	25947907

            Нажимаем кнопку "OK".
            Среда VS сгенирировала простеиший шаблон, в котором только один класс и один метод Main (точка входа) .

            Нажмите на изображение для увеличения.

Название:	Screenshot_7.png
Просмотров:	1
Размер:	72.2 Кб
ID:	25947908

            В метод Main добавте строку
            MQL код:
            Console.WriteLine("Здраствуи форум mt5");
            как на скрине и нажмите кнопку пуск.

            Нажмите на изображение для увеличения.

Название:	Screenshot_8.png
Просмотров:	1
Размер:	73.9 Кб
ID:	25947911

            Мелькнувшее окно консоли говорит о том что ваша программа выполнилась.
            Только вы не успели прочитать что там написано. Для этого добавьте еще одну строку
            MQL код:
            Console.ReadKey();


            Нажмите на изображение для увеличения.

Название:	Screenshot_9.png
Просмотров:	1
Размер:	75.4 Кб
ID:	25947913

            Ну что же кто это повторил за мнои поздравляю, вы написали первую программу на C#. Это начало всех начал.
            Последний раз редактировалось Gold; 01.02.2017, 08:41. Причина: Оформление поста

            Комментарий

            • #7 Свернуть

              У меня есть немного свободного времени поэтому пойдем дальше. Нашу прогу мы будем на самом простом фреимворке с пользовательским интерфеисом WinForm он черезвычаино прост по сути это управляемыи клон Win32 С++. Конечно он уже морально устарел и некоторые фокусы в основном по части графики сложно или вобще не возможно реализовать но конкретно для нас самое то.
              Если кто захочит двигаться дальше, то конкретный фреимворк следующего покаления пользовательского интерфеиса это WPF. Графику отрисовывает движок языка XAML, он опирается на Directx (Прямои), но в итоге там есть свои сложности(логические пиксили, нет потдержки MDI и тд). И последний фреимворк от маикрософт это UWP (универсальное приложение windows 8.1 и выше) . Там много отличий в плане разработки, Майкрософт усиленно продвигает свои язык(C#) . Попросту сказать разработка кода идет на обычном управляемом C#, но компилятор генерирует машинныи код, то есть расстояние в плане прозводительности между C# и C++ стремительно сокращаеться. К сожелению пока UWP не поддерживает весь Net.framework только то что решил Майкрософт но будем надеяться что все наладиться.

              Комментарий

              • #8 Свернуть

                Запустим ВС->Начальная страница->Создать проект->Выбираем приложение Windows Form->Как то его назовем->"OK"

                Нажмите на изображение для увеличения.

Название:	Screenshot_1.png
Просмотров:	1
Размер:	132.5 Кб
ID:	25947929

                У нас должно получиться как то так

                Нажмите на изображение для увеличения.

Название:	Screenshot_2.png
Просмотров:	1
Размер:	51.8 Кб
ID:	25947930

                Здесь мы видим фрейм (главную форму) у нее с помощью мыши можно менять размеры. Откройте вкладки "Панель инструментов" и "Окно свойств" их открыть можно щелкнув на кнопку "вид"

                Нажмите на изображение для увеличения.

Название:	Screenshot_12.png
Просмотров:	1
Размер:	124.7 Кб
ID:	25947931

                Перетащите с панели элементов кнопку(Button) на форму. В окне "свойства" сверху в раскрывающемся списке выберите button1. Найдите свойство Text вместо button1 напишите что нибудь
                например: "Нажми меня". Найдите свойство "Name" и измените на "Кнопка"

                Нажмите на изображение для увеличения.

Название:	Screenshot_13.png
Просмотров:	1
Размер:	123.8 Кб
ID:	25947936

                В окне "своиство" выберите Кнопка и нажмите на "молнию". Здесь находятся стандартные события для текущего элемента управления. Найдите события MouseDown и рядом в поле впишите "Клик_мыши" и кликните по любой части экрана.

                Нажмите на изображение для увеличения.

Название:	Screenshot_14.png
Просмотров:	1
Размер:	119.0 Кб
ID:	25947942
                Последний раз редактировалось Gold; 01.02.2017, 08:58. Причина: Оформление поста

                Комментарий

                • #9 Свернуть

                  Если вы еще не перешли к коду то нажмите на правую кнопку мыши и выберите "Перейти к коду". Там вы увидите класс нашего окна "Form1" в котором есть конструктор и обработчик события нажатия нашей "Кнопки".

                  Нажмите на изображение для увеличения.

Название:	Screenshot_15.png
Просмотров:	1
Размер:	84.7 Кб
ID:	25947946

                  В обработчик события добавьте следующий код
                  MQL код:
                  this.Кнопка.Text = "Привет!!!";//Текст кнопки
                  this.BackColor = Color.Beige; //Цвет фона окна
                  Запустите приложение нажав кнопку "Пуск" -> нажмите на на нашу кнопку на форме.

                  Нажмите на изображение для увеличения.

Название:	Screenshot_16.png
Просмотров:	1
Размер:	88.7 Кб
ID:	25947948

                  Должно получиться вот так

                  Нажмите на изображение для увеличения.

Название:	Screenshot_17.png
Просмотров:	1
Размер:	89.3 Кб
ID:	25947949

                  И напоследок что бы наше приложение походило на нормальное приложение например на "Терминал" воспользуемся готовым шаблоном . На верхней панели VS нажмем "Проект"->выберем "добавить новый элемент"-> найдем "Родительская форма MDI" -> снизу в поле имя впишем "Родительская Форма" ->"Добавить"

                  Нажмите на изображение для увеличения.

Название:	Screenshot_18.png
Просмотров:	1
Размер:	122.3 Кб
ID:	25947951

                  Откроем наш предыдущий класс Form1 поставим курсор на это имя нажмем правую кнопку мыши, выберем "Переименовать" введем "Дочернее_Окно" (если есть какие то галочки в окне переименовать снимаем все) -> применить.


                  Нажмите на изображение для увеличения.

Название:	Screenshot_19.png
Просмотров:	1
Размер:	96.5 Кб
ID:	25947963

                  В конструкторе нашего нового класса "Дочернее_Окно" нужно после вызова метода
                  MQL код:
                  InitializeComponent();
                  прописать
                  MQL код:
                  this.TopLevel = false;



                  Нажмите на изображение для увеличения.

Название:	Screenshot_20.png
Просмотров:	1
Размер:	92.6 Кб
ID:	25947960
                  Последний раз редактировалось Gold; 01.02.2017, 08:59. Причина: Оформление поста

                  Комментарий

                  • #10 Свернуть

                    Перейдем к свойствам в визуальном конструкторе "Родительской_Формы" там найдем свойство "WindowState" и установим его в "Maximized". Перейдем к коду "Родительской_Формы" найдем событие ShowNewForm. И заменим в объявлении типа и в вызове конструктора "Form" на нашу форму "Дочернее_Окно"

                    Нажмите на изображение для увеличения.

Название:	Screenshot_21.png
Просмотров:	1
Размер:	106.2 Кб
ID:	25947971

                    Теперь откроем вкладку "Обозреватель решении" если она не открыта щелкните кнопку вид и выберите ее там. В "Обозревателе решении" найдите файл "Program" и замените "Дочернее_Окно" на "Родительская_Форма".

                    Нажмите на изображение для увеличения.

Название:	Screenshot_22.png
Просмотров:	1
Размер:	86.1 Кб
ID:	25947980

                    Запустите приложение. В вашем приложении щелкните по кнопке "Файл"->"Создать". Если вы не где не ошиблись то должно получиться как у меня на скрине. Вот так достаточно легко можно программировать на C#.

                    Нажмите на изображение для увеличения.

Название:	Screenshot_23.png
Просмотров:	1
Размер:	39.8 Кб
ID:	25947983
                    Последний раз редактировалось Gold; 01.02.2017, 09:00. Причина: Оформление поста

                    Комментарий

                    • #11 Свернуть

                      Всем привет! Сегодня я покажу как в WinForm происходить рисование стандартным средством библиотекой GDI+. Это управляемая обертка над GDI над Win32. Давайте создадим новый проект WinForm. В окне свойств нашей формы найдем свойство "DoubleBuffered" и установим его в "true" и подпишемся на событие Paint формы как мы это делали для "Кнопки". Я покажу альтернативный вариант как все это можно сделать в коде.

                      Нажмите на изображение для увеличения.

Название:	Screenshot_24.png
Просмотров:	1
Размер:	88.7 Кб
ID:	25948536
                      Последний раз редактировалось Gold; 01.02.2017, 09:02. Причина: Орфография

                      Комментарий

                      • #12 Свернуть

                        Обработчик события в C# это обычный метод или функция (как вам удобней). Все встроенные события имеют один тот же шаблон который имеет два параметра(вы можете создавать свои события с любым количеством параметров). Первый параметр принимает ссылку на объект который вызвал событие тип
                        MQL код:
                        object
                        - это базовый тип почти для всех типов (кроме указателей, они тоже поддерживаются но по умолчанию они отключены) его можно привести к любому типу например:
                        MQL код:
                        Form1 форма = (Form1)sender; 
                        (конечно если вы знаете что ссылка указывает на тот же тип или производный от него). Второй параметр это данные для события (в других событиях может не содержать данных в зависимости от типа).
                        Последний раз редактировалось Gold; 01.02.2017, 09:03. Причина: Орфография

                        Комментарий

                        • #13 Свернуть

                          Что бы рисовать нам нужно в параметре "e" через точку извлечь свойство "Graphics". По сути это виртуальная плоскость для рисования. Давайте нарисуем линию.Опять же через точку вызовем метод "DrawLine" он перегружен и принимает разное количество параметров. Первый параметр для всех перегрузок перо "Pen" самое простое через точку выбрать цвет (как на моем скрине) . Остальные четыре параметра это две пары координат (x, y) начальная точка и конечная точка, относительно верхнего левого угла формы (для всех расчетов рисования или размещение элементов пользовательского интерфейсов отчет идет от этого угла и это не возможно изменить). Вставьте строку для отрисовки линии в метод "Отрисовка" и нажмите пуск.

                          Нажмите на изображение для увеличения.

Название:	Screenshot_25.png
Просмотров:	1
Размер:	90.8 Кб
ID:	25948537
                          Последний раз редактировалось Gold; 01.02.2017, 09:04.

                          Комментарий

                          • #14 Свернуть

                            Создадим три структуры "Point"(Точка), "Size" (Размер), "Rectangle"(Прямоугольник) и с их помощью нарисуем прямоугольник и залитый эллипс. В рисовании прямоугольника мы создали свое перо
                            MQL код:
                            new Pen(Color.Green, 5)
                            первый аргумент это цвет пера, второй аргумент ширина линии, там есть еще несколько перегрузок в итоге если не указать ширину пера он будет по умолчанию в один пиксель. При рисовании эллипса используется перечисленние для кисти "Brush"(Кисть) . В этом примере у нас сплошное заполнение но GDI+ поддерживает градиентную и структурную заливку.

                            Нажмите на изображение для увеличения.

Название:	Screenshot_26.png
Просмотров:	1
Размер:	92.0 Кб
ID:	25948539

                            Запустите приложение должно получиться вот так.

                            Нажмите на изображение для увеличения.

Название:	Screenshot_27.png
Просмотров:	1
Размер:	92.5 Кб
ID:	25948540
                            Последний раз редактировалось Gold; 01.02.2017, 09:06. Причина: Оформление поста

                            Комментарий

                            • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
                            • #15 Свернуть

                              Всем привет!

                              Внесем некоторое разнообразие, в виде интерактивной графики.
                              Принцип примера: клики мыши по форме будут соединяться линиями (типа линейный график).

                              Ну что же приступим.

                              Создайте новое приложение WinForm -> перейдите к коду. Сначала создадим поле, список типа List<>. Список List в C# по своей сути это динамический массив с переменной длинной в других языках. Поддерживает все, что поддерживают обычные массивы плюс еще много чего, но главное, вставку элемента по индексу и такое же удаление. Угловые скобки говорят о том, что коллекция может быть любого типа как встроенного так и пользовательского.

                              Пример:
                              MQL код:

                              // Просто обявить
                              List<int> список_типа_int = null; можно так List<int> список_типа_int; //обект не создаеться
                              //Создание списка
                              список_типа_int = new List<int>();// Создание обекта
                              List<int> список_типа_int = new List<int>();// Обявление вместе с созданием обекта;
                              //Любои тип
                              List<double> список_типа_double = new List<double>();
                              List<Rectangle> список_типа_Rectangle = new List<Rectangle>();
                              List<Form> список_типа_Form = new List<Form>();
                              List<List<int>> список_типа_List<int> = new List<List<int>>();
                              Последний раз редактировалось Gold; 01.02.2017, 09:10.

                              Комментарий

                              working...
                              X