Группа "Стол заказов MQL"

Рейтинг 2091



РЕКОМЕНДУЮ



Прошу доработать советник
[*]

Здравствуйте! Прошу доработать советник
zakaz.opentraders.ru/29415.html
Нужно например если выставлен ордер на покупку и он закрылся по тейк профиту, чтоб больше он не открывал ордера на покупку, а когда цвет стрелки поменяется на крассный он должен открыть ордер на продажу и при закрытии по тейк профиту больше на продажу не открывал.За ранее благодарен.
  • 0
  • Просмотров: 2297
  • 1 апреля 2016, 13:51
  • Thunder61
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Исправить советник FG_Locker
Следующая запись в группе  
Поправить советник
01 апреля 2016
01 апреля 2016

Комментарии (12)

+
0
Посмотрю сегодня.
avatar

  34  AM2 Сообщений: 15901 - Андрей

  • 1 апреля 2016, 17:36
+
0
ок.
avatar

  14  Thunder61 Автор Сообщений: 166 - Thunder61

  • 1 апреля 2016, 17:47
+
0
Я сделал то что вы просили, но сигнал от индикатора очень некачественный, сам сигнал и то что на экране очень отличаются.


//+------------------------------------------------------------------+
//|                                                         T3MA.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property description "Simple expert advisor"

//--- Inputs
extern double Lots      = 0.1;      // лот
extern int StopLoss     = 500;      // лось
extern int TakeProfit   = 500;      // язь
extern int Slip         = 30;       // реквот
extern int Shift        = 1;        // сдвиг
extern int Magic        = 123;      // магик

extern string IndName   = "T3MA-ALARM";
extern int IndPeriod    = 4;

bool b=true,s=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
   int    r=0;
   double sl=0,tp=0;
//--- get Ind
   double FBlue=iCustom(NULL,0,IndName,IndPeriod,0,Shift);
   double FRed=iCustom(NULL,0,IndName,IndPeriod,1,Shift);
//--- sell conditions
   if(FRed<100 && s)
     {
      if(StopLoss>0) sl=NormalizeDouble(Bid+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(Bid-TakeProfit*Point,Digits);
      r=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,sl,tp,"",Magic,0,Red);
      if(LastDealResult()==1)
        {
         b=true;
         s=false;
        }
     }
//--- buy conditions
   if(FBlue<100 && b)
     {
      if(StopLoss>0) sl=NormalizeDouble(Ask-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(Ask+TakeProfit*Point,Digits);
      r=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,sl,tp,"",Magic,0,Blue);
      if(LastDealResult()==1)
        {
         b=false;
         s=true;
        }
     }
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int LastDealResult()
  {
   int result=0;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderProfit()>0)
           {
            result=1;//tp  
           }
         if(OrderProfit()<0)
           {
            result=2;//sl  
           }
        }
     }
   return(result);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   double FBlue=iCustom(NULL,0,IndName,IndPeriod,0,Shift);
   double FRed=iCustom(NULL,0,IndName,IndPeriod,1,Shift);

   if(CountTrades()<1) OpenPos();

   Comment("\n Blue: ",FBlue,
           "\n Red: ",FRed);
//---
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15901 - Андрей

  • 1 апреля 2016, 21:48
+
0
Андрей благодарю за работу. Проверю в понедельник. <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 
Редактирован: 2 апреля 2016, 08:29
avatar

  14  Thunder61 Автор Сообщений: 166 - Thunder61

  • 2 апреля 2016, 08:28
комментарий был удален 2016-04-07 06:58:59 Thunder61

+
0
Скиньте файлом или в тегах и посмотрю что можно сделать.
avatar

  34  AM2 Сообщений: 15901 - Андрей

  • 4 апреля 2016, 10:07
комментарий был удален 2016-04-06 08:59:49 Thunder61

+
+1
В таком виде не компилируется, кидайте файлом или в тегах как просил выше.
avatar

  34  AM2 Сообщений: 15901 - Андрей

  • 6 апреля 2016, 07:31
+
0
#property copyright "Copyright © 2008, Кузинок Сергей "
#property link      "Кузинок Сергей"

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 MediumBlue
#property indicator_color3 Red
#property indicator_color4 MediumBlue
#property indicator_color5 Blue
#property indicator_color6 Red

