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

Закрытая тема
23.10.2013, 16:04
Аватар для viwm
viwm viwm вне форума Новичок форума
Регистрация: 19.02.2013 / Сообщений: 28
Поблагодарили 19 раз(а) / Репутация: 20

Вверх Как прикрутить мартингейл

К советнику добавил мартина, но он не всегда срабатывает. Прибыльность с использованием мартина думаю станет больше. Прошу помощи или подсказки. Функция мартина встроена в советник.

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

PHP код:
//+------------------------------------------------------------------+
//|                                                      Nowt v2.mq4 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "MonsterMQL"
#property link      "pitmikhail@mail.ru"

extern double    Lot0.5;
extern int    stoploss=50;
extern int takeprofit=30;
extern int  Magic 99999999// - уникальный номер, кот. советник метит сови ордера и впоследствии работает только с ними. При постановке на разные графики или т/ф, межики должны быть разными 
extern int Slipp 10;        // - величина максимально возможного проскальзывания. В роботе реализован модуль безусловного открытия/закрытия сделок. Т.е. робот будет пытаться открыть / закрыть сделку пока не сделует это. Поэтому во избежание долгого преодоления реквот рекомендую выставлять этот параметр равный 5 для пятизнака или 1 для 4-х знака

// настройки индикаторов:
// ZigZag_Pointer_alert:
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;

// полосы боллинджера:
extern int period_1 20;     
extern int price_1 0;


 
int Mik;
    
double M1SLTPDdDDdduUuuopupdpHL;
    
bool ssbb;
 
int init()
  {     
   return(
0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
   return(
0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
datetime OldTime;
int start()
  {                     

//=================================================================================
k=0;
    for (
i=OrdersTotal()-1;i>=0;i--)  
       {
        
RefreshRates();
        
OrderSelect (iSELECT_BY_POSMODE_TRADES);
        if (
OrderSymbol() == Symbol() && OrderMagicNumber() == Magick++;
       } 

if(
bb==true && k==&& op!=U// покупка
    
      
{
      
op=U;
SL Ask-stoploss*Point;
if (
stoploss == 0SL 0;
TP Ask+takeprofit*Point;
if (
takeprofit == TP 0;

    
RefreshRates();
    
OrderSend (Symbol(), OP_BUYgetLots(), AskSlippSLTPNULLMagic0Blue);
         while (
0
         {
         
Sleep(2000);
         
RefreshRates();
         
OrderSend (Symbol(), OP_BUYgetLots(), AskSlippSLTPNULLMagic0Blue);
        }
   
/*
   if (SL != 0 || TP != 0)
      { 
    RefreshRates();
    OrderSelect (M, SELECT_BY_TICKET);
    bool c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
      while (c == false)
                  {
                  Sleep(2000);
                  RefreshRates();
                  OrderSelect (M, SELECT_BY_TICKET); 
                  c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
                  } } 
       */                 
     
}

//---------------------------------------------------------------------------------------------------------+                       
k=0;
    for (
i=OrdersTotal()-1;i>=0;i--)  
       {
        
RefreshRates();
        
OrderSelect (iSELECT_BY_POSMODE_TRADES);
        if (
OrderSymbol() == Symbol() && OrderMagicNumber() == Magick++;
       }     

if(
ss==true && k==&& op!=D// продажа

     
{
     
op=D;
SL Bid+stoploss*Point;
if (
stoploss == 0SL 0;
TP Bid-takeprofit*Point;
if (
takeprofit == TP 0;      
      
RefreshRates();
         
OrderSend (Symbol(), OP_SELLLotBidSlippSLTPNULLMagic0Red);
            while (
0)
            {
            
Sleep(2000);
            
RefreshRates();
            
OrderSend (Symbol(), OP_SELLLotBidSlippSLTPNULLMagic0Red);
            }   
  
  
/*      
        if (SL != 0 || TP != 0)
      {
        RefreshRates();
         OrderSelect (M, SELECT_BY_TICKET);
         c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
         while (c == false)
                  {
                  Sleep(2000);
                  RefreshRates();
                  OrderSelect (M, SELECT_BY_TICKET); 
                  c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
                  } }
                  
      */              
      
}
    
//====================================================================

k=0D=0U=0
for(
i=0k<2i++)
   {
iCustom(NULL0"ZigZag_Pointer_alert"ExtDepthExtDeviationExtBackstep0i);
iCustom(NULL0"ZigZag_Pointer_alert"ExtDepthExtDeviationExtBackstep1i);
if(
u>0
   {
    
U=u;
    
D=0;
    
k++;
   } 
if(
d>0
   {
    
D=d;
    
U=0;
    
k++;
   }
up iCustom(NULL0"PBF_Scalper_Show_Me"1i);   
dp iCustom(NULL0"PBF_Scalper_Show_Me"0i);
M1 iMA(NULL0period_100price_1i);
High[i];
Low[i];    
   }  

ss=false;
if(
D>&& dp>&& M1ss true;    

bb=false;
if(
U>&& up>&& M1bb=true;
  
//ннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн 
    
}
   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 (OrderSymbol() == Symbol() && OrderMagicNumber() == mn) {
               
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);

[свернуть]

Последний раз редактировалось NSerega; 23.10.2013 в 16:49.
28.10.2013, 10:51
Аватар для chocolate
chocolate chocolate вне форума Администратор
Регистрация: 18.06.2010 / Адрес: Россия/Тольятти / Сообщений: 3,630
Поблагодарили 3,144 раз(а) / Репутация: 3199
Вы можете обратиться в ветку http://forexsystemsru.com/yazyk-programmirovaniya-mql4/61956-dorabotka-botov-sovetnikov-indikatorov.html
FAQ по форуму или ответы на все вопросы пользователей

Как вставить видео с Youtube?


Модератор - он не надзиратель, а дружественный пользователю участник. (с)

Есть вопросы по форуму? С радостью отвечу.

Биржевые линейки
Закрытая тема


Опции темы

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

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



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


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