Советники, эксперты, форекс роботы Обсуждение, поиск и тестирование форекс советников, роботов, экспертов и МТС

Ответить
09.03.2013, 17:57
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20

Доллар Советник, icustom и индикатор

Добрый день, есть мысль реализовать советник по сигналам индикатора, но не знаю как сделать. Советник должен после получения сигнала от индикатора, хотя бы по 2 минимальным точкам, открыть by или sell. Сигнал от индикатора отображается в виде горизонтальных точек.

Код индикатора

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

PHP код:
#property copyright "Copyright © 2005, klot"
#property link      "klot@mail.ru"

#property indicator_chart_window 
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2

extern int Risk 5;
extern int CandleTF 240;
extern bool AlertOn TRUE;
extern bool EmailOn FALSE;
double g_ibuf_92[];
double g_ibuf_96[];
int gia_100[];
int gi_104 0;

int init() {

   
SetIndexStyle(0,DRAW_ARROW);
   
SetIndexArrow(0159);
   
SetIndexBuffer(0g_ibuf_92);
   
SetIndexEmptyValue(00.0);
   
   
SetIndexStyle(1DRAW_ARROW);
   
SetIndexArrow(1159);
   
SetIndexBuffer(1g_ibuf_96);
   
SetIndexEmptyValue(10.0);
   
   if (
Period() > CandleTF) {
      
Alert("DT-ZigZag: Please set to a higher TF "CandleTF);
      return (
0);
   }
   
ArrayCopySeries(gia_1005Symbol(), CandleTF);
   return (
0);
}

int deinit() {
   return (
0);
}

