Закрытая тема
29.07.2014, 13:46
Аватар для borobor
borobor borobor вне форума Элитный участник
Регистрация: 03.05.2009 / Адрес: новосибирск / Сообщений: 935
Поблагодарили 1,556 раз(а) / Репутация: 1567
Здравствуйте тестировал на валюте GBPUSD,постоянно сливает,решил попробовать поменять ордера на buylimit и selllimit, в итоге советник получился сливным на 87%.Может у кого есть идеи как его развернуть,т.е. сделать на 87 % прибыльным TP и SL 50 пунктов

Вложение 173603
поменяй советник
29.07.2014, 15:39
Аватар для arkan4
arkan4 arkan4 вне форума Новичок форума
Регистрация: 03.03.2011 / Сообщений: 35
Поблагодарили 12 раз(а) / Репутация: 13
ДоброгоДня!!!

Вопрос к програмистам и всем кто в этом понимает...
прилагаю скрипт и к нему описание... посмотрите пожалуйста может можно из него зделать чудо чтоб он работал всё точ в точ как счас работает только устанавливал ордера с появлением каждой новой свечки на том таймврейме где будет установлен. Приделать к нему магик для совмесной работы с другими советниками и ваще нада посмотреть чтоб он на пятизнаке тош работал а то чёта на пятизнаке не запускается ... если сможет кто буду признателен...

Последний раз редактировалось arkan4; 29.07.2014 в 15:49.
29.07.2014, 19:34
Аватар для samwin
samwin samwin вне форума Интересующийся
Регистрация: 29.07.2014 / Сообщений: 21
Поблагодарили 2 раз(а) / Репутация: 3
СРОЧНО! Всем привет уважаемые программисты, могли бы вы сделать стрелку к индикатору, когда цена касается верхнего или нижнего уровня, индикатор должен выдавать стрелку, как на примере на рисунке ниже

и желательно чтобы всяких цифр возле названия индикатора не было

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

[свернуть]


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

[свернуть]



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

PHP код:
//+------------------------------------------------------------------+
//|                                              Cronex T RSI BB.mq4 |
//|                                     Copyright © 2008-10, Cronex. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2008-10, Cronex"
#property  link      "http://www.metaquotes.net/"
//----
#property  indicator_separate_window
#property indicator_buffers 7
#property indicator_color1 DarkOrange
#property indicator_color2 SteelBlue
#property indicator_color3 Blue
#property indicator_color4 Black
#property indicator_color5 Black
#property indicator_color6 Blue
#property indicator_color7 Red

#property indicator_width1 2
#property indicator_width6 2
#property indicator_width7 2
//-----Level lines   
#property  indicator_level1  10
#property  indicator_level2 -10
//#property  indicator_level3 -10
//----
extern int     RSIPeriod=16;
extern double  TCurvature=0.618;
extern int     MAPeriod=10;
extern int     BandsPeriod=20;
extern int     BandsDeviations=2;
extern int     BandsShift=0;

//----
double RSITArray[];
double RSIArray[];
double BBMDArray[];
double BBUPArray[];
double BBDNArray[];
double MaxArray[];
double MinArray[];

double e1,e2,e3,e4,e5,e6;
double c1,c2,c3,c4;
double n,w1,w2,b2,b3;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators setting

   
SetIndexBuffer(0,RSITArray);
   
SetIndexBuffer(1,RSIArray);
   
SetIndexBuffer(2,BBMDArray);
   
SetIndexBuffer(3,BBUPArray);
   
SetIndexBuffer(4,BBDNArray);
   
SetIndexBuffer(5,MaxArray);
   
SetIndexBuffer(6,MinArray);
   
//---- drawing settings
   
SetIndexStyle(0,DRAW_LINE);
   
SetIndexStyle(1,DRAW_LINE);
   
   
SetIndexStyle(2,DRAW_LINE);   
   
SetIndexStyle(3,DRAW_LINE,STYLE_DOT,1);
   
SetIndexStyle(4,DRAW_LINE,STYLE_DOT,1);

   
SetIndexStyle(5,DRAW_HISTOGRAM);  
   
