Закрытая тема
12.04.2014, 16:42
Аватар для Alokozay
Alokozay Alokozay вне форума Интересующийся
Регистрация: 28.10.2011 / Сообщений: 3
Поблагодарили 0 раз(а) / Репутация: 1
Добавьте фильтр к советнику
12.04.2014, 17:28
Аватар для Dendjo
Dendjo Dendjo вне форума Местный житель
Регистрация: 23.03.2013 / Сообщений: 384
Поблагодарили 226 раз(а) / Репутация: 226
и снова со старой просьбой, что там так трудно доработать хоть объясните, надо что бы закрывала сделку по обратному сигналу и открывала новую а не как там пока не сработает стоп так и весит хотя уже сигнал в другую сторону, помогите наконец то уже
12.04.2014, 17:49
Аватар для asdfer
asdfer asdfer вне форума Новичок форума
Регистрация: 26.01.2014 / Сообщений: 137
Поблагодарили 28 раз(а) / Репутация: 29
Приветмствую!
большая просьба. удалить из кода две линии из трех , оставив одну.
Два образца. В первом случае синию, во втором красную, оставить!
Для того, кто знает, минутное дело, а я никак
Вот скрин и индюк.
12.04.2014, 17:56
Аватар для zhserg
zhserg zhserg на форуме Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
и снова со старой просьбой, что там так трудно доработать хоть объясните, надо что бы закрывала сделку по обратному сигналу и открывала новую а не как там пока не сработает стоп так и весит хотя уже сигнал в другую сторону, помогите наконец то уже
Так что-ли?
zhserg.ru советники, скрипты, индикаторы на заказ
Dendjo , IYG 
12.04.2014, 18:01
Аватар для zhserg
zhserg zhserg на форуме Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Приветмствую!
большая просьба. удалить из кода две линии из трех , оставив одну.
Два образца. В первом случае синию, во втором красную, оставить!
Для того, кто знает, минутное дело, а я никак
Вот скрин и индюк.
Зачем из кода удалять? Если хочешь чтобы не было видно на экране, установи цвет ненужной линии такой как у тебя фон.
zhserg.ru советники, скрипты, индикаторы на заказ
12.04.2014, 18:11
Аватар для asdfer
asdfer asdfer вне форума Новичок форума
Регистрация: 26.01.2014 / Сообщений: 137
Поблагодарили 28 раз(а) / Репутация: 29
Зачем из кода удалять? Если хочешь чтобы не было видно на экране, установи цвет ненужной линии такой как у тебя фон.
Это я знаю. Мне нужно для "солянки", чтобы не путаться при совмещении.
12.04.2014, 18:17
Аватар для zhserg
zhserg zhserg на форуме Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Это я знаю. Мне нужно для "солянки", чтобы не путаться при совмещении.
В приведенной части кода закомментирована синяя линия, т.е. она не будет отображаться.
PHP код:
  int init()
  {
   
string short_name;
   
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
//   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
   
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2);
   
SetIndexBuffer(0,Line1Buffer);
//   SetIndexBuffer(1,Line2Buffer);
   
SetIndexBuffer(2,Line3Buffer);
   
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

   
short_name="MBB_call("+PeriodRSI+","+StepSizeFast+","+StepSizeSlow+")";
   
IndicatorShortName(short_name);
   
SetIndexLabel(0,"RSI");
//   SetIndexLabel(1,"SRSI fast");
   
SetIndexLabel(2,"SRSI slow");

   
SetIndexDrawBegin(0,1);
//   SetIndexDrawBegin(1,2);
   
SetIndexDrawBegin(2,2);

   return(
0);
  } 
С красной можно поступить также.
zhserg.ru советники, скрипты, индикаторы на заказ
asdfer 
12.04.2014, 18:40
Аватар для asdfer
asdfer asdfer вне форума Новичок форума
Регистрация: 26.01.2014 / Сообщений: 137
Поблагодарили 28 раз(а) / Репутация: 29
Вельми понеже!
Спасибо большое, понял, могу хоть одну линию заблокировать ,хоть две.
Вообще то я хотел вообще стереть две ненужных из кода , чтобы при дальнейшей работе указывать не линию в индикаторе( а это все равно придется, как я понимаю), а сам индикатор, имеющий одну линию, красную, или синию, по варианту.
Если это сложно, не нужно, потому что идея спорная, так справлюсь.
========
Гложут смутные сомненья. Если убрать из кода две линии, может индикатор перестанет работать, поскольку одна линия потеряет смысл?

