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

Ответить
02.04.2013, 05:10
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
не хватает индюка, пишет:
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

а так вроде тестится, только медленно
выложи индюк, что бы ни чего не напрягало...
Индикатор PBF_Scalper_Show_Me.ex4 при анализе пока не используется, записан лишь при объявлении для подключения индикатора в советнике через iCUstom(),поэтому можно его закомментировать. Советник сейчас использует только индикатор buy_sell_alerts, остальные подключены, но при тестировании роли не играют.
Индикатор PBF_Scalper_Show_Me.ex4 вечером выложу
02.04.2013, 08:37
Аватар для Warstep
Warstep Warstep вне форума Местный житель
Регистрация: 30.03.2009 / Сообщений: 365
Поблагодарили 233 раз(а) / Репутация: 230
Индикатор PBF_Scalper_Show_Me.ex4 при анализе пока не используется, записан лишь при объявлении для подключения индикатора в советнике через iCUstom(),поэтому можно его закомментировать. Советник сейчас использует только индикатор buy_sell_alerts, остальные подключены, но при тестировании роли не играют.
Индикатор PBF_Scalper_Show_Me.ex4 вечером выложу
посмотри алгоритм выставления ордеров в этой сове, может что "понравится"

правда декомпила нет, а сама сова:

Forex Profit Collector.ex4
viwm 
02.04.2013, 15:11
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
посмотри алгоритм выставления ордеров в этой сове, может что "понравится"

правда декомпила нет, а сама сова:

Вложение 112376
Есть некоторые функции, которые можно попробовать использовать. Удаление сразу ненужных ордеров может к чему-то и приведет.

Здесь обновленный архив с советником и ещё с одним индикатором Pbf_scalper_show_me.
03.04.2013, 21:16
Аватар для Warstep
Warstep Warstep вне форума Местный житель
Регистрация: 30.03.2009 / Сообщений: 365
Поблагодарили 233 раз(а) / Репутация: 230
смущает что флет ни как не игнорится из-за чего происходит наращивание лота и вследствии прибыльность падает, что бы выдержать риски
может какой еще индюк флета прикрутить, а то советник всегда в рынке, как то выглядит не всегда правильно
viwm 
04.04.2013, 18:25
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
смущает что флет ни как не игнорится из-за чего происходит наращивание лота и вследствии прибыльность падает, что бы выдержать риски
может какой еще индюк флета прикрутить, а то советник всегда в рынке, как то выглядит не всегда правильно
Да над этим нужно ещё поработать, пока вариантов не нашел.
В функции OpenOrder количество открываемых сделок зависит от числа k. Пока не достигнет этого числа, так и будет открывать ордера бесконечно, и при том если заполнено, при открытых этих ордерах нельзя открыть другой.
Как можно сделать, чтобы не зависело от числа k и открывал 1 сделку.

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


PHP код:
#include <WinUser32.mqh>
#property show_inputs

extern int     stoploss    0,    
               
takeprofit  0,        
               
Magic       123456
bool    SELL        false,    
           
BUY         false;    
extern double  Lot         0.01;
extern int     slippage    3;     
double SL,TP;
double uni_cross_up;
double uni_cross_down;
double flat_up;
double flat_down;
double flat_flat;

void OPENORDER(string ord)
{
      
int k=OrdersTotal();
      
//k-количество открытых ордеров, ставим 10 - откроет 10 одинаковых сделок
      
if (k<4)
      {    
        
//getLots() - включаем мартин для лота
        
if (ord=="Buy" OrderSend(Symbol(),OP_BUY/*Lot*/ getLots(),NormalizeDouble(Ask,Digits),slippage,SL,TP,"BUY",Magic,0,Blue);
        if (
ord=="Sell"OrderSend(Symbol(),OP_SELL,/*Lot*/ getLots(),NormalizeDouble(Bid,Digits),slippage,SL,TP,"SELL",Magic,0,Red);
         
      
      } 
return(
0);
}                  

int init() 
  { 
//---- 
    
//---- 
   
return(0); 
  }
   
//+------------------------------------------------------------------+ 



//| expert deinitialization function                                 | 
//+------------------------------------------------------------------+ 

int deinit() 
  { 
//---- 
    
//---- 
   
return(0); 
  } 

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



//| expert start function                                            | 
//+------------------------------------------------------------------+ 
int start() 
  { 
   
   
double arrow_up_blue1 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,0,0); 
   
double arrow_up_blue2 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,0,1);
   
double arrow_up_blue3 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,0,2);
   
double arrow_up_blue4 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,0,3);
   
double arrow_up_blue5 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,0,4);
   
   
double arrow_down_red1 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,1,0); 
   
double arrow_down_red2 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,1,1);
   
double arrow_down_red3 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,1,2);
   
