Советники: BeerGodEA - страница 4

 
cobrra:

на 99% моделировании не идёт ни один советник, (кроме мартина), там урезанные тики.

советник можно существенно укоротить, безпотери результатов.

#property copyright "Scam Laboratory 2012"
#property link "http://www.forex4you.org/?affid=bdbda7b"
//=============== Меню ===============================================

extern string Name="BeerGodEA (25.06.12)";
extern double Lot = 0.1;
extern int TimeBarOpen = 1;
extern int Period_MA=20; // Период МА
extern int Slippage = 1;
extern int mn= 5824;

//============== Переменные ==========================================
string GetNameOP="BeerGodEA"; // комент в открытом ордере
double TimeBar_t; // текущее время свечи
double sv_close; // цена закрытия свечи
double MA_1_t; // МА текущая
double MA_1_p; // МА предыдущая
double NewBuy; // сигнал открытия покупки
double NewSell; // сигнал открытия продажи
//==============
int start()
{//0

//======== получение данных с индикаторов и текущей цены ======================
MA_1_t=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0); // МА_1 текущая
MA_1_p=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,1); // МА_1 текущая
TimeBar_t = (TimeCurrent()-Time[0])/60; // время в минутах с открытия свечи
sv_close = iClose(NULL,0,1); // цена закрытия свечи на предыдущем баре

// ================= Обработка сигналов ===============================
if ((Bid < MA_1_t) && (MA_1_t < MA_1_p) && (Bid < sv_close) && (TimeBar_t==TimeBarOpen)) NewBuy = 1; else NewBuy = 0; // условие BUY
if ((Bid > MA_1_t) && (MA_1_t > MA_1_p) && (Bid > sv_close) && (TimeBar_t==TimeBarOpen)) NewSell = 1; else NewSell = 0; // условие BUY

// ================= Открытие сделки ===================================
// открытие BUY
if ((NewBuy == 1) && !(ExistPositions())) OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,0,0,GetNameOP,mn,0,LightSkyBlue);
// открытие Sell
if ((NewSell == 1) && !(ExistPositions())) OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,0,0,GetNameOP,mn,0,HotPink);


// ================= Закрытие сделки ===================================
if (NewBuy == 1)
{
ClossAllProfitSell();
//ClossAllLossSell();
}

if (NewSell == 1)
{
ClossAllProfitBuy ();
//ClossAllLossBuy();
}
// ================= Комментарии ======================================
Comment("Работаем :)"); // Комментарий в угол окна

// =====================================================================
return(0);
}//0
// ================= Функции ==========================================
//+----------------------------------------------------------------------------+
//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Версия : 06.03.2008 |
//| Описание : Возвращает флаг существования позиций |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| op - операция (-1 - любая позиция) |
//| mn - MagicNumber (-1 - любой магик) |
//| ot - время открытия ( 0 - любое время открытия) |
//+----------------------------------------------------------------------------+
bool ExistPositions() {
for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
return(True);} return(False);}

//END

//+------------------------------------------------------------------+
//| Закрыть ордера |
//+------------------------------------------------------------------+
// ====================== Закрыть BUY в профите ===============================
double ClossAllProfitBuy ()
{ for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Gold);}
}

// ====================== Закрыть SELL в профите ===============================
double ClossAllProfitSell ()
{ for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
if (OrderType()==OP_SELL)OrderClose (OrderTicket(),OrderLots(),Ask,Slippage,Gold);}
}
// End


Можно к открытым ордерам добавить в настройках SL, мне кажется будет лучше?
 
вариант со стопом и профитом, теребит только свои ордера (по магику).
 

стопы, профиты, не трогает чужие ордера.

#property copyright "Scam Laboratory 2012" 
#property link      "http://www.forex4you.org/?affid=bdbda7b"
//=============== Меню ===============================================
extern string Name="BeerGodEA (25.06.12)";
extern double Lot = 0.1;
extern int TimeBarOpen = 1;
extern int Period_MA=20;      // Период МА
extern int stp=500;
extern int prf=500;
extern int Slippage = 1;
extern int mn= 5824;
//============== Переменные ==========================================
string GetNameOP="BeerGodEA"; // комент в открытом ордере
double TimeBar_t; // текущее время свечи
double sv_close; // цена закрытия свечи
double MA_1_t; // МА текущая
double MA_1_p; // МА предыдущая
bool NewBuy; // сигнал открытия покупки
bool NewSell; // сигнал открытия продажи
//============== 
int start()
  {
double sped;
//======== получение данных с индикаторов и текущей цены ======================
MA_1_t=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0); // МА_1 текущая
 sped=NormalizeDouble((iMA(NULL,0,Period_MA,0,0,0,0)-iMA(NULL,0,Period_MA,0,0,0,1))*1000000,1);
TimeBar_t = (TimeCurrent()-Time[0])/60; // время в минутах с открытия свечи
sv_close = iClose(NULL,0,1); // цена закрытия свечи на предыдущем баре
// ================= Обработка сигналов ===============================
if ((Bid < MA_1_t-Point) && (sped<0) && (Bid < sv_close) && (TimeBar_t==TimeBarOpen))   NewBuy = true; else  NewBuy = false; // условие BUY
if ((Bid > MA_1_t+Point) && (sped>0) && (Bid > sv_close) && (TimeBar_t==TimeBarOpen))   NewSell = true; else NewSell = false; // условие BUY
// ================= Открытие сделки ===================================
// открытие BUY
if (NewBuy && !(ExistPositions())) fn_open(0);
// открытие Sell
if (NewSell && !(ExistPositions()))  fn_open(1);
// ================= Закрытие сделки ===================================
if (NewBuy)ClossAllProfitSell(); 
if (NewSell)ClossAllProfitBuy(); 
// ================= Комментарии ======================================
Comment("Работаем :)");    // Комментарий в угол окна  
// =====================================================================
   return(0);
  }//0
// ================= Функции ==========================================
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 06.03.2008                                                     |
//|  Описание : Возвращает флаг существования позиций                          |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    ot - время открытия             ( 0   - любое время открытия)           |
//+----------------------------------------------------------------------------+
bool ExistPositions() {
  for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
       if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
           return(True);} return(False);}  
// End  ExistPositions()        
// ============
int fn_open(int tp)
{int tik;
if(tp==0){tik=OrderSend(Symbol(),tp,Lot,Ask,Slippage,0,0,GetNameOP,mn,0,LightSkyBlue);
   if(tik>0){OrderSelect(tik,SELECT_BY_TICKET);
      OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-stp*Point,OrderOpenPrice()+prf*Point,0);}}
        
if(tp==1){tik=OrderSend(Symbol(),tp,Lot,Bid,Slippage,0,0,GetNameOP,mn,0,HotPink);
   if(tik>0){OrderSelect(tik,SELECT_BY_TICKET);   
      OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+stp*Point,OrderOpenPrice()-prf*Point,0);}}
}// End fn_open
// ====================== Закрыть BUY в профите ===============================
double ClossAllProfitBuy ()
{ for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
       if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
       if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Gold);}
}
// ====================== Закрыть SELL в профите ===============================
double ClossAllProfitSell ()
{ for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
       if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
       if (OrderType()==OP_SELL)OrderClose (OrderTicket(),OrderLots(),Ask,Slippage,Gold);}
}
// End
 
TP и SL в корне меняет стратегию, ради эксперимента - пожалуйста, но прошу не кидать камни в мой огород
 
поставил неделю назад на 2 разных дц (на реалах)- первую версию и переработку на мм - скажу честно- пока все успешно...процентов 8-10 в день берем, иногда флетим...но особых просадок невидал- пока все в гору...спасибо афтору...
 
vdemon:
поставил неделю назад на 2 разных дц (на реалах)- первую версию и переработку на мм - скажу честно- пока все успешно...процентов 8-10 в день берем, иногда флетим...но особых просадок невидал- пока все в гору...спасибо афтору...

ДЦ четырехзнак или пятизнак, счет NDD или обычный, есть ли среди них форекс4ю ?, у меня на реале там тестится ...
 

Что-то последние 3 дня просадки большие.....

 
sammi61:
cobrra:

на 99% моделировании не идёт ни один советник, (кроме мартина), там урезанные тики.



Всё там нормально идёт. Я уже много сов перетестил, есть довольно-таки толковые резы. Этот сливает и так и так.
 

Интересная стратегия на отбой, но незащищенная от больших убытков (и даже слива) в виду отсутствия стоплосса. Безоткатное движение евры (как последние три дня) разорит.

 
BeerGod:
TP и SL в корне меняет стратегию, ради эксперимента - пожалуйста, но прошу не кидать камни в мой огород

Еще просьба к автору добавить во все версии советника или в версию с автолотом блок контроля открытия ордеров иоли несколько попыток открытия ордера советником, т. к. на реале уже много случаев не выставления ордеров нпо противоположному сигналу по причине проскальзываний и др. причин ДЦ, полностью нарушается смысл стратегии, налдо что бы советник проверял вычставолен ордер или нет по сигналу и в случае неудачной попытки повторил запрос на вычставление до его реального исполнения. Советник очень понпвавился особенно версия с автолотом.