SetIndexStyle(6,DRAW_HISTOGRAM);
   
   
SetIndexEmptyValue(5,0.0);
   
SetIndexEmptyValue(6,0.0);
//---- name for DataWindow and indicator subwindow label
   
SetIndexLabel(0,"RSI T");
   
SetIndexLabel(1,"RSI");
   
SetIndexLabel(2,"BB Middle");
   
SetIndexLabel(3,"BB Upper");
   
SetIndexLabel(4,"BB Lower");
   
SetIndexLabel(5,"Max Point");   
   
SetIndexLabel(6,"Min Point");  
   
//
   
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
   
IndicatorShortName("Cronex T RSI BB Signal("+RSIPeriod+")");   
   
//---- variable reset
   
e1=0e2=0e3=0e4=0e5=0e6=0;
   
c1=0c2=0c3=0c4=0;
   
n=0;
   
w1=0w2=0;
   
b2=0b3=0;
   
//
   
b2=TCurvature*TCurvature;
   
b3=b2*TCurvature;
   
c1=-b3;
   
c2=(3*(b2+b3));
   
c3=-3*(2*b2+TCurvature+b3);
   
c4=(1+3*TCurvature+b3+3*b2);
   
n=RSIPeriod;
   
//
   
if (n<1n=1;
   
n=0.5*(n-1);
   
w1=2/(1);
   
w2=w1;
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
int Limit=300;
   
double Max;
   
int MaxB;
//---- indicator calculation
   
for(int i=Limiti>=0i--)
     {
      
RSIArray[i]=(
                    
iRSI(NULL,0,RSIPeriod+4*0,PRICE_WEIGHTED,i)+
                    
iRSI(NULL,0,RSIPeriod+4*1,PRICE_WEIGHTED,i)+
                    
iRSI(NULL,0,RSIPeriod+4*2,PRICE_WEIGHTED,i)+
                    
iRSI(NULL,0,RSIPeriod+4*3,PRICE_WEIGHTED,i))/4-50;      

      
e1=w1*RSIArray[i] + w2*e1;
      
e2=w1*e1 w2*e2;
      
e3=w1*e2 w2*e3;
      
e4=w1*e3 w2*e4;
      
e5=w1*e4 w2*e5;
      
e6=w1*e5 w2*e6;
//=====================================================
      
RSITArray[i]=c1*e6 c2*e5 c3*e4 c4*e3;
//=====================================================      
     
}

//================================================================================================ 
    
for(int j=Limit-1;j>=0;j--)
      {
      
BBMDArray[j]=iBandsOnArray(RSITArray,0,BandsPeriod,BandsDeviations,BandsShift,MODE_MAIN,j);
      
BBUPArray[j]=iBandsOnArray(RSITArray,0,BandsPeriod,BandsDeviations,BandsShift,MODE_UPPER,j);
      
BBDNArray[j]=iBandsOnArray(RSITArray,0,BandsPeriod,BandsDeviations,BandsShift,MODE_LOWER,j);
      
      if(
RSIArray[j]>BBUPArray[j])MaxArray[j]=RSIArray[j]-BBUPArray[j];
      if(
RSIArray[j]<BBDNArray[j])MinArray[j]=RSIArray[j]-BBDNArray[j];
      
//      if(RSITArray[j]>BBMDArray[j])MaxArray[j]=RSITArray[j]-BBMDArray[j];
//      if(RSITArray[j]<BBMDArray[j])MinArray[j]=RSITArray[j]-BBMDArray[j];      
      
      
}
//----
   
return(0);
  }
//+------------------------------------------------------------------+ 
[свернуть]

Последний раз редактировалось samwin; 29.07.2014 в 20:03.
29.07.2014, 20:50
Аватар для SYSTEMOFF
SYSTEMOFF SYSTEMOFF вне форума Интересующийся
Регистрация: 15.07.2014 / Сообщений: 9
Поблагодарили 0 раз(а) / Репутация: 1

По умолчанию Помогите решить проблему с открытием ордеров

Доброго времени суток, господа, помогите довести до ума советник. Суть проблемы такова:надо добавить функцию, чтобы после закрытия сделки в buy, например, следующая могла быть только в Sell и наоборот после сделки в Sell мог открываться только Buy . Как это сделать подскажите, текст советника ниже:

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

