Перейти к содержимому

Theme© by Fisana
 

Фотография
* * * * * 68 Голосов

Написание экспертов и индикаторов - бесплатно!


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 18761

#1921 Johnathan_Burov

Johnathan_Burov

    Давно в теме

  • Свой человек
  • PipPipPipPipPipPipPipPipPip
  • 386 сообщений

Отправлено 05 November 2010 - 22:32

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

проверьте соответствие котировок разных дц


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

 
 

#1922 droba

droba

    Не жалеет патронов

  • Свой человек
  • PipPipPipPipPipPipPipPipPip
  • 309 сообщений

Отправлено 05 November 2010 - 22:44

есть у тебя там функция перевода в бу - ее оставляем или переносим стоплосс по машке пока в бу не перешли?
вариант №1
сработал ордер - выставляем стоплосс по машке, пока стоплос не без убыточный... достигли уровня безубыточности (согласно параметров BBUSize и BBUSizepip) перевели в безубыток... и тралим по фракталам
вариант №2
сработал ордер - тралим стоплос по машке пока не выйдем по машке в бу... вышли в бу - тралим по фракталам...

какой вариант для тебя правильнее?


В без убыток переходим по функции (согласно параметров BBUSize и BBUSizepip) и тралим по фракталам.

#1923 Michelangelo®

Michelangelo®

    МОРДЕ-РАПТОР

  • Профи
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1003 сообщений

Отправлено 05 November 2010 - 22:57

В без убыток переходим по функции (согласно параметров BBUSize и BBUSizepip) и тралим по фракталам.


в БУ по функции, тралим по фракталам... а чего МАшку то теребить? :hmmm:
уже завтра сделаю...
Изображение
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...

Изображение

#1924 nitob

nitob

    Расстрелял целый магазин

  • Пользователи
  • PipPipPipPip
  • 42 сообщений

Отправлено 05 November 2010 - 23:06

проверьте соответствие котировок разных дц


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



Да нет оба открывает ордера ,для 5 значных я одни параметры ставлю +0 для 4значначных другие.Скорее в условиях ДЦ зависит ,но опять же растояние до ордеров 400 и стоп лот 400 ,закрываются ордера в 12 часов ,выстовляются в 00:00 когда обычно флейт смотрел у разных дц все почти одинакова .

#1925 Skoch

Skoch

    Стреляет без предупреждения

  • Свой человек
  • PipPipPipPipPipPipPipPip
  • 285 сообщений

Отправлено 05 November 2010 - 23:47

подправил...
параметр _trailingStop - и есть уровень (шаг) установки трала... т.е. ставим 500 и через каждые 500 пунктов стоплосс будет двигаться на 500 пунктов...т.е. так:
открыли сделку выставили стоплос по параметру SL... прошли 500 пунктов в нужном направлении перенесли стоплосс на цену открытия... прошли еще 500 пунктов переместили стоплос на цена_открытия+500  и т.д.
вот смотри, правильно ли я тебя понял...


Всё верно вы понели. Советник работает как и положена. СПАСИБО большое ! ! !


Кстате он подайдёт для торговле на ,,GBP/USD & EUR/JPY" (торговля только в паре ). SL=500  ТР=передвигать в ручную ( закрывать всегда будет SL )  Прибавка лота при лосе выберайте сами ( я выстовлял 0.01+0.01 или 0.02+0.02 и т.п. ).

   Всех благ ВАМ.

#1926 droba

droba

    Не жалеет патронов

  • Свой человек
  • PipPipPipPipPipPipPipPipPip
  • 309 сообщений

Отправлено 06 November 2010 - 06:48

в БУ по функции, тралим по фракталам... а чего МАшку то теребить? :hmmm:
уже завтра сделаю...


Пока в без убыток не перешли трал по МАшке.

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

ZigZag.JPG

На этой картинке попытался показать как все должно работать.

ZigZag_2.JPG

#1927 sim

sim

    Выпустил первую очередь

  • Пользователи
  • PipPipPip
  • 12 сообщений

Отправлено 06 November 2010 - 07:33

Добрый день, многоуважаемый Michelangelo®!

Найди минутку загляни на пост # 1884. Твой советник e-LondonForexRush.mq4 открывает ордера. Я сам попытался прикрутить закрытие по тейку или стоплосу, но как то совсем коряво получилось. По тейку закрывает , а по стоплосу нет. Внеси пожалуйста изменения стоплос и тейк профит пусть будут настраиваемыми.

С уважением, SIM.

Прикрепленные файлы



#1928 vektor17

vektor17

    Начинающий

  • Свой человек
  • PipPipPipPipPipPip
  • 102 сообщений

Отправлено 06 November 2010 - 07:36

Добрый день Michelangelo®!!!

Вы не делали советник из поста 1858?

Очень интересно что получится!!!

Заранее благодарен!!!
  • Busa это нравится

#1929 nitob

