0
А это за какой период торговли такой график получился?
avatar

kalabster

  • 3 августа 2023, 14:39
0
сделаешь мониторинг на myfxbook если не сложно?
avatar

kalabster

  • 2 августа 2023, 16:49
0
Можешь отправить сет? (тф, пара, период, начальный баланс). Пробовал разные настройки, но видимо что-то не догоняю
avatar

kalabster

  • 2 августа 2023, 11:06
0
Задумка достаточно интересная, однако, на стандартных настройках сливает. Смысл тестировать имеет только на всех тиках, т.к. на других вариантах тестирования показывают разные значения. Тест за 22 год, евродоллар
avatar

kalabster

  • 2 августа 2023, 08:22
0
Со стандартными параметрами сливает. Тест за 22 год, скопытился на 3 месяце.
avatar

kalabster

  • 1 августа 2023, 15:51
0
По быстрым тикам даже процент прибыли хороший. По всем тикам процент доходности меньше. И ещё когда робот начинает упираться в кол-во открываемых позиций, то начинаются проблемы в виде провисания ордеров, которые обычно доходят до слива депозита. Тестил за 2022 год.
avatar

kalabster

  • 1 августа 2023, 15:08
0
Нужен mq4 файл, а не ex4
avatar

kalabster

  • 23 марта 2023, 18:58
0
А условие на ограничение количества ордеров в советник не добавляли? И насколько помню этот индикатор перерисовывает
avatar

kalabster

  • 13 марта 2023, 13:51
0
Попробуй Зигзаг с параметрами 5,5,3. Для смарт мани так использую, удобно
avatar

kalabster

  • 5 марта 2023, 14:42
0
Скинь похожий сюда, думаю изменить не сложно
avatar

kalabster

  • 5 марта 2023, 13:02
0
Интересная затея. Для смарт мани?
avatar

kalabster

  • 3 марта 2023, 18:29
0
Индикатор перерисовывает. Проверил сегодня на ЕВРОДОЛЛАРе
avatar

kalabster

  • 30 марта 2022, 21:44
0
Я его переделывал под себя, поэтому так осталось). Добавил туда линию H4 и упорядочил буферы для удобства в дальнейшем написании, подписал комментарии к блокам
avatar

kalabster

  • 4 сентября 2021, 18:31
+1
#property link      "madebykalabster@yandex.ru"
//----
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Gold
#property indicator_color4 Aqua
//---- buffers
double P1Buffer[];
double P2Buffer[];
double P3Buffer[];
double P4Buffer[];
//----
double PP, Q;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
 
{
   
SetIndexBuffer(0, P1Buffer);
   
SetIndexBuffer(1, P2Buffer);
   
SetIndexBuffer(2, P3Buffer);
   
SetIndexBuffer(3, P4Buffer);
//----
   
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);
   
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 2);
   
SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 2);
   
SetIndexStyle(3, DRAW_LINE, STYLE_SOLID, 2);
//----
   
Comment("Waddah Attar Pivot");
   
return(0);
 
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
 
{
   
ObjectDelete("DayP");
   
ObjectDelete("WeekP");
   
ObjectDelete("MonthP");
   
ObjectDelete("H4");
   
ObjectDelete("txtDayP");
   
ObjectDelete("txtWeekP");
   
ObjectDelete("txtMonthP");
   
ObjectDelete("txtH4");

   
Comment("");
   
return(0);
 
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
 
{
   
int i, dayi, counted_bars = IndicatorCounted();
//---- check for possible errors
   
if(counted_bars < 0)
       
return(-1);
//---- last counted bar will be recounted
   
if(counted_bars > 0)
       counted_bars
--;  
   
int limit = Bars - counted_bars;
//----  
   
for(i = limit - 1; i >= 0; i--)
     
{
       
//H4 PIVOT
       dayi
= iBarShift(Symbol(), PERIOD_H4, Time[i], false);
       Q
= (iHigh(Symbol(), PERIOD_H4,dayi + 1) - iLow(Symbol(), PERIOD_H4, dayi + 1));
       PP
= (iHigh(Symbol(), PERIOD_H4, dayi + 1) + iLow(Symbol(), PERIOD_H4, dayi + 1) + iClose(Symbol(), PERIOD_H4, dayi + 1)) / 3;    
       
       P4Buffer
[i] = PP;
       
SetPrice("H4", Time[i], PP, indicator_color4);
       
SetText("txtH4", "H4 Pivot", Time[i], PP, indicator_color4);
       
//DAY PIVOT
       dayi
= iBarShift(Symbol(), PERIOD_D1, Time[i], false);
       Q
= (iHigh(Symbol(), PERIOD_D1,dayi + 1) - iLow(Symbol(), PERIOD_D1, dayi + 1));
       PP
= (iHigh(Symbol(), PERIOD_D1, dayi + 1) + iLow(Symbol(), PERIOD_D1, dayi + 1) + iClose(Symbol(), PERIOD_D1, dayi + 1)) / 3;    
       
       P1Buffer
[i] = PP;
       
SetPrice("DayP", Time[i], PP, indicator_color1);
       
SetText("txtDayP", "Day Pivot", Time[i], PP, indicator_color1);
       
//WEEKLY PIVOT
       dayi
= iBarShift(Symbol(), PERIOD_W1, Time[i], false);
       Q
= (iHigh(Symbol(), PERIOD_W1,dayi + 1) - iLow(Symbol(), PERIOD_W1, dayi + 1));
       PP
= (iHigh(Symbol(), PERIOD_W1, dayi + 1) + iLow(Symbol(), PERIOD_W1, dayi + 1) + iClose(Symbol(), PERIOD_W1, dayi + 1)) / 3;    
       
       P2Buffer
[i] = PP;
       
SetPrice("WeekP", Time[i], PP, indicator_color2);
       
SetText("txtWeekP", "Week Pivot", Time[i], PP, indicator_color2);
       
//MONTHLY PIVOT
       dayi
= iBarShift(Symbol(), PERIOD_MN1, Time[i], false);
       Q
= (iHigh(Symbol(), PERIOD_MN1,dayi + 1) - iLow(Symbol(), PERIOD_MN1, dayi + 1));
       PP
= (iHigh(Symbol(), PERIOD_MN1, dayi + 1) + iLow(Symbol(), PERIOD_MN1, dayi + 1) + iClose(Symbol(), PERIOD_MN1, dayi + 1)) / 3;    
       
       P3Buffer
[i] = PP;
       
SetPrice("MonthP", Time[i], PP, indicator_color3);
       
SetText("txtMonthP", "Month Pivot", Time[i], PP, indicator_color3);

   
}
//----
   
return(0);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SetPrice(string name, datetime Tm, double Prc, color clr)
 
{
   
if(ObjectFind(name) == -1)
     
{
       
ObjectCreate(name, OBJ_ARROW, 0, Tm, Prc);
       
ObjectSet(name, OBJPROP_COLOR, clr);
       
ObjectSet(name, OBJPROP_WIDTH, 1);
       
ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
     
}
   
else
     
{
       
ObjectSet(name, OBJPROP_TIME1, Tm);
       
ObjectSet(name, OBJPROP_PRICE1, Prc);
       
ObjectSet(name, OBJPROP_COLOR, clr);
       
ObjectSet(name, OBJPROP_WIDTH, 1);
       
ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
     
}
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SetText(string name, string txt, datetime Tm, double Prc, color clr)
 
{
   
if(ObjectFind(name) == -1)
     
{
       
ObjectCreate(name, OBJ_TEXT, 0, Tm, Prc);
       
ObjectSetText(name, txt, 10, "Times New Roman", clr);
       
ObjectSet(name, OBJPROP_CORNER, 2);
     
}
   
else
     
{
       
ObjectSet(name, OBJPROP_TIME1, Tm);
       
ObjectSet(name, OBJPROP_PRICE1, Prc);
       
ObjectSetText(name, txt, 10, "Times New Roman", clr);
       
ObjectSet(name, OBJPROP_CORNER, 2);
     
}
 
}
//+------------------------------------------------------------------+
avatar

kalabster

  • 4 сентября 2021, 12:15
0
Варианты: Задать вручную 3 параметра
Параметр1 до N-пунктов слабое пробитие
Параметр2 от N до M пунктов среднее пробитие
Параметр3 если больше M пунктов сильное пробитие

параметр считается как разница между показаниями боллинджера на первом и на втором баре.

Вариант 2: это размер тела первой свечи(свеча, в которой находится полоска боллинджера). Принцип тот же. Дерзайте)
avatar

kalabster

  • 9 апреля 2021, 09:22
0
О раскрытии конкретики никакой, при каких условиях и т.д. и т.п.
avatar

kalabster

  • 8 апреля 2021, 21:25
0
Может проще сделать, когда цена закрывается выше/ниже отклонений полос боллинджера рисовать стрелку? Не?
avatar

kalabster

  • 8 апреля 2021, 17:13
0
При значение переключателя false должен работать антимартин, не тестировал, проверяй
avatar

kalabster

  • 31 марта 2021, 23:38
0
//+------------------------------------------------------------------+
//|                                                       Custom.mq4 |
//|                                              Copyright 2019, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 2;        // увеличение лота
extern bool   FLAG1      = true;     // переключатель
extern double MaxLot     = 5;        // максимальный лот
extern double Level      = 4;        // уровень
extern int StopLoss      = 0;        // лось
extern int TakeProfit    = 0;        // язь
extern int Slip          = 30;       // реквот
extern int Shift         = 0;        // на каком баре сигнал индикатора
extern int Magic         = 123;      // магик
extern string Expiration = "15";
extern bool Reverse      = 0;

extern string IndName="VCustom3";
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
 
{
//---
   
Comment("");
//---
   
return(INIT_SUCCEEDED);
 
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
 
{
   
Comment("");
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
 
{
   
int r=0;
   color clr
=Green;
   
double sl=0,tp=0;

   
if(type==1 || type==3 || type==5)
     
{
      clr
=Red;
     
if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*Point,Digits);
     
if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     
}

   
if(type==0 || type==2 || type==4)
     
{
      clr
=Blue;
     
if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*Point,Digits);
     
if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     
}

   r
=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,Expiration,Magic,0,clr);
   
return;
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
 
{
   
int count=0;
   
for(int i=OrdersTotal()-1;i>=0;i--)
     
{
     
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
       
{
         
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           
{
           
if(OrderType()<2) count++;
           
}
       
}
     
}
   
return(count);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int Loss()
 
{
   
int loss=0;
   
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     
{
     
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
       
{
         
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           
{
           
if(OrderType()==0)
             
{
               
if(OrderClosePrice()-OrderOpenPrice()<0) loss++;
               
if(OrderClosePrice()-OrderOpenPrice()>0) break;
             
}
           
if(OrderType()==1)
             
{
               
if(OrderClosePrice()-OrderOpenPrice()>0) loss++;
               
if(OrderClosePrice()-OrderOpenPrice()<0) break;
             
}
           
}
       
}
     
}
   
return(loss);
 
}
//--------------------------------------------------------------------
int Poss()
 
{
   
int loss=0;
   
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     
{
     
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
       
{
         
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           
{
           
if(OrderType()==0)
             
{
               
if(OrderClosePrice()-OrderOpenPrice()>0) loss++;
               
if(OrderClosePrice()-OrderOpenPrice()<0) break;
             
}
           
if(OrderType()==1)
             
{
               
if(OrderClosePrice()-OrderOpenPrice()<0) loss++;
               
if(OrderClosePrice()-OrderOpenPrice()>0) break;
             
}
           
}
       
}
     
}
   
return(loss);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
 
{
   
double lot;
   
if(FLAG1 == true)
   
{
   lot
=NormalizeDouble(Lots*MathPow(KLot,Loss()),2);
   
}
   
else lot=NormalizeDouble(Lots*MathPow(KLot,Poss()),2);
   
if(lot>MaxLot)lot=Lots;
   
return(lot);
 
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
 
{
   
double ind1=iCustom(NULL,0,IndName,3,Shift);
   
double ind2=iCustom(NULL,0,IndName,3,Shift+1);

   
if(CountTrades()<1 && !Reverse)
     
{
     
if(ind1>Level && ind2<Level) PutOrder(0,Ask);
     
if(ind1<-Level && ind2>-Level) PutOrder(1,Bid);
     
}

   
if(CountTrades()<1 && Reverse)
     
{
     
if(ind1<-Level && ind2>-Level) PutOrder(0,Ask);
     
if(ind1>Level && ind2<Level) PutOrder(1,Bid);
     
}

   
Comment("\n Losses: ",Loss(), "\n Posses: ",Poss(),
           
"\n Ind: ",ind1);
 
}
//+------------------------------------------------------------------+
avatar

kalabster

  • 31 марта 2021, 23:37
0
//+------------------------------------------------------------------+ 
//|                                     индикатор направления Тренда |                                      
//|                                     Зотов ИВ zot@pisem.net       |
//+------------------------------------------------------------------+
#property copyright "zot@pisem.net"
#property link      "zot@pisem.net"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Green
#property indicator_color2 Red
//---- input parameters
extern int       period=34;
extern int       method=3;                         // MODE_SMA
extern int       price=0;                          // PRICE_CLOSE
//---- buffers
double Uptrend[];
double Dntrend[];
double ExtMapBuffer[];
double Buy[],Sel[]; //стрелочки
bool UP = true;
bool DN = true;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   
IndicatorBuffers(5);  
   
SetIndexBuffer(0, Uptrend); SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1,clrGreen);//ArraySetAsSeries(Uptrend, true);  
   
SetIndexBuffer(1, Dntrend); SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1,clrRed);//ArraySetAsSeries(Dntrend, true);  
   
SetIndexBuffer(2, Buy); SetIndexStyle(2,DRAW_ARROW,EMPTY,1,clrGreen); SetIndexArrow(2,233); SetIndexEmptyValue(2,0.0); //strelka vverh Buy[i]= Low[i]-10*Point;
   
SetIndexBuffer(3, Sel); SetIndexStyle(3,DRAW_ARROW,EMPTY,1,clrRed ); SetIndexArrow(3,234); SetIndexEmptyValue(3,0.0); //strelka vniz  Sel[i]= High[i]+10*Point;
   
SetIndexBuffer(4, ExtMapBuffer);
   
ArraySetAsSeries(ExtMapBuffer, true);
   
IndicatorShortName("Trend("+period+")");
   
return(0);
}

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{

   
return(0);
}


//+------------------------------------------------------------------+
double WMA(int x, int p)
{
   
return(iMA(NULL, 0, p, 0, method, price, x));    
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
   
int counted_bars = IndicatorCounted();
   
   
if(counted_bars < 0)
       
return(-1);
                 
   
int x = 0;
   
int p = MathSqrt(period);              
   
int e = Bars - counted_bars + period + 1;
   
   
double vect[], trend[];
   
   
if(e > Bars)
        e
= Bars;    

   
ArrayResize(vect, e);
   
ArraySetAsSeries(vect, true);
   
ArrayResize(trend, e);
   
ArraySetAsSeries(trend, true);
   
   
for(x = 0; x < e; x++)
   
{
        vect
[x] = 2*WMA(x, period) - WMA(x, period);        
       
//Print("Bar date/time: ", TimeToStr(Time[x]), " close: ", Close[x], " vect[", x, "] = ", vect[x], " 2*WMA(p/2) = ", 2*WMA(x, period/2), " WMA(p) = ",  WMA(x, period));
   
}

   
for(x = 0; x < e-period; x++)
     
       
ExtMapBuffer[x] = iMAOnArray(vect, 0, p, 0, method, x);        
   
   
for(x = e-period; x >= 0; x--)
   
{    
        trend
[x] = trend[x+1];
       
if (ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
       
if (ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1;
   
   
if (trend[x]>0)
   
{
     
Uptrend[x] = ExtMapBuffer[x];
     
if (UP == true)
     
{
     
Buy[x]= Low[x]-10*Point; UP = false; DN = true;
     
}
     
if (trend[x+1]<0) Uptrend[x+1]=ExtMapBuffer[x+1];
     
Dntrend[x] = EMPTY_VALUE;
   
}
   
else
                 
   
if (trend[x]<0)
   
{
     
Dntrend[x] = ExtMapBuffer[x];
     
if (DN == true)
     
{
     
Sel[x]= High[x]+10*Point; DN = false; UP = true;
     
}
     
if (trend[x+1]>0) Dntrend[x+1]=ExtMapBuffer[x+1];
     
Uptrend[x] = EMPTY_VALUE;
   
}              
   
   
//Print( " trend=",trend[x]);
   
}
   
   
return(0);
}
//+------------------------------------------------------------------+
avatar

kalabster

  • 12 марта 2021, 23:32
Загрузка...