#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

extern double Lots = 1;
extern int Slippage = 5;
extern string comment = "WT BOT";
extern int Magic = 123;
extern int startHour =10;
extern int endHour =18;
extern int tf_filtr = 60;
extern int takeprofit = 10;
extern int stoploss = 5;


extern string A2 = "--- Параметры индикатора ---";
extern int T3Period = 8;
extern int T3Price = PRICE_CLOSE;
extern double b = 0.618;
extern string TimeFrame = "current time frame";
extern int BarCount = 1500;

//----- Параметры индикаторов -----
extern string A = "--- СИГНАЛЫ ---";
extern bool ByBar = true; //Для побарового режима. При открытии свечи. Иначе - на каждом тике.
extern int SignalBar = 1; //Бар, на котором проверяется сигнал индикатора



double Sig1, Sig2, SL, TP;


//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if (Digits == 3 || Digits == 5)
{
takeprofit *= 10;
stoploss *= 10;
Slippage *= 10;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{



// индикатор в осциллографе
Sig1 = NormalizeDouble(iCustom(Symbol(), 0, "BB_MACD_v1.01", 0, 1), Digits); //лайм
Sig2 = NormalizeDouble(iCustom(Symbol(), 0, "BB_MACD_v1.01", 1, 1), Digits); //магнета


int Sig = Signal();

if((Sig == 1 && High[1] > High[2])&&(Sig1 != EMPTY_VALUE && Sig2 == EMPTY_VALUE) && (CountSell() > 0)) //лайм и есть ордера на продажу. то закрываем
{
for (int i = OrdersTotal ()-1; i >=0; i--)
{
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true)
{
if (OrderMagicNumber () == Magic && OrderType() == OP_SELL )
OrderClose (OrderTicket(), OrderLots (), Ask, Slippage, Black);
}

}

}

if((Sig == -1 && Low[1] < Low[2])&&( Sig1 == EMPTY_VALUE && Sig2 != EMPTY_VALUE) && (CountBuy() > 0))//магнета и есть ордера на покупку. то закрываем

{
for (i = OrdersTotal ()-1; i >=0; i--)
{
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true)
{
if (OrderMagicNumber () == Magic && OrderType() == OP_BUY )
OrderClose (OrderTicket(), OrderLots (), Bid, Slippage, Black);
}

}

}
if((Hour()>=startHour && Hour()<endHour)&&(Sig == 1 && High[1] > High[2])&&(Sig1 != EMPTY_VALUE && Sig2 == EMPTY_VALUE) && (CountBuy() == 0))//зеленый и нет ордера на покупку. то открываем
{
SL = NormalizeDouble(Low[1]-stoploss*Point,Digits);
TP = NormalizeDouble(High[1]+takeprofit*Point,Digits);

OrderSend (Symbol(), OP_BUY, Lots, Ask, Slippage, SL, TP, comment, Magic, 0, Blue);

}
if((Hour()>=startHour && Hour()<endHour)&&(Sig == -1 && Low[1] < Low[2])&&( Sig1 == EMPTY_VALUE && Sig2 != EMPTY_VALUE)&&( CountSell() == 0))//красный и нет ордера на продажу. то открываем
{
SL = NormalizeDouble(High[1]+stoploss*Point,Digits);
TP = NormalizeDouble(Low[1]-takeprofit*Point,Digits);

OrderSend (Symbol(), OP_SELL, Lots, Bid, Slippage, SL, TP, comment, Magic, 0, Red);


}

return(0);
}
//+------------------------------------------------------------------+
int CountSell ()
{
int count = 0;
for (int trade = OrdersTotal()-1; trade >= 0; trade--)
{
OrderSelect (trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol () == Symbol()&& OrderMagicNumber () == Magic)
{
if (OrderType () == OP_SELL)
count++;
}
}
return(count);
}
//+------------------------------------------------------------------+