double arrow_down_red4 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,1,3);
   
double arrow_down_red5 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,1,4);
   
   
   
uni_cross_up  =iCustom(Symbol(),0"uni_cross",0,7);
   
uni_cross_down=iCustom(Symbol(),0"uni_cross",1,7);
   
   
flat_up=iCustom(Symbol(),0,"Pulse Flat",20,2.0,20,1.5,12,3,1);
   
flat_down=iCustom(Symbol(),0,"Pulse Flat",20,2.0,20,1.5,12,2,1);
   
flat_flat=iCustom(Symbol(),0,"Pulse Flat",20,2.0,20,1.5,12,4,1);
   
Comment("flat_up=",flat_up," flat_down=",flat_down," flat=",flat_flat);

      if ((
arrow_up_blue1>0)&&
         (
arrow_up_blue2>0) && 
         (
arrow_up_blue3>0) && 
         (
arrow_up_blue4>0) &&
         (
arrow_up_blue5>0) &&
         (
arrow_down_red1==0) &&
         (
arrow_down_red2==0) && 
         (
arrow_down_red3==0) &&
         (
uni_cross_up<10000000) &&
         (
flat_up<0) &&
         (
arrow_down_red5==0)) 
        
        {                
            
SELL=false;
            
BUY=true;
               
        }    
    
    
     
      if  ((
arrow_down_red1>0) && 
          (
arrow_down_red2>0) &&
          (
arrow_down_red3>0) && 
          (
arrow_down_red4>0) &&
          (
arrow_down_red5>0) &&
          (
arrow_up_blue1==0) &&
          (
arrow_up_blue2==0) &&
          (
arrow_up_blue3==0) && 
          (
arrow_up_blue4==0) &&
          (
uni_cross_down<1000000) &&
          (
flat_down>0) &&
          (
arrow_up_blue5==0)) 
       
      
       { 
            
            
BUY=false;
            
SELL=true;
                 
                      
       } 
       
   
//============Функции для открытия ордеров
  
if (BUY)
  
   {     
//=======Закрываем ордера на продажу перед открытием на покупку=============
      
for (int i=OrdersTotal()-1i>=0i--)
         {
            if (!
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
            if (
OrderType()==OP_SELLOrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),slippage);
         }
//============================================================================
   
   
      //if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      //if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;     
      
if (takeprofit!=0TP=Ask+takeprofit*Point;
      if (
stoploss!=0SL=Ask-stoploss*Point;
      
OPENORDER ("Buy");
   }
   
   if (
SELL)
    {           
//=====Закрываем ордера на покупку перед открытием на продажу=====================================================
      
for ( i=OrdersTotal()-1i>=0i--)
         {
            if (!
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
            if (
OrderType()==OP_BUY OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),slippage);
         }
//=====================================================================================
      
      //if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
      //if (stoploss!=0)   SL = NormalizeDouble(Bid + stoploss*Point,Digits);  else SL=0;              
      
if (takeprofit!=0TP=Bid-takeprofit*Point;
      if (
stoploss!=0SL=Bid+stoploss*Point;
      
OPENORDER ("Sell");
   }
  
      
//---- 
 
   
return(0); 
  } 
    
  
     
//Мартингейл
  //+--------------------------- getLots ----------------------------------+
 
   
double getLots() 
   {
      
double minlot MarketInfo(Symbol(), MODE_MINLOT);
      
int round MathAbs(MathLog(minlot) / MathLog(10.0)) + 0.5;
      
double result Lot;
      
int total OrdersHistoryTotal();
      
double spread MarketInfo(Symbol(), MODE_SPREAD);
      
// double k = (tp + sl) / (tp - spread);
   
      
for (int i 0totali++) 
         {
            
OrderSelect(iSELECT_BY_POSMODE_HISTORY);
               if (
OrderProfit() > 0
                  {
                     
result Lot;
                   } 
               else 
                  {
                     
result result 2;
                  }
            
         }
   
      
result NormalizeDouble(resultround);
      
double maxlot MarketInfo(Symbol(), MODE_MAXLOT);
      if (
result maxlot
      {
         
result maxlot;
      }
   
RefreshRates();
   return(
result);

[свернуть]
05.04.2013, 08:24
Аватар для Warstep
Warstep Warstep вне форума Местный житель
Регистрация: 30.03.2009 / Сообщений: 365
Поблагодарили 233 раз(а) / Репутация: 230
Да над этим нужно ещё поработать, пока вариантов не нашел.
В функции OpenOrder количество открываемых сделок зависит от числа k. Пока не достигнет этого числа, так и будет открывать ордера бесконечно, и при том если заполнено, при открытых этих ордерах нельзя открыть другой.
Как можно сделать, чтобы не зависело от числа k и открывал 1 сделку.

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


PHP код:
#include <WinUser32.mqh>
#property show_inputs

extern int     stoploss    0,    
               
takeprofit  0,        
               
Magic       123456
bool    SELL        false,    
           
BUY         false;    
extern double  Lot         0.01;
extern int     slippage    3;     
double SL,TP;
double uni_cross_up;
double uni_cross_down;
double flat_up;
double flat_down;
double flat_flat;

void OPENORDER(string ord)
{
      
int k=OrdersTotal();
      
//k-количество открытых ордеров, ставим 10 - откроет 10 одинаковых сделок
      
if (k<4)
      {    
        
//getLots() - включаем мартин для лота
        
if (ord=="Buy" OrderSend(Symbol(),OP_BUY/*Lot*/ getLots(),NormalizeDouble(Ask,Digits),slippage,SL,TP,"BUY",Magic,0,Blue);
        if (
ord=="Sell"OrderSend(Symbol(),OP_SELL,/*Lot*/ getLots(),NormalizeDouble(Bid,Digits),slippage,SL,TP,"SELL",Magic,0,Red);
         
      
      } 
return(
0);
}                  

int init() 
  { 
//---- 
    
//---- 
   
return(0); 
  }
   
//+------------------------------------------------------------------+ 



//| expert deinitialization function                                 | 
//+------------------------------------------------------------------+ 

int deinit() 
  { 
//---- 
    
//---- 
   
return(0); 
  } 

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



//| expert start function                                            | 
//+------------------------------------------------------------------+ 
int start() 
  { 
   
   
double arrow_up_blue1 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,0,0); 
   
double arrow_up_blue2 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,0,1);
   
double arrow_up_blue3 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,0,2);
   
double arrow_up_blue4 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,0,3);
   
double arrow_up_blue5 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,0,4);
   
   
double arrow_down_red1 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,1,0); 
   
double arrow_down_red2 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,1,1);
   
double arrow_down_red3 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,1,2);
   
double arrow_down_red4 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,1,3);
   