nitob

    Расстрелял целый магазин

  • Пользователи
  • PipPipPipPip
  • 42 сообщений

Отправлено 06 November 2010 - 12:27

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

//---- Глобальные переменные советника -------------------------------
int prevBar;

//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
void deinit() {
  Comment("");
}

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start() {
  if (TimeToStr(CurTime(), TIME_MINUTES)==TimeSetOrders) SetOrders();
  if (prevBar!=Bars && ExistOrder(1) && ExistOrder(2))
  DeleteOppositeOrders();
  TrailingPositions();
  if (TimeToStr(CurTime(), TIME_MINUTES)==TimeDelOrders) DeleteAllOrders();
  if (TimeToStr(CurTime(), TIME_MINUTES)==TimeClosePos) CloseAllPositions();
  prevBar=Bars;
}

//+------------------------------------------------------------------+
//| Установка ордеров                                                |
//+------------------------------------------------------------------+
void SetOrders() {
  double ldStop=0, ldTake=0;
  int    spr=MarketInfo(Symbol(), MODE_SPREAD);
  double pAsk=Ask+(DistanceSet+spr)*Point;
  double pBid=Bid-DistanceSet*Point;

  if (!ExistOrder(1)) {
    if (StopLoss!=0) ldStop=pAsk-StopLoss*Point;
    if (TakeProfit!=0) ldTake=pAsk+TakeProfit*Point;
    SetOrder(OP_BUYSTOP, pAsk, ldStop, ldTake, 1);
  }
  if (!ExistOrder(2)) {
    if (StopLoss!=0) ldStop=pBid+StopLoss*Point;
    if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point;
    SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake, 2);
  }
}



//+------------------------------------------------------------------+
//| Возвращает флаг существования ордера или позиции по номеру       |
//+------------------------------------------------------------------+
bool ExistOrder(int mn) {
  bool Exist=False;
  for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC+mn) {
        Exist=True; break;
      }
    }
  }
  return(Exist);
}

//+------------------------------------------------------------------+
//| Возвращает флаг существования позиции по номеру                  |
//+------------------------------------------------------------------+
bool ExistPosition(int mn) {
  bool Exist=False;
  for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC+mn) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          Exist=True; break;
        }
      }
    }
  }
  return(Exist);
}

//+------------------------------------------------------------------+
//| Установка ордера                                                 |
//| Параметры:                                                       |
//|   op     - операция                                              |
//|   pp     - цена                                                  |
//|   ldStop - уровень стоп                                          |
//|   ldTake - уровень тейк                                          |
//|   mn     - добавить к MAGIC                                      |
//+------------------------------------------------------------------+
void SetOrder(int op, double pp, double ldStop, double ldTake, int mn) {
  color  clOpen;
  string lsComm=GetCommentForOrder();

  if (op==OP_BUYSTOP) clOpen=clOpenBuy;
  else clOpen=clOpenSell;
  OrderSend(Symbol(),op,Lots,pp,Slippage,ldStop,ldTake,lsComm,MAGIC+mn,0,clOpen);
  if (UseSound) PlaySound(NameFileSound);
}

//+------------------------------------------------------------------+
//| Генерирует и возвращает строку коментария для ордера или позиции |
//+------------------------------------------------------------------+
string GetCommentForOrder() {
  return(Name_Expert);
}

//+------------------------------------------------------------------+
//| Удаление всех ордеров                                            |
//+------------------------------------------------------------------+
void DeleteAllOrders() {
  bool fd;
  for (int i=OrdersTotal()-1; i>=0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderMagicNumber()>MAGIC && OrderMagicNumber()<=MAGIC+2) {
        if (OrderSymbol()==Symbol()) {
          if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) {
            fd=OrderDelete(OrderTicket());
            if (fd && UseSound) PlaySound(NameFileSound);
          }
        }
      }
    }
  }
}

//+------------------------------------------------------------------+
//| Закрытие всех позиций по рыночной цене                           |
//+------------------------------------------------------------------+
void CloseAllPositions() {
  bool fc;
  for (int i=OrdersTotal()-1; i>=0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderMagicNumber()>MAGIC && OrderMagicNumber()<=MAGIC+2) {
        if (OrderSymbol()==Symbol()) {
          fc=False;
          if (OrderType()==OP_BUY) {
            fc=OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, clCloseBuy);
          }
          if (OrderType()==OP_SELL) {
            fc=OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clCloseSell);
          }
          if (fc && UseSound) PlaySound(NameFileSound);
        }
      }
    }
  }
}

//+------------------------------------------------------------------+
//| Удаление противоположных ордеров                                 |
//+------------------------------------------------------------------+
void DeleteOppositeOrders() {
  bool fd, fep1, fep2;

  fep1=ExistPosition(1);
  fep2=ExistPosition(2);

  for (int i=OrdersTotal()-1; i>=0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==Symbol()) {
        fd=False;
        if (OrderType()==OP_BUYSTOP && OrderMagicNumber()==MAGIC+1) {
          if (fep2) fd=OrderDelete(OrderTicket());
        }
        if (OrderType()==OP_SELLSTOP && OrderMagicNumber()==MAGIC+2) {
          if (fep1) fd=OrderDelete(OrderTicket());
        }
        if (fd && UseSound) PlaySound(NameFileSound);
      }
    }
  }
}

//+------------------------------------------------------------------+
//| Сопровождение позиции простым тралом                             |
//+------------------------------------------------------------------+
void TrailingPositions() {
  for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderMagicNumber()>MAGIC && OrderMagicNumber()<=MAGIC+2) {
        if (OrderSymbol()==Symbol()) {
          if (OrderType()==OP_BUY) {
            if (!UseTrailing || (Bid-OrderOpenPrice())>TrailingStop*Point) {
              if (OrderStopLoss()<Bid-(TrailingStop+TrailingStep-1)*Point) {
                ModifyStopLoss(Bid-TrailingStop*Point, clOpenBuy);
              }
            }
          }
          if (OrderType()==OP_SELL) {
            if (!UseTrailing || OrderOpenPrice()-Ask>TrailingStop*Point) {
              if (OrderStopLoss()>Ask+(TrailingStop+TrailingStep-1)*Point || OrderStopLoss()==0) {
                ModifyStopLoss(Ask+TrailingStop*Point, LightCoral);
              }
            }
          }
        }
      }
    }
  }
}

//+------------------------------------------------------------------+
//| Перенос уровня StopLoss                                          |
//| Параметры:                                                       |
//|   ldStopLoss - уровень StopLoss                                  |
//|                                    
//+------------------------------------------------------------------+
void ModifyStopLoss(double ldStop, color clModify) {
  bool   fm;
  double ldOpen=OrderOpenPrice();
  double ldTake=OrderTakeProfit();

  fm=OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, clModify);
  if (fm && UseSound) PlaySound(NameFileSound);
}
//+------------------------------------------------------------------+

#1930 grsi

grsi

    Расстрелял целый магазин

  • Пользователи
  • PipPipPipPip
  • 52 сообщений

Отправлено 06 November 2010 - 14:06

Michelangelo® добрый день, что касательно советника на основе индика StepMA_v7.2. в посте 1697, то не обязательно открывать по цвету, там при определённых условиях срабатывает алерт на нулевом баре,  какие условия при этом совпадают увы не знаю, я не программёр, ну так вот если сделать алерт на первый бар, то по нему и сделку открывать.

Что касательно поста 1896 то они у меня на графике стоят и нечего не грузят и нечего не виснет, тем более в индике Stop_reversal_mod1 в коде есть алерт, но почему он не работает я не знаю, вот его бы подправить чтоб работал алерт и всё с ним больше нечего делать не надо

#1931 ultra

ultra

    Расстрелял целый магазин

  • Пользователи
  • PipPipPipPip
  • 50 сообщений

Отправлено 06 November 2010 - 17:56

Уважаемые программисты! Прошу вашей помощи. Можете написать скрипт или может уже есть такой у кого, то прошу поделиться. Скрипт выставляет ордер селл или бай с заданным параметром уровня стоплосса (данный параметр переменный).

#1932 Skoch

Skoch

    Стреляет без предупреждения

  • Свой человек
  • PipPipPipPipPipPipPipPip
  • 285 сообщений

Отправлено 06 November 2010 - 18:25

Уважаемые программисты! Прошу вашей помощи. Можете написать скрипт или может уже есть такой у кого, то прошу поделиться. Скрипт выставляет ордер селл или бай с заданным параметром уровня стоплосса (данный параметр переменный).


Как кой тебе нужен ордер ? Отложенный ? Немеддленного исполнения ?


Вот СКРИПТЫ :  OpenOrder - Открывает позицию Buy & Sell

          OpenStopOrderov -  Открывает ( 1; 2; 3 и т.п. ) отложенных Ордеров Buy & Sell.

Прикрепленные файлы



#1933 ALLEK

ALLEK

    Выпустил первую очередь

  • Пользователи
  • PipPipPip
  • 16 сообщений

Отправлено 07 November 2010 - 13:55

Кто может помочь научится програмить MQL 4

#1934 webic

webic

    Не сидит в окопе

  • Пользователи
  • PipPipPipPipPip
  • 76 сообщений

Отправлено 07 November 2010 - 15:48

Кто может помочь научится програмить MQL 4

http://book.mql4.com/ru/
Привыкайте, такова наша судьба :hmmm:

#1935 grsi

grsi

    Расстрелял целый магазин

  • Пользователи
  • PipPipPipPip
  • 52 сообщений

Отправлено 07 November 2010 - 19:14

Привет народ, кто возмётся подправить советника на основе индика Супертренд???



Copyright © 2024 Your Company Name