int CountBuy ()
{
int count = 0;
for (int trade = OrdersTotal()-1; trade >= 0; trade--)
{
OrderSelect (trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol () == Symbol()&& OrderMagicNumber () == Magic)
{
if (OrderType () == OP_BUY)
count++;
}
}
return(count);
}
//+------------------------------------------------------------------+
//T3_08
int Signal()
{
double L1,L2,L1a,L2a;

L1 = iCustom(NULL,0,"T3_08_2Color",T3Period,T3Price,b ,TimeFrame,BarCount,0,SignalBar);
L2 = iCustom(NULL,0,"T3_08_2Color",T3Period,T3Price,b ,TimeFrame,BarCount,1,SignalBar);
L1a = iCustom(NULL,0,"T3_08_2Color",T3Period,T3Price,b ,TimeFrame,BarCount,0,SignalBar+1);
L2a = iCustom(NULL,0,"T3_08_2Color",T3Period,T3Price,b ,TimeFrame,BarCount,1,SignalBar+1);

if(L1 < L2 && L1a < L2a) return(+1);
if(L1 > L2 && L1a > L2a ) return(-1);
return(0);
}
[свернуть]
30.07.2014, 03:12
Аватар для zhserg
zhserg zhserg на форуме Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
надо добавить функцию, чтобы после закрытия сделки в buy, например, следующая могла быть только в Sell и наоборот после сделки в Sell мог открываться только Buy . Как это сделать подскажите
Вот очень полезная ссылка _http://forum.mql4.com/ru/38949 . Немного сообразительности и дело "в шляпе"
zhserg.ru советники, скрипты, индикаторы на заказ
30.07.2014, 06:50
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
Вот очень полезная ссылка _http://forum.mql4.com/ru/38949 . Немного сообразительности и дело "в шляпе"
А на форуме mql4 не ты ему ссылку дал? Он там под другим ником.
И ты может тоже маскируешься?
30.07.2014, 06:56
Аватар для zhserg
zhserg zhserg на форуме Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
А на форуме mql4 не ты ему ссылку дал? Он там под другим ником.
И ты может тоже маскируешься?
Нет, не я. А кой мне маскироваться, я же не шпиён...
zhserg.ru советники, скрипты, индикаторы на заказ
30.07.2014, 07:51
Аватар для samwin
samwin samwin вне форума Интересующийся
Регистрация: 29.07.2014 / Сообщений: 21
Поблагодарили 2 раз(а) / Репутация: 3
Ой, на скрине стрелки не правильно нарисовал, наоборот должно, когда индикатор коснулся верхнего уровня то стрелка вниз должна, когда индикатор коснулся нижнего уровня то стрелка вверх)

СРОЧНО! Всем привет уважаемые программисты, могли бы вы сделать стрелку к индикатору, когда цена касается верхнего или нижнего уровня, индикатор должен выдавать стрелку, как на примере на рисунке ниже

и желательно чтобы всяких цифр возле названия индикатора не было

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

[свернуть]


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

[свернуть]



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

PHP код:
//+------------------------------------------------------------------+
//|                                              Cronex T RSI BB.mq4 |
//|                                     Copyright © 2008-10, Cronex. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2008-10, Cronex"
#property  link      "http://www.metaquotes.net/"
//----
#property  indicator_separate_window
#property indicator_buffers 7
#property indicator_color1 DarkOrange
#property indicator_color2 SteelBlue
#property indicator_color3 Blue
#property indicator_color4 Black
#property indicator_color5 Black
#property indicator_color6 Blue
#property indicator_color7 Red

#property indicator_width1 2
#property indicator_width6 2
#property indicator_width7 2
//-----Level lines   
#property  indicator_level1  10
#property  indicator_level2 -10
//#property  indicator_level3 -10
//----
extern int     RSIPeriod=16;
extern double  TCurvature=0.618;
extern int     MAPeriod=10;
extern int     BandsPeriod=20;
extern int     BandsDeviations=2;
extern int     BandsShift=0;

//----
double RSITArray[];
double RSIArray[];
double BBMDArray[];
double BBUPArray[];
double BBDNArray[];
double MaxArray[];
double MinArray[];

double e1,e2,e3,e4,e5,e6;
double c1,c2,c3,c4;
double n,w1,w2,b2,b3;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators setting

   
SetIndexBuffer(0,RSITArray);
   
SetIndexBuffer(1,RSIArray);
   