extern int MaMetod = 3;
extern int MaPeriod = 11;
extern bool Signal = TRUE;
extern bool Mail = FALSE;
extern int Step = 5;
extern color Bars_Color_UP = Red;
extern color Bars_Color_DOWN = MediumBlue;
double g_ibuf_104[];
double g_ibuf_108[];
double g_ibuf_112[];
double g_ibuf_116[];
double g_ibuf_120[];
double g_ibuf_124[];
double gd_128;
string gs_null_136 = "NULL";
string gs_null_144 = "NULL";
int gi_152 = 0;

int init() {
   SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 1, Bars_Color_UP);
   SetIndexBuffer(0, g_ibuf_104);
   SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 1, Bars_Color_DOWN);
   SetIndexBuffer(1, g_ibuf_108);
   SetIndexStyle(2, DRAW_HISTOGRAM, STYLE_SOLID, 2, Bars_Color_UP);
   SetIndexBuffer(2, g_ibuf_112);
   SetIndexStyle(3, DRAW_HISTOGRAM, STYLE_SOLID, 2, Bars_Color_DOWN);
   SetIndexBuffer(3, g_ibuf_116);
   SetIndexStyle(4, DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexBuffer(4, g_ibuf_120);
   SetIndexArrow(4, 233);
   SetIndexStyle(5, DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexBuffer(5, g_ibuf_124);
   SetIndexArrow(5, 234);
   SetIndexDrawBegin(0, 5);
   SetIndexBuffer(0, g_ibuf_104);
   SetIndexBuffer(1, g_ibuf_108);
   SetIndexBuffer(2, g_ibuf_112);
   SetIndexBuffer(3, g_ibuf_116);
   return (0);
}

int deinit() {
   return (0);
}

int start() {
   double l_ima_0;
   double l_ima_8;
   double l_ima_16;
   double l_ima_24;
   double ld_unused_32;
   double ld_unused_40;
   double ld_48;
   double ld_56;
   double ld_64;
   double ld_72;
   if (Bars <= 10) return (0);
   gi_152 = IndicatorCounted();
   if (gi_152 < 0) return (-1);
   if (gi_152 > 0) gi_152--;
   for (int li_96 = Bars - gi_152 - 1; li_96 >= 0; li_96--) {
      l_ima_0 = iMA(NULL, 0, MaPeriod, 0, MaMetod, PRICE_CLOSE, li_96);
      l_ima_8 = iMA(NULL, 0, MaPeriod, 0, MaMetod, PRICE_LOW, li_96);
      l_ima_16 = iMA(NULL, 0, MaPeriod, 0, MaMetod, PRICE_OPEN, li_96);
      l_ima_24 = iMA(NULL, 0, MaPeriod, 0, MaMetod, PRICE_HIGH, li_96);
      ld_48 = (g_ibuf_112[li_96 + 1] + (g_ibuf_116[li_96 + 1])) / 2.0;
      ld_72 = (l_ima_0 + l_ima_24 + l_ima_16 + l_ima_8) / 4.0;
      ld_56 = MathMax(l_ima_24, MathMax(ld_48, ld_72));
      ld_64 = MathMin(l_ima_16, MathMin(ld_48, ld_72));
      ld_unused_32 = iMA(NULL, 0, 30, 1, MODE_SMA, PRICE_LOW, li_96);
      ld_unused_40 = iMA(NULL, 0, 30, 1, MODE_SMA, PRICE_LOW, li_96 - 1);
      if (ld_48 < ld_72) {
         g_ibuf_104[li_96] = ld_64;
         if (g_ibuf_104[li_96] < g_ibuf_108[li_96] && g_ibuf_104[li_96 + 1] < g_ibuf_108[li_96 + 1] && g_ibuf_104[li_96 + 2] > g_ibuf_108[li_96 + 2]) {
            g_ibuf_120[li_96] = ld_64 - 5.0 * Point;
            if (li_96 == 0) gs_null_136 = "BUY";
         }
         g_ibuf_108[li_96] = ld_56;
      } else {
         g_ibuf_104[li_96] = ld_56;
         g_ibuf_108[li_96] = ld_64;
         if (g_ibuf_104[li_96] > g_ibuf_108[li_96] && g_ibuf_104[li_96 + 1] > g_ibuf_108[li_96 + 1] && g_ibuf_104[li_96 + 2] < g_ibuf_108[li_96 + 2]) {
            g_ibuf_124[li_96] = ld_64 + 5.0 * Point;
            if (li_96 == 0) gs_null_136 = "SELL";
         }
      }
      g_ibuf_112[li_96] = ld_48;
      g_ibuf_116[li_96] = ld_72;
   }
   if (gs_null_144 != gs_null_136) {
      gs_null_144 = gs_null_136;
      if (gs_null_136 == "BUY") gd_128 = NormalizeDouble(Step * Point + Ask, 4);
      if (gs_null_136 == "SELL") gd_128 = NormalizeDouble(Step * Point + Bid, 4);
      if (Signal == TRUE) {
         Alert("Поступил новый сигнал: " + gs_null_136 
            + "\n" 
            + "Дата: " + TimeDay(TimeLocal()) + "." + TimeMonth(TimeLocal()) + "." + TimeYear(TimeLocal()) 
            + "\n" 
            + "Валютная пара: " + Symbol() 
            + "\n" 
            + "Таймфрейм: " + Period() 
            + "\n" 
         + "Цена открытия: " + gd_128);
      }
      if (Mail == TRUE) {
         SendMail("Новый сигнал STS", "Поступил новый сигнал: " + gs_null_136 
            + "\n" 
            + "Дата: " + TimeDay(TimeLocal()) + "." + TimeMonth(TimeLocal()) + "." + TimeYear(TimeLocal()) 
            + "\n" 
            + "Валютная пара: " + Symbol() 
            + "\n" 
            + "Таймфрейм: " + Period() 
            + "\n" 
         + "Цена открытия: " + gd_128);
         Print(GetLastError());
      }
   }
   return (0);
}
avatar

  14  Thunder61 Автор Сообщений: 166 - Thunder61

  • 6 апреля 2016, 08:56
+
0
надеюсь так правильно. я не могу сейчас найти кнопку добавить файл?
Индикатор называется: #STS_alert_mail_2008
Редактирован: 6 апреля 2016, 09:05
avatar

  14  Thunder61 Автор Сообщений: 166 - Thunder61

  • 6 апреля 2016, 09:04
+
0
Сейчас стало получше: www.opentraders.ru/downloads/1137/




//+------------------------------------------------------------------+
//|                                                          STS.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property description "Simple expert advisor"

//--- Inputs
extern double Lots      = 0.1;      // лот
extern int StopLoss     = 500;      // лось
extern int TakeProfit   = 500;      // язь
extern int Slip         = 30;       // реквот
extern int Shift        = 1;        // сдвиг
extern int Magic        = 123;      // магик

extern string IndName   = "#STS_alert_mail_2008";
extern int MAMetod      = 3;
extern int MAPeriod     = 11;

bool b=true,s=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
   int    r=0;
   double sl=0,tp=0;
//--- get Ind
   double FBlue=iCustom(NULL,0,IndName,MAMetod,MAPeriod,4,Shift);
   double FRed=iCustom(NULL,0,IndName,MAMetod,MAPeriod,5,Shift);
//--- sell conditions
   if(FRed<1000 && s)
     {
      if(StopLoss>0) sl=NormalizeDouble(Bid+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(Bid-TakeProfit*Point,Digits);
      r=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,sl,tp,"",Magic,0,Red);
      if(LastDealResult()==1)
        {
         b=true;
         s=false;
        }
     }
//--- buy conditions
   if(FBlue<1000 && b)
     {
      if(StopLoss>0) sl=NormalizeDouble(Ask-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(Ask+TakeProfit*Point,Digits);
      r=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,sl,tp,"",Magic,0,Blue);
      if(LastDealResult()==1)
        {
         b=false;
         s=true;
        }
     }
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int LastDealResult()
  {
   int result=0;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderProfit()>0)
           {
            result=1;//tp  
           }
         if(OrderProfit()<0)
           {
            result=2;//sl  
           }
        }
     }
   return(result);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   double FBlue=iCustom(NULL,0,IndName,MAMetod,MAPeriod,4,Shift);
   double FRed=iCustom(NULL,0,IndName,MAMetod,MAPeriod,5,Shift);

   if(CountTrades()<1) OpenPos();

   Comment("\n Blue: ",FBlue,
           "\n Red: ",FRed);
//---
  }
//+------------------------------------------------------------------+


Редактирован: 13 апреля 2016, 19:42
avatar

  34  AM2 Сообщений: 15901 - Андрей

  • 10 апреля 2016, 15:23
+
0
Спасибо Андрей! Здоровья и удачи вам <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 
Редактирован: 13 апреля 2016, 18:41
avatar

  14  Thunder61 Автор Сообщений: 166 - Thunder61

  • 13 апреля 2016, 18:34

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари