Здравствуйте, гость ( Вход | Регистрация )

26 страниц V « < 12 13 14 15 16 > »   
Ответить в эту темуОткрыть новую тему
> Perceptron, Нейронная сеть
NoName
сообщение 31.7.2007, 16:59
Сообщение #131





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Только вот подумал что этот код сгодится только для одной пары. Для второй нужно либо добавить такой же кусок кода с другим Magic, что совсем не эстетично и громоздко, либо модифицировать этот код для работы со вторым Magic, что не совсем просто из-за большого ветвления if, if, if ...
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 31.7.2007, 17:13
Сообщение #132





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Это я у же все сделал"! (без библиотеки)

extern string GBPUSD= "Параметры GBPUSD";
extern int MagicGBP=199;
extern bool GBP=True;
extern int GBPUSD_period=17;
extern int GBP_Env_period=20;
extern int GBP_Env_shift=1;
extern double GBP_Env_deviation=17;
extern int sl_GBPUSD = 54;
extern int tp_GBPUSD = 250;

extern string _Parameters_Trailing_GBP = "----- Параметры Трейлинга GBPUSD -----";
extern bool UseTrailing = false; // Использовать трейлинг
extern bool ProfitTrailing = false; // Включать трейлинг когда получен профит
extern int TrailingStop = 60; // Фиксированный размер трала
extern int TrailingStep = 5; // Шаг трейлинга
-------------------------------------------------------------------------
Сейчас добавляю такой же второй трал - с магиком для второй пары!
Но вот как тут сделать отдельный размер для короткой и длинной поз?
Вроде где-то видел такой трал...

Вот нашел:
Код
extern bool UseTrailing = true;
extern int lMinProfit = 30;
extern int sMinProfit = 30;
extern int lTrailingStop = 15;
extern int sTrailingStop = 15;
extern int lTrailingStep = 5;
extern int sTrailingStep = 5;

if (UseTrailing) TrailPositions();  

void TrailPositions()
{
  int cnt = OrdersTotal();

  for (int i=0; i<cnt; i++) {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;        

    if (OrderType() == OP_BUY) {
      if (Bid-OrderOpenPrice() > lMinProfit*Point) {
        if (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point, OrderTakeProfit(), 0, Blue);
        }
      }
    }

    if (OrderType() == OP_SELL) {
      if (OrderOpenPrice()-Ask > sMinProfit*Point) {
        if (OrderStopLoss() > Ask+(sTrailingStop+sTrailingStep-1)*Point || OrderStopLoss() == 0) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Ask+sTrailingStop*Point, OrderTakeProfit(), 0, Blue);
        }
      }
    }
  }
  
}__________________
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 31.7.2007, 17:13
Сообщение #133





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Ну код который я выложил выше, он как раз с разным размером для позиций!
Смотри TrailingBuy, TrailingSell
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 31.7.2007, 17:20
Сообщение #134





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Понял! Прошу прощ. за невнимательность!
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 31.7.2007, 17:22
Сообщение #135





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Немного подумал и решил что всё же грамотнее будет использовать библиотеку.
Подправил для этой цели трал Игоря Кима.
Прикрепленный файл  a_SimpleTrailingMod.rar ( 1.04 килобайт ) Кол-во скачиваний: 399

Подключить как обычно:
#include <a-SimpleTrailingMod.mqh>

Вызывать: TrailingPositions(Magic);
В функцию нужно передавать Magic той позиции, которую нужно тралить.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 31.7.2007, 17:38
Сообщение #136





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Ок! Сейчас гляну!
Кстати! Что это за таинственная библиотека #include <stdlib.mqh> ?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 31.7.2007, 18:13
Сообщение #137





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Это стандартная библиотека метатрейдера, в которой есть полезная функция ErrorDescription(). Эта функция возвращает описание ошибки если передать в неё номер ошибки.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 31.7.2007, 18:15
Сообщение #138





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Ок! Понял! ohmy.gif

smile.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 31.7.2007, 18:42
Сообщение #139





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Только обьясни пож., почему грамотнее будет использовать библиотеку для трала? rolleyes.gif Я тут, "понимаешь", сидел вникал целых два часа, - а ты "немного подумал" и говоришь, - это не надо! - лучше библиотеку! tongue.gif
rolleyes.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 31.7.2007, 20:29
Сообщение #140





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Да потому что не нужно повторять код два раза!:) Ты пишешь трал для одной пары, а за тем такой же трал для другой. Отличия между ними только в переменной Magic.
Конечно ничего не изменится если сделать два трала, но с библиотекой код будет проще и меньше шансов наделать ошибок.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

26 страниц V « < 12 13 14 15 16 > » 
Ответить в эту темуОткрыть новую тему

 



- Текстовая версия Сейчас: 13.5.2025, 17:57