SetIndexBuffer(2,BBMDArray);
   
SetIndexBuffer(3,BBUPArray);
   
SetIndexBuffer(4,BBDNArray);
   
SetIndexBuffer(5,MaxArray);
   
SetIndexBuffer(6,MinArray);
   
//---- drawing settings
   
SetIndexStyle(0,DRAW_LINE);
   
SetIndexStyle(1,DRAW_LINE);
   
   
SetIndexStyle(2,DRAW_LINE);   
   
SetIndexStyle(3,DRAW_LINE,STYLE_DOT,1);
   
SetIndexStyle(4,DRAW_LINE,STYLE_DOT,1);

   
SetIndexStyle(5,DRAW_HISTOGRAM);  
   
SetIndexStyle(6,DRAW_HISTOGRAM);
   
   
SetIndexEmptyValue(5,0.0);
   
SetIndexEmptyValue(6,0.0);
//---- name for DataWindow and indicator subwindow label
   
SetIndexLabel(0,"RSI T");
   
SetIndexLabel(1,"RSI");
   
SetIndexLabel(2,"BB Middle");
   
SetIndexLabel(3,"BB Upper");
   
SetIndexLabel(4,"BB Lower");
   
SetIndexLabel(5,"Max Point");   
   
SetIndexLabel(6,"Min Point");  
   
//
   
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
   
IndicatorShortName("Cronex T RSI BB Signal("+RSIPeriod+")");   
   
//---- variable reset
   
e1=0e2=0e3=0e4=0e5=0e6=0;
   
c1=0c2=0c3=0c4=0;
   
n=0;
   
w1=0w2=0;
   
b2=0b3=0;
   
//
   
b2=TCurvature*TCurvature;
   
b3=b2*TCurvature;
   
c1=-b3;
   
c2=(3*(b2+b3));
   
c3=-3*(2*b2+TCurvature+b3);
   
c4=(1+3*TCurvature+b3+3*b2);
   
n=RSIPeriod;
   
//
   
if (n<1n=1;
   
n=0.5*(n-1);
   
w1=2/(1);
   
w2=w1;
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
int Limit=300;
   
double Max;
   
int MaxB;
//---- indicator calculation
   
for(int i=Limiti>=0i--)
     {
      
RSIArray[i]=(
                    
iRSI(NULL,0,RSIPeriod+4*0,PRICE_WEIGHTED,i)+
                    
iRSI(NULL,0,RSIPeriod+4*1,PRICE_WEIGHTED,i)+
                    
iRSI(NULL,0,RSIPeriod+4*2,PRICE_WEIGHTED,i)+
                    
iRSI(NULL,0,RSIPeriod+4*3,PRICE_WEIGHTED,i))/4-50;      

      
e1=w1*RSIArray[i] + w2*e1;
      
e2=w1*e1 w2*e2;
      
e3=w1*e2 w2*e3;
      
e4=w1*e3 w2*e4;
      
e5=w1*e4 w2*e5;
      
e6=w1*e5 w2*e6;
//=====================================================
      
RSITArray[i]=c1*e6 c2*e5 c3*e4 c4*e3;
//=====================================================      
     
}

//================================================================================================ 
    
for(int j=Limit-1;j>=0;j--)
      {
      
BBMDArray[j]=iBandsOnArray(RSITArray,0,BandsPeriod,BandsDeviations,BandsShift,MODE_MAIN,j);
      
BBUPArray[j]=iBandsOnArray(RSITArray,0,BandsPeriod,BandsDeviations,BandsShift,MODE_UPPER,j);
      
BBDNArray[j]=iBandsOnArray(RSITArray,0,BandsPeriod,BandsDeviations,BandsShift,MODE_LOWER,j);
      
      if(
RSIArray[j]>BBUPArray[j])MaxArray[j]=RSIArray[j]-BBUPArray[j];
      if(
RSIArray[j]<BBDNArray[j])MinArray[j]=RSIArray[j]-BBDNArray[j];
      
//      if(RSITArray[j]>BBMDArray[j])MaxArray[j]=RSITArray[j]-BBMDArray[j];
//      if(RSITArray[j]<BBMDArray[j])MinArray[j]=RSITArray[j]-BBMDArray[j];      
      
      
}
//----
   
return(0);
  }