Последний раз редактировалось asdfer; 12.04.2014 в 18:46.
12.04.2014, 18:54
Аватар для Joker1394
Joker1394 Joker1394 вне форума Активный участник
Регистрация: 03.06.2009 / Сообщений: 135
Поблагодарили 37 раз(а) / Репутация: 37
Ребят всем привет еще раз,ну а что там с моим индюком можно его подправить как он должен работать или бызсмысленная трата времени?
12.04.2014, 19:12
Аватар для zhserg
zhserg zhserg на форуме Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Вельми понеже!
Спасибо большое, понял, могу хоть одну линию заблокировать ,хоть две.
Вообще то я хотел вообще стереть две ненужных из кода , чтобы при дальнейшей работе указывать не линию в индикаторе( а это все равно придется, как я понимаю), а сам индикатор, имеющий одну линию, красную, или синию, по варианту.
Если это сложно, не нужно, потому что идея спорная, так справлюсь.
========
Гложут смутные сомненья. Если убрать из кода две линии, может индикатор перестанет работать, поскольку одна линия потеряет смысл?
Нет, не сложно. Закомментированные строки = удаленные строки, т.е. как будто их и нет в коде.

Вообще то основная (черная) это RSI в чистом виде... А две остальные - производные от нее.
zhserg.ru советники, скрипты, индикаторы на заказ

Последний раз редактировалось zhserg; 12.04.2014 в 19:15.
asdfer 
12.04.2014, 21:15
Аватар для Елена4
Елена4 Елена4 вне форума Активный участник
Регистрация: 02.03.2011 / Сообщений: 119
Поблагодарили 70 раз(а) / Репутация: 71
Добрый вечер всем форумчанам. Помогите доработать скрипт. Необходимо добавить возможность указывать по каким парам выставлять отложенные ордера. Заранее всем спасибо.

Скрытый текст

PHP код:
#property show_inputs

//--------------------------------------------------------------------
extern int     Takeprofit        0,     //тейкпрофит ордеров
               
Delta            10,
               