double arrow_down_red5 =iCustom(Symbol(),0,"Buy-Sell_Alerts",5,240,false,false,1,4);
   
   
   
uni_cross_up  =iCustom(Symbol(),0"uni_cross",0,7);
   
uni_cross_down=iCustom(Symbol(),0"uni_cross",1,7);
   
   
flat_up=iCustom(Symbol(),0,"Pulse Flat",20,2.0,20,1.5,12,3,1);
   
flat_down=iCustom(Symbol(),0,"Pulse Flat",20,2.0,20,1.5,12,2,1);
   
flat_flat=iCustom(Symbol(),0,"Pulse Flat",20,2.0,20,1.5,12,4,1);
   
Comment("flat_up=",flat_up," flat_down=",flat_down," flat=",flat_flat);

      if ((
arrow_up_blue1>0)&&
         (
arrow_up_blue2>0) && 
         (
arrow_up_blue3>0) && 
         (
arrow_up_blue4>0) &&
         (
arrow_up_blue5>0) &&
         (
arrow_down_red1==0) &&
         (
arrow_down_red2==0) && 
         (
arrow_down_red3==0) &&
         (
uni_cross_up<10000000) &&
         (
flat_up<0) &&
         (
arrow_down_red5==0)) 
        
        {                
            
SELL=false;
            
BUY=true;
               
        }    
    
    
     
      if  ((
arrow_down_red1>0) && 
          (
arrow_down_red2>0) &&
          (
arrow_down_red3>0) && 
          (
arrow_down_red4>0) &&
          (
arrow_down_red5>0) &&
          (
arrow_up_blue1==0) &&
          (
arrow_up_blue2==0) &&
          (
arrow_up_blue3==0) && 
          (
arrow_up_blue4==0) &&
          (
uni_cross_down<1000000) &&
          (
flat_down>0) &&
          (
arrow_up_blue5==0)) 
       
      
       { 
            
            
BUY=false;
            
SELL=true;
                 
                      
       } 
       
   
//============Функции для открытия ордеров
  