//+------------------------------------------------------------------+ 
[свернуть]
30.07.2014, 07:59
Аватар для samwin
samwin samwin вне форума Интересующийся
Регистрация: 29.07.2014 / Сообщений: 21
Поблагодарили 2 раз(а) / Репутация: 3
http://forexsystemsru.com/873334-post11168.html

тут перепутал на скрине со стрелкми) наоборот , чтобы когда индикатор касался верхнего уровня, надо что выхадила стрелка с сигналов на продажу и нижниго уровня на покупку
30.07.2014, 08:00
Аватар для SYSTEMOFF
SYSTEMOFF SYSTEMOFF вне форума Интересующийся
Регистрация: 15.07.2014 / Сообщений: 9
Поблагодарили 0 раз(а) / Репутация: 1
Вот очень полезная ссылка _http://forum.mql4.com/ru/38949 . Немного сообразительности и дело "в шляпе"
Там очень много полезных функций, но мне как новичку трудно разобраться, не могли бы вы помочь. Спасибо
30.07.2014, 08:07
Аватар для Sergey55555555
Sergey55555555 Sergey55555555 на форуме Почётный гражданин
Регистрация: 26.07.2013 / Сообщений: 365
Поблагодарили 341 раз(а) / Репутация: 336
День добрый.
Подскажите/покажите, пожалуйста.

1. Куда поставить этот код
PHP код:
//фильтр время 
 
