Закрытая тема
31.07.2012, 11:20
Аватар для deepdig
deepdig deepdig вне форума Активный участник
За второе место в конкурсе За второе место в конкурсе За призовое место в конкурсе 

Регистрация: 01.05.2011 / Адрес: Волгоград / Сообщений: 58
Поблагодарили 83 раз(а) / Репутация: 85
Помогите пожалуйста разобраться! Никак не получается добиться от советника октрытия второго цикла отложенных ордеров.

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

PHP код:
extern double lot1     0.1;      //рабочий лот 
extern double lot2     0.1;      //лот 1-го отложенного ордера 
extern double lot3     0.1;      //лот 2-го отложенного ордера 
extern double lot4     0.1;      //лот 3-го отложенного ордера 
extern double lot5     0.1;      //лот 4-го отложенного ордера 
extern int Stop_Loss   30;        //стоп лосс 
extern int Take_Profit 30;        //тейк профит 
extern int Open_Level  10;        //уровень отдаления от цены, на котором ставим отложенный ордер 
extern int slippage    2;         //уровень допустимого реквота 
extern int MagicNumber 0;      //магическое число ордеров 

int tiсket1=0ticket2=0ticket3=0ticket4=0ticket5=0
   

  
int init() 
  { 
  
Comment("Старт советника ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS)); 
    
  return(
0); 
  } 



  
int start() 
  { 
   
   
   
double SLbuy=0SLsell=0,TPbuy=0,TPsell=0
   
double Spread=Ask-Bid
   
double Pending_By=Ask+Open_Level*Point
   
double Pending_Sell=Bid-Open_Level*Point
    
if(
Stop_Loss>0) {SLbuy=Ask-Stop_Loss*Point-SpreadSLsell=Bid+Stop_Loss*Point+Spread;} 
if(
Take_Profit>0) {TPbuy=Ask+Take_Profit*PointTPsell=Bid-Take_Profit*Point;} 


  
int count=OrdersTotal();                            // объявление переменной колличества ордеров 
   
//-------------------------Старт цикла. Открытие 1-го и 2-го отрдеров ------------ 

   
if(count==0tiсket1=OrderSend (Symbol(), OP_SELLlot1Bidslippage,        
   
SLsellTPsell"LLL_1_Sell"MagicNumber0Red); 
    
   if(
count==0ticket2=OrderSend (Symbol(), OP_BUYSTOPlot2Pending_Byslippage,  
   
SLbuy+Open_Level*PointTPbuy+Open_Level*Point"LLL_1_Bystop"MagicNumber0Blue); 
     
//-------------------------удаление несработавших отложенных ордеров---------------------- 

   
for(int i=0i<counti++)                         // цикл пересчета открытых ордеров 
   

   
bool res=OrderSelect(iSELECT_BY_POS);            // выбор ордера по позиции 
      
if (res
      { 
      
int ticket=OrderTicket(); 
         if (
count==1OrderDelete(ticket);          // удаление несработавших отложенных ордеров 
      

   }   
//---------------------------открытие 2-го отложенного ордера------------------------------ 
     
   
bool res1=OrderSelect(ticket2SELECT_BY_TICKET);           // выбор 1-го отложенного ордера          
      
if (res1
      { 
      
int type=OrderType();                           // проверка состояния 1-го отложенного ордера 
       
         
if (type==0&&ticket3==0ticket3=OrderSend (Symbol(), OP_SELLSTOPlot3,  
         
Pending_Sell+SpreadslippageSLsell-Open_Level*PointTPsell-Open_Level*Point"LLL_1_Selltop"MagicNumber0Yellow);   
                                                      
//открытие 2-го отложенного ордера 
      

           
       
//---------------------------открытие 3-го отложенного ордера------------------------------       
       
   
bool res2=OrderSelect(ticket3SELECT_BY_TICKET);           // выбор 2-го отложенного ордера  
      
if (res2
      { 
      
int type2=OrderType();                          // проверка состояния 2-го отложенного ордера 
       
         
if(type2==1&&ticket4==0ticket4=OrderSend (Symbol(), OP_BUYSTOPlot4Pending_By-Spreadslippage,  
         
SLbuy+Open_Level*Point-SpreadTPbuy+Open_Level*Point-Spread"LLL_2_Bystop"MagicNumber0Green); 
                                                      
//открытие 3-го отложенного ордера    
      

          
//---------------------------открытие 4-го отложенного ордера------------------------------ 
       
   
bool res3=OrderSelect(ticket4SELECT_BY_TICKET);           // выбор 3-го отложенного ордера  
      
if (res3
      { 
      
int type3=OrderType();                          // проверка состояния 3-го отложенного ордера 
       
         
if (type3==0&&ticket5==0ticket5=OrderSend (Symbol(), OP_SELLSTOPlot5,  
         
Pending_Sell+SpreadslippageSLsell-Open_Level*PointTPsell-Open_Level*Point"LLL_2_Selltop"MagicNumber0White); 
                                                      
//открытие 4-го отложенного ордера    
      

    
   return(
0); 
  } 
[свернуть]

Последний раз редактировалось chocolate; 01.08.2012 в 13:28.
31.07.2012, 12:41
Аватар для МК07
МК07 МК07 вне форума Новичок форума
Регистрация: 24.11.2010 / Сообщений: 6
Поблагодарили 5 раз(а) / Репутация: 6
Уважаемые программисты!Есть трёхцветрый индикатор HMA.Нужно при каждом цвете выполнять разные условия.Как мне через iCustom "разделить" эту кривую по цветам?

Заранее благодарен!

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


//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 RoyalBlue
#property indicator_color2 Yellow
#property indicator_color3 Red

//---- indicator parameters
extern int Take_Profit = 48;
extern int Stop_Loss = 38;
extern int HMA_Period= 8;
extern bool Alerts = false;
extern bool EmailOn = false;
bool aTurnedUp = false;
bool aTurnedDown = false;

//---- indicator buffers
double ind_buffer0[];
double ind_buffer1[];
double ind_buffer2[];
double buffer[];

int draw_begin0;

//+------------------------------------------------------------------

//| Custom indicator initialization function |
//+------------------------------------------------------------------

int init()
{
//---- indicator buffers mapping
IndicatorBuffers(4);
if(!SetIndexBuffer(0,ind_buffer0) && !SetIndexBuffer(1,ind_buffer1)
&& !SetIndexBuffer(2,ind_buffer2) && !SetIndexBuffer(3, buffer))
Print("cannot set indicator buffers!");
// ArraySetAsSeries(ind_buffer1,true);
//---- drawing settings
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,3);
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,3);
draw_begin0=HMA_Period+MathFloor(MathSqrt(HMA_Period));
SetIndexDrawBegin(0,draw_begin0);
SetIndexDrawBegin(1,draw_begin0);
SetIndexDrawBegin(2,draw_begin0);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("HMA("+HMA_Period+")");
SetIndexLabel(0,"Hull Moving Average");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------

//| Moving Averages Convergence/Divergence |
//+------------------------------------------------------------------

int start()
{
int limit,i;
int counted_bars=IndicatorCounted();
double tmp, tmpPrevious;


//---- check for possible errors
if(counted_bars<1)
{
for(i=1;i<=draw_begin0;i++) buffer[Bars-i]=0;
for(i=1;i<=HMA_Period;i++)
{
ind_buffer0[Bars-i]=0;
ind_buffer1[Bars-i]=0;
ind_buffer2[Bars-i]=0;
}
}
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- MA difference counted in the 1-st buffer
for(i=0; i<limit; i++)
{

buffer[i]=iMA(NULL,0,MathFloor
(HMA_Period/1.5),0,MODE_LWMA,PRICE_CLOSE,i)*2- //change the HMA_Period/xx will change when the colors chang at given rate
iMA(NULL,0,HMA_Period,0,MODE_LWMA,PRICE_CLOSE,i);
}
//---- HMA counted in the 0-th buffer
tmp=iMAOnArray(buffer,0,MathFloor(MathSqrt
(HMA_Period)),0,MODE_LWMA,0);

for(i=1; i<limit; i++)
{

tmpPrevious=iMAOnArray(buffer,0,MathFloor(MathSqrt
(HMA_Period)),0,MODE_LWMA,i);

if (tmpPrevious > tmp)
{
ind_buffer0[i] = EMPTY_VALUE;
ind_buffer1[i] = EMPTY_VALUE;
ind_buffer2[i] = tmpPrevious;
ind_buffer2[i-1] = tmp; // !
}
else if (tmpPrevious < tmp)
{
ind_buffer0[i] = tmpPrevious;
ind_buffer0[i-1] = tmp; // !
ind_buffer1[i] = EMPTY_VALUE;
ind_buffer2[i] = EMPTY_VALUE;
}

else
{
ind_buffer0[i] = CLR_NONE;
ind_buffer1[i] = tmpPrevious;
ind_buffer2[i-1] = tmp; // !
ind_buffer2[i] = CLR_NONE;
}
if (Alerts)
{
if (tmpPrevious < tmp) //change the wt[?] number will change when the signal will trigger based on # of last bars
{
if (!aTurnedUp)
{
if (BarChanged())
{
Alert ("Buy Entry - " + Symbol() + " " + "EMA " + aRperiodf() + " - Price: " + DoubleToStr(Ask,4));
PlaySound("alert.wav");
if (EmailOn)
{
SendMail("Buy Entry - "+(Symbol())+" "+"EMA"+(aRperiodf()),(Symbol())+" Price: "+DoubleToStr(Ask,4)+" Stop: "+ DoubleToStr(aGetSLl(),4)
+" Limit: "+DoubleToStr(aGetTPl(),4)); //send email with entry price
}
}
aTurnedUp = true;
aTurnedDown = false;
}
}
if (tmpPrevious > tmp) //change the wt[?] number will change when the signal will trigger based on # of last bars
{
if (!aTurnedDown)
{
if (BarChanged())
{
Alert ("Sell Entry - "+(Symbol())+" "+"EMA "+(aRperiodf())," - Price: "+DoubleToStr(Bid,4));
PlaySound("alert.wav");
if (EmailOn)
{
SendMail("Sell Entry - "+(Symbol())+" "+"EMA"+(aRperiodf()),(Symbol())+" Price: "+DoubleToStr(Ask,4)+" Stop: "+ DoubleToStr(aGetSLs(),4)
+" Limit: "+DoubleToStr(aGetTPs(),4)); //send email with entry price
}
}
aTurnedDown = true;
aTurnedUp = false;
}
}
}

tmp = tmpPrevious;
}


//---- done
return(0);
}

bool BarChanged()
{
static datetime dt = 0;

if (dt != Time[0])
{
dt = Time[0];
return(true);
}
return(false);
}

//---- done
return(0);


double aGetTPs() { return(Bid-Take_Profit*Point); }
double aGetTPl() { return(Ask+Take_Profit*Point); }
double aGetSLs() { return(Bid+Stop_Loss*Point); }
double aGetSLl() { return(Ask-Stop_Loss*Point); }
int aRperiodf() { return(HMA_Period*Point*10000); }
[свернуть]

Последний раз редактировалось chocolate; 01.08.2012 в 13:28.
31.07.2012, 12:49
Регистрация: 13.03.2009 / Сообщений: 2,406
Поблагодарили 1,980 раз(а) / Репутация: 2057
Уважаемые программисты!Есть трёхцветрый индикатор HMA.Нужно при каждом цвете выполнять разные условия.Как мне через iCustom "разделить" эту кривую по цветам?

Заранее благодарен!

//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 RoyalBlue
#property indicator_color2 Yellow
#property indicator_color3 Red
В iCustom, предпоследний параметр, это номер буфера. Каждый цвет находится в своём буфере. Вызывай 3 раза iCustom с указанием разных буферов начиная с 0 по 2. В каком буфере есть значение, такой и цвет отображается.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
31.07.2012, 13:05
Аватар для МК07
МК07 МК07 вне форума Новичок форума
Регистрация: 24.11.2010 / Сообщений: 6
Поблагодарили 5 раз(а) / Репутация: 6
В iCustom, предпоследний параметр, это номер буфера. Каждый цвет находится в своём буфере. Вызывай 3 раза iCustom с указанием разных буферов начиная с 0 по 2. В каком буфере есть значение, такой и цвет отображается.


Буфера три,но линия на графике одна.На каждом баре надо знать какого она цвета!Как это сделать?
31.07.2012, 13:14
Регистрация: 13.03.2009 / Сообщений: 2,406
Поблагодарили 1,980 раз(а) / Репутация: 2057
Буфера три,но линия на графике одна.На каждом баре надо знать какого она цвета!Как это сделать?
Я же уже написал. В каком буфере есть значение, такой и цвет отображается.
Линии 3, каждая имеет свой цвет, просто они чередуются формируя одну. Правда иногда в подобных решениях применяют ещё и наложение линий одной на другую. в Таком случае нужно смотреть более старший, по номеру буфер, так как именно он рисуется поверх младшего.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 31.07.2012 в 13:18.
МК07 
01.08.2012, 18:13
Аватар для Grinii
Grinii Grinii вне форума Новичок форума
Регистрация: 10.04.2010 / Сообщений: 16
Поблагодарили 4 раз(а) / Репутация: 5
Добрый вечер уважаемые программисты. Помогите мне озвучить индикатор Parabolic_SW_1. Чтобы когда появлялась точка в другую сторону он мне выдавал музычку с музыкального файла в формате wav. , название которого будет прописано в индикаторе, а сам файл будет находиться в папке «sounds» МТ4 . За ранее большое спасибо !!!
01.08.2012, 19:15
Аватар для gush
gush gush вне форума бродяга
Регистрация: 24.01.2011 / Сообщений: 2,523
Поблагодарили 5,294 раз(а) / Репутация: 5510
eevviill у тебя случайно нет что-то подобного по RSI:

если значение RSI=n, покупаем..
если значение RSI=n, продаем..
если значение RSI=n, закрываем лося..
если значение RSI=n, фиксим профит..
где n - значение штатного RSI

маджик, лот..
спасибо.
больше молока получит тот котенок, который больше всех пищит..
01.08.2012, 22:07
Аватар для Fillelin
Fillelin Fillelin вне форума Местный знаток
Регистрация: 02.09.2011 / Сообщений: 211
Поблагодарили 617 раз(а) / Репутация: 619
eevviill

Помоги Пожалуйста !!!
Показывать ему previous и forecast
02.08.2012, 06:32
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
eevviill у тебя случайно нет что-то подобного по RSI:

если значение RSI=n, покупаем..
если значение RSI=n, продаем..
если значение RSI=n, закрываем лося..
если значение RSI=n, фиксим профит..
где n - значение штатного RSI

маджик, лот..
спасибо.
У меня вообще нету советников кроме выставляльщика стопов+бу.
Но то что ты написал работать точно не будет.
gush 
02.08.2012, 06:33
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
eevviill

Помоги Пожалуйста !!!
Показывать ему previous и forecast
Я ж написал что не могу.

Последний раз редактировалось eevviill; 02.08.2012 в 06:34. Причина: и
iodin 
02.08.2012, 11:44
Аватар для jonynator
jonynator jonynator вне форума Новичок форума
Регистрация: 07.03.2011 / Сообщений: 36
Поблагодарили 4 раз(а) / Репутация: 14

По умолчанию Помогите добавить второй магик

Помогите добавить в советник второй магик, идея в том чтобы он следил за ордерами 2 других советников с разными магиками. Заранее благодарен.
02.08.2012, 12:03
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Помогите добавить в советник второй магик, идея в том чтобы он следил за ордерами 2 других советников с разными магиками. Заранее благодарен.
.
02.08.2012, 13:36
Аватар для jonynator
jonynator jonynator вне форума Новичок форума
Регистрация: 07.03.2011 / Сообщений: 36
Поблагодарили 4 раз(а) / Репутация: 14
К сожалению не срабатывает, он должен учитывать только прибыль или потери ордеров с указанными магиками, а не баланс по счёту. И он должен удалять только ордера с указанными магиками.

eevviill сможешь глянуть а то очень надо.

Последний раз редактировалось jonynator; 02.08.2012 в 14:29.
03.08.2012, 12:13
Аватар для jonynator
jonynator jonynator вне форума Новичок форума
Регистрация: 07.03.2011 / Сообщений: 36
Поблагодарили 4 раз(а) / Репутация: 14

По умолчанию Помогите добавить второй магик

eevviill Может этот будет работать как надо, добавь пожалуйста в него второй магик. Буду безразмерно благодарен .
03.08.2012, 12:20
Регистрация: 13.03.2009 / Сообщений: 2,406
Поблагодарили 1,980 раз(а) / Репутация: 2057
eevviill Может этот будет работать как надо, добавь пожалуйста в него второй магик. Буду безразмерно благодарен .
А чё к автору слабо обратиться? В верху кода есть координаты.
Строчка #property link ...
Сомневаюсь что за такую переделку он денег запросит, хотя это ему решать. В любом случае спросить точно будет бесплатно.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
03.08.2012, 13:01
Аватар для jonynator
jonynator jonynator вне форума Новичок форума
Регистрация: 07.03.2011 / Сообщений: 36
Поблагодарили 4 раз(а) / Репутация: 14
Ну может вы поможете, такой советник думаю не так сложно собрать, главное чтоб следил за ордерами от двух роботов с 2 разными магиками, и закрывал бы указанную прибыль по суме этих ордеров.
Я использую 2 робота в селл и 2 робота в бай вот мне и надо разделить управление прибылью.
03.08.2012, 13:08
Регистрация: 13.03.2009 / Сообщений: 2,406
Поблагодарили 1,980 раз(а) / Репутация: 2057
Ну может вы поможете, такой советник думаю не так сложно собрать, главное чтоб следил за ордерами от двух роботов с 2 разными магиками, и закрывал бы указанную прибыль по суме этих ордеров.
Я использую 2 робота в селл и 2 робота в бай вот мне и надо разделить управление прибылью.
Бесплатно такой советник писать мне не интересно. Чужой советник я не буду переделывать даже за деньги. Если Вы готовы заплатить за написание с нуля присылайте подробный алгоритм на мыло.
Вам проще обратиться к cmillion то есть к автору. Даже если он согласится переделать свой советник только за деньги, это будет дешевле чем я буду писать с нуля.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 03.08.2012 в 13:12.
03.08.2012, 13:22
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
eevviill Может этот будет работать как надо, добавь пожалуйста в него второй магик. Буду безразмерно благодарен .
Если отдельно профит по меджикам, то это надо скопировать код. Легче 2 советника поставить на 2 графика с разными меджиками.
03.08.2012, 17:18
Аватар для gush
gush gush вне форума бродяга
Регистрация: 24.01.2011 / Сообщений: 2,523
Поблагодарили 5,294 раз(а) / Репутация: 5510
У меня вообще нету советников кроме выставляльщика стопов+бу.
Но то что ты написал работать точно не будет.
а что можно придумать, тактика простая.
рси выше - продаем..
рси в середине (50) - закрываем профит, если еще выше проданного - закрываем лося..
рси ниже - покупаем, профит тот же (50), лось ниже купленного (эти параметры должны настраиваться, подгоняться)
и все, ну с маджиком и лотом.. никакик других параметров, машек и тому подобное - не нужно. только рси
больше молока получит тот котенок, который больше всех пищит..
03.08.2012, 21:03
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
а что можно придумать, тактика простая.
рси выше - продаем..
рси в середине (50) - закрываем профит, если еще выше проданного - закрываем лося..
рси ниже - покупаем, профит тот же (50), лось ниже купленного (эти параметры должны настраиваться, подгоняться)
и все, ну с маджиком и лотом.. никакик других параметров, машек и тому подобное - не нужно. только рси
Что придумать, Можно мои уроки почитать и через месяц с помощью шаблона за 15 минут писать советника.
Закрытая тема

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


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


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