int start() {
   
int count_0;
   
double icustom_4;
   
int li_12 IndicatorCounted();
   
int li_16 300;
   if (
li_12 0) return (-1);
   if (
li_12 0li_12--;
   
li_16 Bars li_12;
   for (
int index_20 0index_20 li_16index_20++) {
      if (
Time[index_20] >= gia_100[0]) count_0 0;
      else {
         
count_0 ArrayBsearch(gia_100Time[index_20 1], WHOLE_ARRAY0MODE_DESCEND);
         if (
Period() <= CandleTFcount_0++;
      }
      for (
int li_24 count_0li_24 count_0 100li_24++) {
         
icustom_4 iCustom(NULLCandleTF"ZigZag"Risk530li_24 1);
         if (
icustom_4 != 0.0) break;
      }
      if (
iClose(NULL0index_20 1) <= icustom_4g_ibuf_96[index_20] = icustom_4;
      else 
g_ibuf_96[index_20] = 0.0;
      if (
iClose(NULL0index_20 1) >= icustom_4g_ibuf_92[index_20] = icustom_4;
      else 
g_ibuf_92[index_20] = 0.0;
      
WindowRedraw();
   }
   if (
g_ibuf_92[1] > 0.0 && gi_104 1) {
      if (
AlertOnAlert("Buy Alert on " Symbol() + "[" Period() + "m]");
      if (
EmailOnSendMail("Buy Alert!""Buy alert on " Symbol() + "[" Period() + "m]");
      
gi_104 1;
   } else {
      if (
g_ibuf_96[1] > 0.0 && gi_104 > -1) {
         if (
AlertOnAlert("Sell Alert on " Symbol() + "[" Period() + "m]");
         if (
EmailOnSendMail("Sell Alert!""Sell alert on " Symbol() + "[" Period() + "m]");
         
gi_104 = -1;
      }
   }
   return (
0);

[свернуть]


Код советника (пока только такой)

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

PHP код:
//+------------------------------------------------------------------+
//|                                                   test_robot.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
int ticket =0;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
 
   
double L_0 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",0,0);
   
double L_1 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",1,0);
   
//здесь условие для покупки
   
if (L_0>L_1
   {
   
//OrderClose(0,1,Bid,2);
   
ticket=OrderSend(Symbol(),OP_BUY,1,Ask,4,0,0);
   
   }
   
//здесь условие для продажи
   
if (L_0<L_1
   {
  
// OrderClose(0,1,Bid,2);
   
ticket=OrderSend(Symbol(),OP_SELL,1,Bid,4,0,0);
   
   }
//----
   
return(0);
  }
//+------------------------------------------------------------------+ 
[свернуть]


Жду хоть какую-либо помощь

Последний раз редактировалось NSerega; 10.03.2013 в 12:09.
09.03.2013, 18:27
Аватар для AlexeyVik
AlexeyVik AlexeyVik на форуме Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
А какую помощь ты ждёшь?
Написать сов или подсказать как правильно сделать?
Если второе, то вот моё мнение.
Судя по скрину, тебе надо открыть бай когда на первом баре синяя точка, а на втором красная. Или открыть селл когда на первом баре красная точка а на втором синяя.
Вот исходя из этого и пиши условие. Соответственно тебе надо 4 переменных. Две для 0-го буфера (1 и 2 бар) и две для 1-го (1 и 2 бар)
Хочу надеяться, что такой подсказки достаточно.

ps: Хотя учитывая, что здесь задействован ZigZag надо обратить внимание на сколько баров взад появляются точки. Такое быть может, хотя и не обязательно. Я никогда не следил за работой
ZigZag`a

Последний раз редактировалось AlexeyVik; 09.03.2013 в 18:31.
eevviill , viwm 
09.03.2013, 19:22
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
AlexeyVik, да любая помощь не помешает. Конечно буду пытаться кодить, но здесь иду маленькими шагами.
Если вообще иду...

А как можно получить количество например первых 2-3 красных точек, неужели сам индикатор придется впихать в советник, так как прорисовка происходит в индикаторе?

Последний раз редактировалось viwm; 09.03.2013 в 19:49.
09.03.2013, 20:51
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
Пока получился такой вот код

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

PHP код:
//+------------------------------------------------------------------+
//|                                                   test_robot.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
int ticket =0;
extern double Lot 1;
extern int Stop_Loss 24;
extern int Take_Profit 21;
extern int magic 7352;
extern int Slippage 2
extern string Indicator "Buy-Sell_Alerts_test"
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
 
   
while (!IsTradeAllowed()) Sleep(2000);
  
   
   
double arrow_up =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,1);
   
double arrow_down =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,1);
   
   
   
double SLbuy=0SLsell=0,TPbuy=0,TPsell=0
   if(
Stop_Loss>0
   {
   
SLbuy=Ask-Stop_Loss*Point
   
SLsell=Bid+Stop_Loss*Point;
   }
   if(
Take_Profit>0
   {
   
TPbuy=Ask+Take_Profit*Point;
   
TPsell=Bid-Take_Profit*Point;
   }
   
   if(
OrdersTotal()<1)
   {
   if(
arrow_up>0OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,SLbuy,TPbuy,"Buy-Sell_Alerts_test",0,Green);   
   if(
arrow_down>0OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,SLsell,TPsell,"Buy-Sell_Alerts_test",0,Red);
   } 
//----
   
return(0);
  }
//+------------------------------------------------------------------+ 
[свернуть]


Проблема с точками всё ещё остается

Последний раз редактировалось NSerega; 10.03.2013 в 12:09.
09.03.2013, 21:07
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,105 раз(а) / Репутация: 2163
AlexeyVik, да любая помощь не помешает. Конечно буду пытаться кодить, но здесь иду маленькими шагами.
Если вообще иду...

А как можно получить количество например первых 2-3 красных точек, неужели сам индикатор придется впихать в советник, так как прорисовка происходит в индикаторе?
Кодить можно по шаблону, если навыки в программировании пока еще отсутствуют.

ссылка на тему - Советник за 5 минут в подписи.
Советники на заказ! admin@expforex.com
Говорим Спасибо
viwm 
10.03.2013, 06:49
Аватар для AlexeyVik
AlexeyVik AlexeyVik на форуме Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
Пока получился такой вот код

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


PHP код:
//+------------------------------------------------------------------+
//|                                                   test_robot.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
int ticket =0;
extern double Lot 1;
extern int Stop_Loss 24;
extern int Take_Profit 21;
extern int magic 7352;
extern int Slippage 2
extern string Indicator "Buy-Sell_Alerts_test"
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
 
   
while (!IsTradeAllowed()) Sleep(2000);
  
   
   
double arrow_up =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,1);
   
double arrow_down =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,1);
   
   
   
double SLbuy=0SLsell=0,TPbuy=0,TPsell=0
   if(
Stop_Loss>0
   {
   
SLbuy=Ask-Stop_Loss*Point
   
SLsell=Bid+Stop_Loss*Point;
   }
   if(
Take_Profit>0
   {
   
TPbuy=Ask+Take_Profit*Point;
   
TPsell=Bid-Take_Profit*Point;
   }
   
   if(
OrdersTotal()<1)
   {
   if(
arrow_up>0OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,SLbuy,TPbuy,"Buy-Sell_Alerts_test",0,Green);   
   if(
arrow_down>0OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,SLsell,TPsell,"Buy-Sell_Alerts_test",0,Red);
   } 
//----
   
return(0);
  }
//+------------------------------------------------------------------+ 
[свернуть]
Проблема с точками всё ещё остается
У меня конечно много терпения, но оно не безгранично когда я подсказываю, что надо ЧЕТЫРЕ элемента для сравнения. ДВА для синих точек и ДВА для красных... У тебя остаётся всего два... Что ты хочешь услышать в ответ???
viwm 
10.03.2013, 07:56
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20

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

PHP код:
//+------------------------------------------------------------------+
//|                                                   test_robot.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
int ticket =0;

extern double Lot 1;
extern int Stop_Loss 25;
extern int Take_Profit 25;
extern int magic 7352;
extern int Slippage 2
extern string Indicator "Buy-Sell_Alerts_test"
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
 
   
while (!IsTradeAllowed()) Sleep(2000);
  
   
   
double arrow_up_blue1 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,1);
   
double arrow_up_blue2 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,1);
   
   
double arrow_down_red1 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,1);
   
double arrow_down_red2 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,1);
   
   
double SLbuy=0SLsell=0,TPbuy=0,TPsell=0
   if(
Stop_Loss>0
   {
   
SLbuy=Ask-Stop_Loss*Point
   
SLsell=Bid+Stop_Loss*Point;
   }
   if(
Take_Profit>0
   {
   
TPbuy=Ask+Take_Profit*Point;
   
TPsell=Bid-Take_Profit*Point;
   }
   
   if(
OrdersTotal()<1)
   {
   if((
arrow_up_blue1>0) && (arrow_up_blue2>0)) 
   {
   
OrderClose(0,1,Bid,2); 
  
   
OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,SLbuy,TPbuy,"Buy-Sell_Alerts_test",0,Green);
   }   
   
   if((
arrow_down_red1>0) && (arrow_down_red2>0)) 
   {
   
OrderClose(0,1,Bid,2);
   
OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,SLsell,TPsell,"Buy-Sell_Alerts_test",0,Red);
   }
   
   } 
//----
   
return(0);
  }
//+------------------------------------------------------------------+ 
[свернуть]


Мне не ясно, как double arrow_up_blue1 и double arrow_up_blue2 будут различаться, вторую точку определить самому через через-какое то время заново? Или в переменную ее значение само запишется?

Последний раз редактировалось NSerega; 10.03.2013 в 12:10.
10.03.2013, 08:18
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,105 раз(а) / Репутация: 2163

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

PHP код:
//+------------------------------------------------------------------+ 
//|                                                   test_robot.mq4 | 
//|                        Copyright 2013, MetaQuotes Software Corp. | 
//|                                        http://www.metaquotes.net | 
//+------------------------------------------------------------------+ 
#property copyright "Copyright 2013, MetaQuotes Software Corp." 
#property link      "http://www.metaquotes.net" 
int ticket =0

extern double Lot 1
extern int Stop_Loss 25
extern int Take_Profit 25
extern int magic 7352
extern int Slippage 2;  
extern string Indicator "Buy-Sell_Alerts_test";  
//+------------------------------------------------------------------+ 
//| expert initialization function                                   | 
//+------------------------------------------------------------------+ 
int init() 
  { 
//---- 
    
//---- 
   
return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert deinitialization function                                 | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- 
    
//---- 
   
return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert start function                                            | 
//+------------------------------------------------------------------+ 
int start() 
  { 
//---- 
  
   
while (!IsTradeAllowed()) Sleep(2000); 
   
    
   
double arrow_up_blue1 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,1); 
   
double arrow_up_blue2 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,2); 
    
   
double arrow_down_red1 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,1); 
   
double arrow_down_red2 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,2); 
    
   
double SLbuy=0SLsell=0,TPbuy=0,TPsell=0;  
   if(
Stop_Loss>0)  
   { 
   
SLbuy=Ask-Stop_Loss*Point;  
   
SLsell=Bid+Stop_Loss*Point
   } 
   if(
Take_Profit>0)  
   { 
   
TPbuy=Ask+Take_Profit*Point
   
TPsell=Bid-Take_Profit*Point
   } 
    
   if(
OrdersTotal()<1
   { 
   if((
arrow_up_blue1>0) && (arrow_down_red2>0))  
   { 
   
OrderClose(0,1,Bid,2);  
   
   
OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,SLbuy,TPbuy,"Buy-Sell_Alerts_test",0,Green); 
   }    
    
   if((
arrow_down_red1>0) && (arrow_up_blue2>0))  
   { 
   
OrderClose(0,1,Bid,2); 
   
OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,SLsell,TPsell,"Buy-Sell_Alerts_test",0,Red); 
   } 
    
   }  
//---- 
   
return(0); 
  } 
[свернуть]
Советники на заказ! admin@expforex.com
Говорим Спасибо

Последний раз редактировалось NSerega; 10.03.2013 в 12:11.
eevviill , viwm 
10.03.2013, 08:18
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,105 раз(а) / Репутация: 2163
Имелось ввиду так.
Советники на заказ! admin@expforex.com
Говорим Спасибо
viwm 
10.03.2013, 08:25
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
Имелось ввиду так.
Спасибо, Expforex.
Будем продвигаться дальше...
10.03.2013, 08:29
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,105 раз(а) / Репутация: 2163
Незачто.
Советники на заказ! admin@expforex.com
Говорим Спасибо
viwm 
16.03.2013, 15:36
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
тема закрыта
19.03.2013, 19:42
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20

Фундаментальный анализ I`l be back

код робота

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

PHP код:

//======Для робота=====================================================
#property show_inputs

extern int     stoploss    0,        //уровень выставления SL, если 0, то SL не выставляется
               
takeprofit  0,        //уровень выставления TP, если 0, то TP не выставляется
               
Magic       123456;   //уникальный номер ордера
extern bool    SELL        false,    //открыть ордер SELL
               
BUY         false;    //открыть ордер BUY
extern double  Lot         0.1;      //объем ордера
extern int     slippage    3;        //Максимально допустимое отклонение цены для рыночных ордеров
extern bool    startorders false;
double SL,TP;
int ticket =0;  
//--------------------------------------------------------------------

//=========Функция для робота============================================ 
void OPENORDER(string ord)
{
   
int error,err;
   while (
true)
   {  
error=true;
      if (
ord=="Buy" error=OrderSend(Symbol(),OP_BUYLot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"BUY",Magic,0,Blue);
      if (
ord=="Sell"error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,"SELL",Magic,0,Red);
      if (
error==-1//неудачная покупка OK
      
{  
         
ShowERROR();
         
err++;Sleep(2000);RefreshRates();
      }
      if (
error || err >10) return;
   }
return;
}                  
//-----------------------------------------------------------------------

//==================Функция для робота===================================
void ShowERROR()
{
   
int err=GetLastError();
   switch ( 
err )
   {                  
      case 
1:   return;
      case 
2:   Alert("Нет связи с торговым сервером ",Symbol());return;
      case 
3:   Alert("Error неправильные параметры ",Symbol());return;
      case 
130Alert("Error близкие стопы   Ticket ",Symbol());return;
      case 
134Alert("Недостаточно денег   ",Symbol());return;
      case 
146Alert("Error Подсистема торговли занята ",Symbol());return;
      case 
129Alert("Error Неправильная цена ",Symbol());return;
      case 
131Alert("Error Неправильный объем ",Symbol());return;
      case 
4200:Alert("Error Объект уже существует ",Symbol());return;
      default:  
Alert("Error  " ,err," ",Symbol());return;
   }
}
//--------------------------------------------------------------------


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

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

//+------------------------------------------------------------------+ 
//| expert start function                                            | 
//+------------------------------------------------------------------+ 
int start() 
  { 
//---- 
   
while (!IsTradeAllowed()) Sleep(2000);  
   
double arrow_up_blue1 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,1); 
   
double arrow_up_blue2 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,2); 
   
double arrow_down_red1 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,1); 
   
double arrow_down_red2 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,2); 
    
   if (!
startorders)
   {  
       if((
arrow_up_blue1>0) && (arrow_up_blue2>0))  
        { 
         
Alert("Движение вниз "arrow_up_blue1"  ",arrow_up_blue2"  ");
         
SELL=true;
         
BUY=false;
        }    
    
      if((
arrow_down_red1<0) && (arrow_down_red2<0))  
       { 
         
Alert("Движение вверх",arrow_down_red1" ",arrow_down_red2);
         
BUY=true;
         
SELL=false;
       } 
  }
  
   if (
startorders)
   {
      
BUY=false;
      
SELL=false;  
   }
    
  if (
BUY)
   {
      if (
takeprofit!=0TP  NormalizeDouble(Ask takeprofit*Point,Digits); else TP=0;
      if (
stoploss!=0)   SL  NormalizeDouble(Ask stoploss*Point,Digits); else SL=0;     
      
OPENORDER ("Buy");
   }
   if (
SELL)
   {  
      if (
takeprofit!=0TP NormalizeDouble(Bid takeprofit*Point,Digits); else TP=0;
      if (
stoploss!=0)   SL NormalizeDouble(Bid stoploss*Point,Digits);  else SL=0;              
      
OPENORDER ("Sell");
   }
  
//---- 
   
return(0); 
  } 
[свернуть]



Ну и сам вопрос. Как все-таки при появлении синих 2 точек открыть на покупку, при появлении 2 красных - на продажу. Больше интересует код
PHP код:
 if((arrow_up_blue1>0) && (arrow_up_blue2>0))  
        { 
         
Alert("Движение вниз "arrow_up_blue1"  ",arrow_up_blue2"  ");
         
SELL=true;
         
BUY=false;
        } 
С чем сравнивать arrow_up_blue1>0) && (arrow_up_blue2>0. В данном случае 0, но уверен, что здесь должны стоять другие цифры. Но что именно?

Последний раз редактировалось NSerega; 21.03.2013 в 13:09.
21.03.2013, 07:12
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
Ответьте хотя бы на этот вопрос. На сайте разобрана установка связи между советником и индикатором.
_http://forexlab.ru/sovetnik-i-polzovatelskoy-indikator.html/comment-page-1/
Так вот откуда в коде
PHP код:
(trm 1000000 && trm1 1000000)) 
бралось значение 1000000? Или это рандом?

Последний раз редактировалось NSerega; 21.03.2013 в 13:09.
21.03.2013, 08:02
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,105 раз(а) / Репутация: 2163
Ответьте хотя бы на этот вопрос. На сайте разобрана установка связи между советником и индикатором.
_http://forexlab.ru/sovetnik-i-polzovatelskoy-indikator.html/comment-page-1/
Так вот откуда в коде
PHP код:
(trm 1000000 && trm1 1000000)) 
бралось значение 1000000? Или это рандом?
а может в индикаторе такие значения?

ну например я ставлю идентификатор на индикатор в виде буфера = 777
Т.е. какое-то число для обозначения что это сигнал.

Другими словами вы выложили выдранные строчки из кода.
Советники на заказ! admin@expforex.com
Говорим Спасибо

Последний раз редактировалось NSerega; 21.03.2013 в 13:10.
HeadbaY , viwm 
21.03.2013, 08:41
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
а может в индикаторе такие значения?

ну например я ставлю идентификатор на индикатор в виде буфера = 777
Т.е. какое-то число для обозначения что это сигнал.

Другими словами вы выложили выдранные строчки из кода.
Если это идентификатор для сигнала, то он разве не должен быть приравнен к переменной (а здесь сравнивается). Впрочем понятно, тут, разбираем чужой код.

Возьмем этот же кусок кода
PHP код:
double arrow_up_blue1 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,1); 
double arrow_up_blue2 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,2); 
double arrow_down_red1 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,1); 
double arrow_down_red2 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,2); 


При таком объявлении во время получения сигнала сравнение идет конкретно с каким-то указанным числом
PHP код:
if((arrow_up_blue1>0) && (arrow_up_blue2>0)) 
или же сравнивается с нулем, так как если получен сигнал, то уже это и считается как ">0" или "<0", если получена ошибка?

Последний раз редактировалось viwm; 21.03.2013 в 08:49.
21.03.2013, 08:56
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,105 раз(а) / Репутация: 2163
Если это идентификатор для сигнала, то он разве не должен быть приравнен к переменной (а здесь сравнивается). Впрочем понятно, тут, разбираем чужой код.

Возьмем этот же кусок кода
PHP код:
double arrow_up_blue1 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,1); 
double arrow_up_blue2 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,0,2); 
double arrow_down_red1 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,1); 
double arrow_down_red2 =iCustom(Symbol(),0,"Buy-Sell_Alerts_test",5,240,true,false,1,2); 


При таком объявлении во время получения сигнала сравнение идет конкретно с каким-то указанным числом
PHP код:
if((arrow_up_blue1>0) && (arrow_up_blue2>0)) 
или же сравнивается с нулем, так как если получен сигнал, то уже это и считается как ">0" или "<0", если получена ошибка?
Это стандартная инициализация сигналов, у каждого индикатора есть свои значения для сигнала,

в данном примере - если значение буфера больше 0 - значит есть точка, если = 0 значит точки нет.
Советники на заказ! admin@expforex.com
Говорим Спасибо
HeadbaY , viwm 
21.03.2013, 09:01
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
Спасибо за ответы, expforex.

следующий этап - дополнение кода.
01.04.2013, 18:15
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
Всем добрый вечер. Получился в общем такой советник. Уже не помню, какие библиотеки там используются, поэтому в архив вложил несколько папок, может кому нужны будут при запуске советника.
Индикаторы все нужны.
Тестировал на USDJPY, H1.

Ну и сам вопрос.
Временами при торговле на одной полосе открывает 2 сделки, одна из которых получается убыточной. Можно ли как-то это запрограммировать так, чтобы на одной полосе была открыта только одна сделка.
Приветствуются и письменные, и запрограммированные предложения.

Последний раз редактировалось viwm; 01.04.2013 в 19:05.
01.04.2013, 21:02
Аватар для Warstep
Warstep Warstep вне форума Местный житель
Регистрация: 30.03.2009 / Сообщений: 365
Поблагодарили 233 раз(а) / Репутация: 230
не хватает индюка, пишет:
Cannot open file 'E:\MetaTrader - E-Global Trade & Finance Group\MetaTrader - E-Global Trade & Finance Group\experts\indicators\PBF_Scalper_Show_Me.ex4' on the GBPUSD,H1

а так вроде тестится, только медленно
выложи индюк, что бы ни чего не напрягало...
viwm 
Ответить


Опции темы

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

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



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


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