Candle            1;     //по какой свече ставим ордера (0- текущая  1- прошлая....)
extern double  Lot               0.1;   //лот
extern int     Magic             0;     //уникальный номер ордеров этого советника, если 0 то ведет все ордера, в том числе выставленные вручную
//--------------------------------------------------------------------
int start()
{
   
double SL,TP;
   
double StopLevel MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
   
double Price NormalizeDouble(High[Candle]+(MarketInfo(Symbol(),MODE_SPREAD)+Delta)*Point,Digits);
   if(
Price>=Ask+StopLevel
   {
      if (
Takeprofit!=0TP NormalizeDouble(Price Takeprofit Point,Digits); else TP=0;
      
SL NormalizeDouble(Low[Candle]-Delta*Point,Digits);
      if (
OrderSend(Symbol(),OP_BUYSTOP,Lot,Price,0,SL,TP,"StopOrders",Magic,0,CLR_NONE)==-1) Print("Error ",GetLastError());
   }
   
Price NormalizeDouble(Low[Candle]-Delta*Point,Digits);
   if(
Price<=Bid-StopLevel
   {
      if (
Takeprofit!=0TP NormalizeDouble(Price Takeprofit Point,Digits); else TP=0;
      
SL NormalizeDouble(High[Candle]+Delta*Point,Digits);
      if (
OrderSend(Symbol(),OP_SELLSTOP,Lot,Price,0,SL,TP,"StopOrders",Magic,0,CLR_NONE)==-1) Print("Error ",GetLastError());
   }
   return(
0);
}
//-------------------------------------------------------------------- 
[свернуть]

Последний раз редактировалось NSerega; 13.04.2014 в 17:12.
13.04.2014, 07:45
Аватар для zhserg
zhserg zhserg на форуме Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Добрый вечер всем форумчанам. Помогите доработать скрипт. Необходимо добавить возможность указывать по каким парам выставлять отложенные ордера. Заранее всем спасибо.

Скрытый текст

PHP код:
#property show_inputs

//--------------------------------------------------------------------
extern int     Takeprofit        0,     //тейкпрофит ордеров
               
Delta            10,
               
Candle            1;     //по какой свече ставим ордера (0- текущая  1- прошлая....)
extern double  Lot               0.1;   //лот
extern int     Magic             0;     //уникальный номер ордеров этого советника, если 0 то ведет все ордера, в том числе выставленные вручную
//--------------------------------------------------------------------
int start()
{
   
double SL,TP;
   
double StopLevel MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
   
double Price NormalizeDouble(High[Candle]+(MarketInfo(Symbol(),MODE_SPREAD)+Delta)*Point,Digits);
   if(
Price>=Ask+StopLevel
   {
      if (
Takeprofit!=0TP NormalizeDouble(Price Takeprofit Point,Digits); else TP=0;
      
SL NormalizeDouble(Low[Candle]-Delta*Point,Digits);
      if (
OrderSend(Symbol(),OP_BUYSTOP,Lot,Price,0,SL,TP,"StopOrders",Magic,0,CLR_NONE)==-1) Print("Error ",GetLastError());
   }
   
Price NormalizeDouble(Low[Candle]-Delta*Point,Digits);
   if(
Price<=Bid-StopLevel
   {
      if (
Takeprofit!=0TP NormalizeDouble(Price Takeprofit Point,Digits); else TP=0;
      
SL NormalizeDouble(High[Candle]+Delta*Point,Digits);
      if (
OrderSend(Symbol(),OP_SELLSTOP,Lot,Price,0,SL,TP,"StopOrders",Magic,0,CLR_NONE)==-1) Print("Error ",GetLastError());
   }
   return(
0);
}
//-------------------------------------------------------------------- 
[свернуть]
В начале, после
PHP код:
//-------------------------------------------------------------------- 
добавляем
PHP код:
extern string para="EURUSD"
Затем все Symbol() меняем на para.
zhserg.ru советники, скрипты, индикаторы на заказ

Последний раз редактировалось NSerega; 13.04.2014 в 17:12.
13.04.2014, 08:06
Аватар для Vitas42
Vitas42 Vitas42 вне форума Активный участник
Регистрация: 26.05.2013 / Сообщений: 59
Поблагодарили 84 раз(а) / Репутация: 84
Зачем из кода удалять? Если хочешь чтобы не было видно на экране, установи цвет ненужной линии такой как у тебя фон.
+1 верно как это не могут понят они. хоть бы малость с терминалом разобрались а потом код бы учились писать.
13.04.2014, 11:22
Аватар для RTS
RTS RTS вне форума Прохожий
Регистрация: 13.04.2014 / Сообщений: 3
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Добрый день!
Подскажите функцию удаления отложенных ордеров (BuyStop/SellStop) при срабатывании стоплосса у рыночного ордера. Магики у всех ордеров один. Сейчас при срабатывании стопа, отложки остаются в рынке. И подскажите еще, приведенный код на выставление отложек корректен? Не нарушает ли это логики MQL языка?
Вот код который я подправил самостоятельно,чтобы сов при открытии первого ордера, сразу выставлял отложку через N пунктов.

Скрытый текст

PHP код:
//============================================== покупаем 1 ордер ==============================================
     
if ((Signal == 1) && (totalB == 0)) {  
          if (
Signal == ticket OPENORDER ("Buy")&& PlaySound(OpenOrderSound);
          if (
Signal == ticket OPENORDER ("BuyStop");
          if (
ticket 0) {
          
BarControl_0 False;
          return (
0);
          }
          
BarControl_0 BarControl;
     }
//=============================================== продаем 1 ордер =============================================     
     
if ((Signal == -1) && (totalS == 0)) {             
        if (
Signal == -ticket OPENORDER ("Sell")&& PlaySound(OpenOrderSound);
        if (
Signal == -ticket OPENORDER ("SellStop");
        if (
ticket 0) {
           
BarControl_0 False;
           return (
0);
        }
        
BarControl_0 BarControl;
     }    

  return (
0);

[свернуть]

и

Скрытый текст

PHP код:
//====================================== выставление ордеров ===================================================
int OPENORDER(string ord)
{
   
int error;
 
   if (
ord=="Buy"   error=OrderSend(Symbol(),OP_BUY,  iLotsBNormalizeDouble (Ask,Dig), slip00"Dubl Full",MagicNumberB,5,Blue);
   if (
ord=="BuyStop"   error=OrderSend(Symbol(),OP_BUYSTOP,  iLotsBNormalizeDouble (Ask+FirstPipStep*Point,Digits), slip00"Dubl Full",MagicNumberB,5,Blue);
   if (
ord=="Sell"  error=OrderSend(Symbol(),OP_SELLiLotsSNormalizeDouble (Bid,Dig), slip00"Dubl Full",MagicNumberS,5,DeepPink);
   if (
ord=="SellStop"  error=OrderSend(Symbol(),OP_SELLSTOPiLotsSNormalizeDouble (Bid+FirstPipStep*Point,Digits), slip00"Dubl Full",MagicNumberS,5,DeepPink);
   if (
error==-1)   ShowERROR(error,0,0);
return (
error);

[свернуть]


А эта часть кода отвечает за тейки и стопы.

Скрытый текст

PHP код:
//===================================  пересчитываем ТП  БАЙ ордеров  =========================================

void  RecalculationB() {
 
double AveragePrice_B 0;
 
double PriceTarget_B  0;
 
double CountB  0;
 
int ErrorB 0;
   for (
cnt OrdersTotal() - 1cnt >= 0cnt--) {
       if (
OrderSelect(cntSELECT_BY_POSMODE_TRADES))  {
          if (
OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberB) {
             if (
OrderType() == OP_BUY ) {
                
AveragePrice_B += OrderOpenPrice() * OrderLots();
                
CountB += OrderLots();
             }
          }
       }  
   }
   if (
totalB 0AveragePrice_B NormalizeDouble(AveragePrice_B CountBDig);
   if (
NewOrdersPlacedB) {
      for (
cnt OrdersTotal() - 1cnt >= 0cnt--) {
          if (
OrderSelect(cntSELECT_BY_POSMODE_TRADES)) {
             if (
OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberB) {
                if (
OrderType() == OP_BUY) {
                   
PriceTarget_B AveragePrice_B Take_Profit Point;
                   
StopperB AveragePrice_B StopLoss Point;
                   
flagB TRUE;
                }
             }
          }
      }
   }  
   if (
NewOrdersPlacedB) {
      if (
flagB == TRUE) {
         for (
cnt OrdersTotal() - 1cnt >= 0cnt--) {
             if (
OrderSelect(cntSELECT_BY_POSMODE_TRADES)) {        
                if (
OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberB) {
                   if (
OrderType() == OP_BUY ) {
                      
ErrorB OrderModify(OrderTicket(), AveragePrice_BStopperBPriceTarget_B0Blue);
                      if (
ErrorB == -1ShowERROR (ErrorB,0,0);
                      
NewOrdersPlacedB FALSE;
                   }
                }
             }  
         }
      }
   }
}

//===================================  пересчитываем ТП  СЕЛЛ ордеров  ========================================
void RecalculationS() {
   
double AveragePrice_S 0;
   
double PriceTarget_S  0;
   
double CountS  0;
   
int ErrorS 0;
   for (
cnt OrdersTotal() - 1cnt >= 0cnt--) {
     if (
OrderSelect(cntSELECT_BY_POSMODE_TRADES))  {
       if (
OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberS) {
          if (
OrderType() == OP_SELL ) {
             
AveragePrice_S += OrderOpenPrice() * OrderLots();
             
CountS += OrderLots();
           }
        }
      }  
    }
   if (
totalS 0AveragePrice_S NormalizeDouble(AveragePrice_S CountSDig);
   if (
NewOrdersPlacedS) {
      for (
cnt OrdersTotal() - 1cnt >= 0cnt--) {
          if (
OrderSelect(cntSELECT_BY_POSMODE_TRADES)) {
             if (
OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberS) {
                if (
OrderType() == OP_SELL) {
                   
PriceTarget_S AveragePrice_S Take_Profit Point;
                   
StopperS AveragePrice_S StopLoss Point;
                   
flagS TRUE
                }
             }
          }
      }
   }  
   if (
NewOrdersPlacedS) {
      if (
flagS == TRUE) {
         for (
cnt OrdersTotal() - 1cnt >= 0cnt--) {
            if (
OrderSelect(cntSELECT_BY_POSMODE_TRADES)) {        
               if (
OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberS) {
                  if (
OrderType() == OP_SELL) {
                     
ErrorS OrderModify(OrderTicket(), AveragePrice_SStopperSPriceTarget_S0Red);
                     if (
ErrorS == -1ShowERROR (ErrorS,0,0);
                     
NewOrdersPlacedS FALSE;
                 }
               }
            }  
         }
      }
   }

[свернуть]

Последний раз редактировалось NSerega; 13.04.2014 в 17:13.
13.04.2014, 11:33
Аватар для Joker1394
Joker1394 Joker1394 вне форума Активный участник
Регистрация: 03.06.2009 / Сообщений: 135
Поблагодарили 37 раз(а) / Репутация: 37
Ребят а реально сделать в обычном MACD,так что бы он свои значения показывал между уровнями -100 и 100,а не в плавающем режими?

Если возможно,то вот индюк,буду благодарен.Минимум и Максимум сделать -100 и 100 чтоб бегал в этих зонах))

Последний раз редактировалось NSerega; 13.04.2014 в 17:13.
13.04.2014, 12:05
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 2,002
Поблагодарили 10,024 раз(а) / Репутация: 10037
Если возможно,то вот индюк,буду благодарен.Минимум и Максимум сделать -100 и 100 чтоб бегал в этих зонах))
Разве, что так, но порой убегает за зоны +/-100, тогда можно отключить закрепление зон:
13.04.2014, 12:49
Аватар для Joker1394
Joker1394 Joker1394 вне форума Активный участник
Регистрация: 03.06.2009 / Сообщений: 135
Поблагодарили 37 раз(а) / Репутация: 37
Разве, что так, но порой убегает за зоны +/-100, тогда можно отключить закрепление зон:
Спасибо ща попробую что получилось
13.04.2014, 13:09
Аватар для Joker1394
Joker1394 Joker1394 вне форума Активный участник
Регистрация: 03.06.2009 / Сообщений: 135
Поблагодарили 37 раз(а) / Репутация: 37
Разве, что так, но порой убегает за зоны +/-100, тогда можно отключить закрепление зон:
не то у нас получилось нужно что бы настройки были как у штатного MACD,просто мне последний параметр нужна 1 а тут 9 меняю на один он на график не ставится (((
13.04.2014, 13:14
Аватар для Joker1394
Joker1394 Joker1394 вне форума Активный участник
Регистрация: 03.06.2009 / Сообщений: 135
Поблагодарили 37 раз(а) / Репутация: 37
вообщем подобная картинка должна быть с+/-100 уровнями))
13.04.2014, 13:38
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 2,002
Поблагодарили 10,024 раз(а) / Репутация: 10037
не то у нас получилось нужно что бы настройки были как у штатного MACD,просто мне последний параметр нужна 1 а тут 9 меняю на один он на график не ставится (((
Да, при значении 1 - не отображается, фиг его знает почему, но данный параметр отвечает за сигнальную линию.
вообщем подобная картинка должна быть с+/-100 уровнями))
а здесь сигнальная линия не отображается, так в чем проблема?
Закрытая тема

Метки
mql программирование, дописать индикатор, дописать эксперт, доработать советник, форекс программирование


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь профессионального программиста в написании МТС индикаторов советников. cmillion Поиск программиста, поиск заказов 96 05.09.2017 08:20
Написание экспертов, индикаторов. Улсуги VPS для ваших советников. RL.Maxim Temp, корзина, реклама 5 31.10.2009 21:55
Написание советников, индикаторов, скриптов для MT4 по Вашему ТЗ Impish Поиск программиста, поиск заказов 0 04.04.2009 21:30


Текущее время: 15:19. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO