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

 

Поскольку ордера на реале закрываются всегда, но иногда не хотят открываться на некоторых ДЦ, скорей всего недостаточно паузы в 1 секунду, после закрытия ордера, перед открытием, попробуйте увеличить паузу с 1й секунды до 5 сек в этом модуле. (поменяйте 1000 на 5000), а также увеличьте Slippage в настройках с 1 до 3 для 4х значных ДЦ.

{//4
if (NewBuy == 1) 
{
ClossAllProfitSell ();
ClossAllLossSell();
Sleep(1000);
}
if (NewSell == 1) 
{
ClossAllProfitBuy ();
ClossAllLossBuy();
Sleep(1000);
}
}//4
 
Советник на первый взгляд отличный! поставил в июле на реал, стабильно в рост, за исключением просадки поначалу на безоткате евры, чего версия со SL позволила бы избежать. Теперь использую ее. Размышления под пиво рулят, респект автору )
 
Если незатруднит...к версии с tp и sl добавить код MoneyManagement...спасибо.
 
Я давно на форуме,много,что тестил чужого и делал сам, автору РЕСПЕКТ !! Оригинальное решение и любые добавки и усовершенствования могут скорее повредить. Скорее трейдер перед новостями или выступлениями глав ЦБ должен стопы ставить. Советник очень удачный!
 

143alex:

Оригинальное решение и любые добавки и усовершенствования могут скорее повредить.

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

 
vdemon:
Если незатруднит...к версии с tp и sl добавить код MoneyManagement...спасибо.
MM бывает десятки вариантов, какой имеешь ввиду?
 
Извиняюсь перед автором, немного по импровизировал.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//=============== Меню ===============================================
extern double Lot = 0.1;
extern int TimeOpen = 1;
extern int Period_MA=20;
extern int stp=500;
extern int prf=500;
//============== Переменные ==========================================
int mn= 5824;
int tmf=60;
int Slippage = 1;
string GetNameOP="Beer"; 
bool NewBuy,NewSell,opn_s,opn_b;
int k,spred;
double sped;
int init() {
//нннннннннннннннннннннннннннн//
if(Digits==2) k=1.0;
if(Digits==3) k=10.0;
if(Digits==4) k=1.0;
if(Digits==5) k=10.0;
stp=stp*k;
prf=prf*k;
Slippage=Slippage*k;
//нннннннннннннннннннннннннннн//
   return (0);
}
//============== 
int start()
  {
double MA_1_t,sv_close,TimeBar_t;
int tik_b,tik_s;
//======== 
  for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
       if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
       if (OrderType()==OP_BUY)  tik_b=OrderTicket();
       if (OrderType()==OP_SELL) tik_s=OrderTicket();}
               
//======== получение данных с индикаторов и текущей цены ======================
 spred=MarketInfo(Symbol(),MODE_SPREAD);
 MA_1_t=iMA(NULL,tmf,Period_MA,0,MODE_SMA,PRICE_CLOSE,0); // МА_1 текущая
 sped=NormalizeDouble((iMA(NULL,tmf,Period_MA,0,0,0,0)-iMA(NULL,tmf,Period_MA,0,0,0,1))*1000000,1);
 TimeBar_t = TimeMinute(TimeCurrent()); // время в минутах с открытия свечи
 sv_close = iClose(NULL,tmf,1); // цена закрытия свечи на предыдущем баре
// ================= Обработка сигналов ===============================
if (tik_b==0&&Bid<MA_1_t-Point&&sped<0&&Bid<sv_close&&TimeBar_t==TimeOpen)  NewBuy=true; else  NewBuy=false;
if (tik_s==0&&Bid>MA_1_t+Point&&sped>0&&Bid>sv_close&&TimeBar_t==TimeOpen)  NewSell=true; else NewSell=false;
// =================//
   if(NewBuy&&tik_s==0)  fn_open(0);
   if(NewSell&&tik_b==0) fn_open(1);
// ================= Закрытие сделки ===================================
if (NewBuy && tik_s>0) ClossAll(1); 
if (NewSell && tik_b>0)ClossAll(0); 
// ================= Комментарии ======================================
   if (!IsOptimization() && !IsTesting() && !IsVisualMode())com();
// =====================================================================
   return(0);}
// ================= Функции ==========================================
int fn_open(int tp)
{int tik,st,pf; double prc; if(tp==0){st=-stp; pf=prf; prc=Ask;} if(tp==1){st=stp; pf=-prf; prc=Bid;}
   tik=OrderSend(Symbol(),tp,Lot,prc,Slippage,0,0,GetNameOP,mn,0,LightSkyBlue);
   if(tik>0){OrderSelect(tik,SELECT_BY_TICKET);
      OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+st*Point,OrderOpenPrice()+pf*Point,0);}
}// End fn_open
// ====================== Закрыть BUY в профите ===============================
double ClossAll(int tp){
 for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
       if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
       if(tp==0 && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Gold);
       if(tp==1 && OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Gold);}}       
// =============================================//
void com(){
Comment("  sped ",sped,"     ",TimeToStr(TimeCurrent(),4)
   ,"\n","  Прибыль за сегодня = ", NormalizeDouble(getDayProfitall(1, 0), 2), " $ "
   ,"\n","  Прибыль за вчера    = ", NormalizeDouble(getDayProfitall(1, 1), 2), " $ "
   ,"\n","  Текущий баланс       = ", AccountBalance(), " $ ","\n","  spred= ",spred);}
// =============================================//
  double getDayProfitall(int ai_0, int ai_4) {
   int year,month,day,datetm;
   int hist=OrdersHistoryTotal();
   double ld_28=0;
   for (int pos=0; pos<hist; pos++) {
      OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY);
      datetm=OrderCloseTime();
      year=TimeYear(datetm);
      month=TimeMonth(datetm);
      day=TimeDay(datetm);
      if (year==Year() && month==Month() && day==Day()-ai_4 && OrderMagicNumber()==mn) {if (ai_0==1)
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) ld_28=ld_28+OrderProfit()+OrderSwap()+OrderCommission();
      }}return (ld_28);}
// =============================================//
 
johndk:

143alex:

Оригинальное решение и любые добавки и усовершенствования могут скорее повредить.

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



Если не труднго добавте в код возможность запрета торговли советника по ьпятницам, что бы можно было потестировать, мне кажется по пятницам частоь в просадки залезает.
 
sammi61:
johndk:

143alex:

Оригинальное решение и любые добавки и усовершенствования могут скорее повредить.

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



Если не труднго добавте в код возможность запрета торговли советника по ьпятницам, что бы можно было потестировать, мне кажется по пятницам частоь в просадки залезает.я
я не специалист, но может просто в пятницу терминал не включать? за подсказку с пятницей СПАСИБО! понедельники - также трудные дни для любой ТС
 
ребят, а вообще у кого какие результаты хоть? нескромно так спрошу....))
Причина обращения: