Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
23.05.2012 18:25

Войти
158867 Сообщений в 9086 Тем от 22018 Пользователей
Последний пользователь: TP Trader
* Начало Помощь Войти Регистрация
kroufr.ru  |  Ограниченный доступ  |  Торговые системы (Модератор: Архивариус)  |  Тема: Помогите дописать Стоп Лосс у Советника 0 Пользователей и 2 Гостей смотрят эту тему. « предыдущая тема следующая тема »
Страниц: [1] Вниз Печать
Автор Тема: Помогите дописать Стоп Лосс у Советника  (Прочитано 1953 раз)
NRG
Мыслить Чувствовать Управлять
Завсегдатай
*****
Offline Offline

Пол: Мужской
Сообщений: 472



WWW
« : 04.07.2007 20:30 »

Буду очень благодарен если поможете дописать Стоп Лосс  rolleyes

extern double lots=0.1;
extern double target=4;
int cbars=0;
int magic=9348670;
int dist=24;

int start() {

 double profit=0;
 int j=OrdersTotal()-1;
 for (int i=j;i>=0;i--)
  {
   OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   if(OrderMagicNumber()==magic && OrderSymbol()==Symbol())
   profit=OrderProfit()+OrderSwap()+profit;
  }
 
 if (profit>=target)
  {
   j=OrdersTotal()-1;
   for (i=j;i>=0;i--)
    {
     OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
     RefreshRates();
     if(OrderType()==OP_BUY && OrderMagicNumber()==magic && OrderSymbol()==Symbol())
      OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
    }
  }
 
 double sig = Lowest(NULL,0,MODE_LOW,dist,0);
 if(cbars!=Bars && sig==1)
  {
   RefreshRates();
   OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,0,"buy",magic,0,Blue);
   string AN="ArrBuy "+TimeToStr(CurTime());
   ObjectCreate(AN,OBJ_ARROW,0,Time[1],Low[1]-6*Point,0,0,0,0);
   ObjectSet(AN, OBJPROP_ARROWCODE, 233);
   ObjectSet(AN, OBJPROP_COLOR , Blue);
  }

 profit=0;
 j=OrdersTotal()-1;
 for (i=j;i>=0;i--)
  {
   OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   if(OrderType()==OP_SELL && OrderMagicNumber()==magic && OrderSymbol()==Symbol())
   profit=OrderProfit()+OrderSwap()+profit;
  }
 
 if (profit>=target)
  {
   j=OrdersTotal()-1;
   for (i=j;i>=0;i--)
    {
     OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
     RefreshRates();
     if(OrderType()==OP_SELL && OrderMagicNumber()==magic && OrderSymbol()==Symbol())
      OrderClose(OrderTicket(),OrderLots(),Ask,3,Magenta);
    }
  }
 
 sig = Highest(NULL,0,MODE_HIGH,dist,0);
 if(cbars!=Bars && sig==1)
  {
   RefreshRates();
   OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,0,"sell",magic,0,Magenta);
   AN="ArrSell "+TimeToStr(CurTime());
   ObjectCreate(AN,OBJ_ARROW,0,Time[1],High[1]+6*Point,0,0,0,0);
   ObjectSet(AN, OBJPROP_ARROWCODE, 234);
   ObjectSet(AN, OBJPROP_COLOR , Magenta);
  }

 cbars=Bars;
 
 return(0);
}
Записан

Лечим котов в мешке ex4
Дмитрий Мурзин
Сотрудник КРОУФР
Члены КРОУФР
*****
Online Online

Пол: Мужской
Сообщений: 1953


Не верящий в свободу воли её и не имеет.


« Ответ #1 : 05.07.2007 00:18 »

Подробно не разбирался но работает. Smiley

extern double lots=0.1;
extern double target=4;
int cbars=0;
extern int magic=9348670;
extern int dist=24;
extern double lTrailingStop = 10;
extern double sTrailingStop = 10;
extern double lStopLoss = 100;
extern double sStopLoss = 100;