if(use_work_time
 { 
  if(
Start>Stop
 { 
 if(
Hour()>=Stop && Hour()<Start) return; 
 } 
  
 if(
Start<Stop
 { 
 if(
Hour()<Start || Hour()>=Stop) return; 
 } 
 } 
а то что-то никак не найду место
В самом начале планирую вот так:
PHP код:
extern string V_R "Время работы"
extern bool use_work_time false
extern int Start 0
extern int Stop 24
2. Как сделать, чтобы "BackFootSteps" понимал дроби?
типа не просто 1 или 2, а 1,15.

Я не кодер, поэтому просьба, по возможности, прямо пальцем показать на строчку куда и что
30.07.2014, 08:15
Аватар для zhserg
zhserg zhserg на форуме Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Там очень много полезных функций, но мне как новичку трудно разобраться, не могли бы вы помочь. Спасибо
Конкретно под вашу задачу нужна эта функция _http://forum.mql4.com/ru/38949/page4#434227 .

Перед открытием вашего ордера проверяйте этой функцией тип последнего закрытого ордера.
zhserg.ru советники, скрипты, индикаторы на заказ
30.07.2014, 08:21
Аватар для zhserg
zhserg zhserg на форуме Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Сообщение от: Sergey55555555
Куда поставить этот код
Можно сразу после строчек
PHP код:
//+-------------------------------------------------------------------------------------+
//| Функция START эксперта                                                              |
//+-------------------------------------------------------------------------------------+
int start()
  { 
Цитата:
Как сделать, чтобы "BackFootSteps" понимал дроби?
типа не просто 1 или 2, а 1,15.
строку
PHP код:
extern int BackFootSteps 1
поменять на
PHP код:
extern double BackFootSteps 1
zhserg.ru советники, скрипты, индикаторы на заказ
30.07.2014, 08:24
Аватар для parahok
parahok parahok вне форума Активный участник
Регистрация: 13.12.2012 / Сообщений: 92
Поблагодарили 74 раз(а) / Репутация: 75

По умолчанию помощь в програмировании

Здравствуйте.Объясните пожалуйста по поводу доработки.У меня есть сов который без ключа не работает.Когда вводиш ключ он начинает работать.А можно нечто подобное прописать в индикаторе что бы индикатор тоже без ключа не работал.Как это сделать?Если можно напишите пожалуйста кусок кода .И куда его вставить в индикаторе.Кусок кода который написан в советнике прилагаю в описании
30.07.2014, 09:03
Аватар для Sergey55555555
Sergey55555555 Sergey55555555 на форуме Почётный гражданин
Регистрация: 26.07.2013 / Сообщений: 365
Поблагодарили 341 раз(а) / Репутация: 336
Можно сразу после строчек
Всё работает правильно,
СПАСИБО!
+++++++++++++++++++++++++++++++++++++

Но тут же возник другой вопрос.
Как удалять не сработавшие отложки при начале "запретного" времени?
30.07.2014, 10:22
Аватар для Рюня
Рюня Рюня вне форума Почётный гражданин
Регистрация: 15.04.2010 / Сообщений: 70
Поблагодарили 313 раз(а) / Репутация: 314
Здравствуйте! Ищу эти индикаторы в mq4. Благодарю за внимание и помощь.
dadik , leostan , upvtku 
30.07.2014, 10:25
Аватар для zhserg
zhserg zhserg на форуме Местный знаток
Регистрация: 16.12.2012 / Адрес: Россия, Сибирь / Сообщений: 515
Поблагодарили 726 раз(а) / Репутация: 729
Сообщение от: Sergey55555555
Всё работает правильно,
СПАСИБО!
+++++++++++++++++++++++++++++++++++++

Но тут же возник другой вопрос.
Как удалять не сработавшие отложки при начале "запретного" времени?
Тут уже парой строк не обойтись...
zhserg.ru советники, скрипты, индикаторы на заказ
30.07.2014, 10:27
Аватар для SYSTEMOFF
SYSTEMOFF SYSTEMOFF вне форума Интересующийся
Регистрация: 15.07.2014 / Сообщений: 9
Поблагодарили 0 раз(а) / Репутация: 1
Конкретно под вашу задачу нужна эта функция _http://forum.mql4.com/ru/38949/page4#434227 .

Перед открытием вашего ордера проверяйте этой функцией тип последнего закрытого ордера.
Спасибо
Я ее изменил под привычный мне вид, как мне показалось, нужно для моей ситауции, и сделал две функции чтобы проверка выполнялась отдельно на бай и отдельно на селл, но чтото не так, советник проводит две сделки одну на buy, другую на sell и останавливается, привожу код для sell ниже:

PHP код:
int CountSellHistory ()
{
  
int      ik=OrdersHistoryTotal()-1r=0;


  for (
i=0i<ki--) 
  {
    if (
OrderSelect(iSELECT_BY_POSMODE_HISTORY)) 
    {
      if (
OrderSymbol () == Symbol()&& OrderMagicNumber () == Magic
      {
        if (
OrderType()==OP_SELL
        {
            
r=OrderType();
          }
        }
      }
    }
  
  return(
r);

30.07.2014, 11:02
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 2,002
Поблагодарили 10,024 раз(а) / Репутация: 10037
Здравствуйте! Ищу эти индикаторы в mq4. Благодарю за внимание и помощь.
Только Trend Edge 2.
30.07.2014, 11:02
Аватар для vlad_123
vlad_123 vlad_123 вне форума Местный знаток
Регистрация: 29.01.2013 / Сообщений: 459
Поблагодарили 930 раз(а) / Репутация: 934
Спасибо
Я ее изменил под привычный мне вид, как мне показалось, нужно для моей ситауции, и сделал две функции чтобы проверка выполнялась отдельно на бай и отдельно на селл, но чтото не так, советник проводит две сделки одну на buy, другую на sell и останавливается, привожу код для sell ниже:

PHP код:
int CountSellHistory ()
{
  
int      ik=OrdersHistoryTotal()-1r=0;


  for (
i=0i<ki--) 
  {
    if (
OrderSelect(iSELECT_BY_POSMODE_HISTORY)) 
    {
      if (
OrderSymbol () == Symbol()&& OrderMagicNumber () == Magic
      {
        if (
OrderType()==OP_SELL
        {
            
r=OrderType();
          }
        }
      }
    }
  
  return(
r);

Вместо
Код:
for (i=0; i<k; i--)
поставить
Код:
for (i=0; i<k; i++)
а вместо
Код:
r=OrderType();
поставить
Код:
r++;
Тогда эта функция будет подсчитывать количество закрытых OP_SELL

На заказ не программирую.

Последний раз редактировалось vlad_123; 30.07.2014 в 11:05.
Закрытая тема

Метки
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


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


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