if (BUY)
  
   {     
//=======Закрываем ордера на продажу перед открытием на покупку=============
      
for (int i=OrdersTotal()-1i>=0i--)
         {
            if (!
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
            if (
OrderType()==OP_SELLOrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),slippage);
         }
//============================================================================
   
   
      //if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      //if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;     
      
if (takeprofit!=0TP=Ask+takeprofit*Point;
      if (
stoploss!=0SL=Ask-stoploss*Point;
      
OPENORDER ("Buy");
   }
   
   if (
SELL)
    {           
//=====Закрываем ордера на покупку перед открытием на продажу=====================================================
      
for ( i=OrdersTotal()-1i>=0i--)
         {
            if (!
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
            if (
OrderType()==OP_BUY OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),slippage);
         }
//=====================================================================================
      
      //if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
      //if (stoploss!=0)   SL = NormalizeDouble(Bid + stoploss*Point,Digits);  else SL=0;              
      
if (takeprofit!=0TP=Bid-takeprofit*Point;
      if (
stoploss!=0SL=Bid+stoploss*Point;
      
OPENORDER ("Sell");
   }
  
      
//---- 
 
   
return(0); 
  } 
    
  
     
//Мартингейл
  //+--------------------------- getLots ----------------------------------+
 
   
double getLots() 
   {
      
double minlot MarketInfo(Symbol(), MODE_MINLOT);
      
int round MathAbs(MathLog(minlot) / MathLog(10.0)) + 0.5;
      
double result Lot;
      
int total OrdersHistoryTotal();
      
double spread MarketInfo(Symbol(), MODE_SPREAD);
      
// double k = (tp + sl) / (tp - spread);
   
      
for (int i 0totali++) 
         {
            
OrderSelect(iSELECT_BY_POSMODE_HISTORY);
               if (
OrderProfit() > 0
                  {
                     
result Lot;
                   } 
               else 
                  {
                     
result result 2;
                  }
            
         }
   
      
result NormalizeDouble(resultround);
      
double maxlot MarketInfo(Symbol(), MODE_MAXLOT);
      if (
result maxlot
      {
         
result maxlot;
      }
   
RefreshRates();
   return(
result);

[свернуть]
может попробывать прикрутить работу по времени, что бы хоть как то отсечь флетовые участки
viwm 
08.04.2013, 18:22
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
может попробовать прикрутить работу по времени, что бы хоть как то отсечь флетовые участки
У меня с флетовыми участками на тестере больше прибыль получается, да и отсечь их думаю надо несколькими индикаторами. Да и собственно торговать только на тренде выглядит как-то нереально, ведь флет это часть системы.
09.04.2013, 07:08
Аватар для Warstep
Warstep Warstep вне форума Местный житель
Регистрация: 30.03.2009 / Сообщений: 365
Поблагодарили 233 раз(а) / Репутация: 230
У меня с флетовыми участками на тестере больше прибыль получается, да и отсечь их думаю надо несколькими индикаторами. Да и собственно торговать только на тренде выглядит как-то нереально, ведь флет это часть системы.
тогда зачем изобретать велосипед, поставь обычного мартина и не парся, тут всяких модов куча, прибыльность получишь такую же как и сейчас у тебя в тестере...
viwm 
09.04.2013, 17:39
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
тогда зачем изобретать велосипед, поставь обычного мартина и не парся, тут всяких модов куча, прибыльность получишь такую же как и сейчас у тебя в тестере...
Дело одно, когда мартин один и когда с несколькими индикаторами, да и притом советник на стадии доработки. К чему весь этот сырбор.
10.04.2013, 12:54
Аватар для Warstep
Warstep Warstep вне форума Местный житель
Регистрация: 30.03.2009 / Сообщений: 365
Поблагодарили 233 раз(а) / Репутация: 230
Дело одно, когда мартин один и когда с несколькими индикаторами, да и притом советник на стадии доработки. К чему весь этот сырбор.
да не я не в упрек, просто если флет, то у тебя и получается обычный мартин и что бы риски снизить надо уменьшать лот, что бы проходил проблемные участки
я за то что бы количество сделок уменьшить, если они будут точнее то можно и лот "влупить повкуснее"
viwm 
15.04.2013, 16:17
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
Пока тестирую советник. Решил поставить на vps сервер.
24.04.2013, 17:26
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
Сигналы для мониторинга на демо счетах:

_http://www.mql5.com/ru/signals/6805#!tab=trading

_http://www.mql5.com/ru/signals/6807#!tab=trading

Последний раз редактировалось NSerega; 24.04.2013 в 20:20.
24.04.2013, 20:38
Аватар для Warstep
Warstep Warstep вне форума Местный житель
Регистрация: 30.03.2009 / Сообщений: 365
Поблагодарили 233 раз(а) / Репутация: 230
что за боты в моиторе?
что менял, что добовлял?

если что менял, то выложил бы тут на "потрогать"

ЗЫ: замониторил бы на _myfxbook.com, а то у тебя надо авторизоваться еще...
viwm 
25.04.2013, 15:54
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
Менял только некоторые параметры, используются те же индикаторы, поэтому выкладывать не вижу необходимости.

_http://www.myfxbook.com/members/nowt/spdf-5/553500
_http://www.myfxbook.com/members/nowt/sbdf-30/553511
09.05.2013, 19:40
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20
Проект провален. Всем спасибо за участие!
Ответить


Опции темы

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

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



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


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