int start() {

 double profit=0;
 int j=OrdersTotal()-1;
 for (int i=j;i>=0;i--)
  {
   OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   if(OrderMagicNumber()==magic && OrderSymbol()==Symbol())
   profit=OrderProfit()+OrderSwap()+profit;
  }
 
 if (profit>=target)
  {
   j=OrdersTotal()-1;
   for (i=j;i>=0;i--)
    {
     OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
     RefreshRates();
     if(OrderType()==OP_BUY && OrderMagicNumber()==magic && OrderSymbol()==Symbol())
      OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
    }
  }
 
 double sig = Lowest(NULL,0,MODE_LOW,dist,0);
 if(cbars!=Bars && sig==1)
  {
   RefreshRates();
   OrderSend(Symbol(),OP_BUY,lots,Ask,3,GetStopLossBuy(),0,"buy",magic,0,Blue);
 
   string AN="ArrBuy "+TimeToStr(CurTime());
   ObjectCreate(AN,OBJ_ARROW,0,Time[1],Low[1]-6*Point,0,0,0,0);
   ObjectSet(AN, OBJPROP_ARROWCODE, 233);
   ObjectSet(AN, OBJPROP_COLOR , Blue);
  }

 profit=0;
 j=OrdersTotal()-1;
 for (i=j;i>=0;i--)
  {
   OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   if(OrderType()==OP_SELL && OrderMagicNumber()==magic && OrderSymbol()==Symbol())
   profit=OrderProfit()+OrderSwap()+profit;
  }
 
 if (profit>=target)
  {
   j=OrdersTotal()-1;
   for (i=j;i>=0;i--)
    {
     OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
     RefreshRates();
     if(OrderType()==OP_SELL && OrderMagicNumber()==magic && OrderSymbol()==Symbol())
      OrderClose(OrderTicket(),OrderLots(),Ask,3,Magenta);
    }
  }
 
 sig = Highest(NULL,0,MODE_HIGH,dist,0);
 if(cbars!=Bars && sig==1)
  {
   RefreshRates();
   OrderSend(Symbol(),OP_SELL,lots,Bid,3,GetStopLossSell(),0,"sell",magic,0,Magenta);

   AN="ArrSell "+TimeToStr(CurTime());
   ObjectCreate(AN,OBJ_ARROW,0,Time[1],High[1]+6*Point,0,0,0,0);
   ObjectSet(AN, OBJPROP_ARROWCODE, 234);
   ObjectSet(AN, OBJPROP_COLOR , Magenta);
  }

 cbars=Bars;
    TrailingPositionsSell(sTrailingStop);
    TrailingPositionsBuy(lTrailingStop);   
 return(0);
}

void TrailingPositionsBuy(int trailingStop) {
   for (int i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
            if (OrderType()==OP_BUY) {
               if (Bid-OrderOpenPrice()>trailingStop*Point) {
                  if (OrderStopLoss()<Bid-trailingStop*Point)
                     ModifyStopLoss(Bid-trailingStop*Point);
               }
            }
         }
      }
   }
}
void TrailingPositionsSell(int trailingStop) {
   for (int i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
            if (OrderType()==OP_SELL) {
               if (OrderOpenPrice()-Ask>trailingStop*Point) {
                  if (OrderStopLoss()>Ask+trailingStop*Point || OrderStopLoss()==0) 
                     ModifyStopLoss(Ask+trailingStop*Point);
               }
            }
         }
      }
   }
}
void ModifyStopLoss(double ldStopLoss) {
   bool fm;
   fm = OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
}
double GetStopLossBuy() {    return (Bid-lStopLoss*Point);}
double GetStopLossSell() {    return(Ask+sStopLoss*Point); }
Записан

Умное лицо - это еще не признак ума. Все глупости в мире совершаются именно с этим выражением лица.... Улыбайтесь господа, улыбайтесь...
NRG
Мыслить Чувствовать Управлять
Завсегдатай
*****
Offline Offline

Пол: Мужской
Сообщений: 472



WWW
« Ответ #2 : 05.07.2007 06:41 »

Спасибо  afro
Записан

Лечим котов в мешке ex4
NRG
Мыслить Чувствовать Управлять
Завсегдатай
*****
Offline Offline

Пол: Мужской
Сообщений: 472



WWW
« Ответ #3 : 08.07.2007 13:44 »

Еще такая же проблема. Если кому несложно допишите стоп лос.  cry

* sovetnik.mq4 (2.83 Кб - загружено 146 раз.)
Записан

Лечим котов в мешке ex4
Дмитрий Мурзин
Сотрудник КРОУФР
Члены КРОУФР
*****
Online Online

Пол: Мужской
Сообщений: 1953


Не верящий в свободу воли её и не имеет.


« Ответ #4 : 08.07.2007 15:32 »

Привет!
Просто же......посмотрите кусочки кода которы я добавил.

* sovetnik[1].mq4 (3.16 Кб - загружено 170 раз.)
Записан

Умное лицо - это еще не признак ума. Все глупости в мире совершаются именно с этим выражением лица.... Улыбайтесь господа, улыбайтесь...
NRG
Мыслить Чувствовать Управлять
Завсегдатай
*****
Offline Offline

Пол: Мужской
Сообщений: 472



WWW
« Ответ #5 : 08.07.2007 17:33 »

Спасибо, теперь разобрался. В дальнейшем буду уже сам делать  afro
Записан

Лечим котов в мешке ex4
Sharmuta
Новичок
*
Offline Offline

Сообщений: 1


« Ответ #6 : 30.10.2011 20:17 »

Здравствуйте
Помогите вставить в советник стоп лосс, я буду очень благодарен.

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

(у советника за место стопа стоит система допокупки или допродажи в случае если цена отклонилась в минус)

* ShockBar v.1.2 MA.mq4 (26.8 Кб - загружено 19 раз.)
Записан
Страниц: [1] Вверх Печать 
kroufr.ru  |  Ограниченный доступ  |  Торговые системы (Модератор: Архивариус)  |  Тема: Помогите дописать Стоп Лосс у Советника « предыдущая тема следующая тема »
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.15 | SMF © 2006-2008, Simple Machines Valid XHTML 1.0! Valid CSS!
 
Top! Top!