0
Я пытался, у меня не получилось. Ну ладно, закажем в следующем топике.
avatar

droba

  • 14 февраля 2023, 03:51
0
Дак это понятно, только вот когда цена подходит к ордер блоку частенько вышибает S/L.
avatar

droba

  • 6 февраля 2023, 14:39
0
Да, ВЫ всё правильно поняли. Но после каждого SL увеличивается RISK на сделку, а риск можно выставить к примеру 0,1% и получить 8 убытков подряд, такая вероятность мала (попробуйте найдите 8 убытков подряд).
Проверено бесконечное количество стратегий и с разным соотношением RR все они на дистанции сливают и даже крутейших «гуру». Даже нашумевшая стратегия «умные деньги» где в углу угла стоит и имбаланс, и съём ликвидности, и блок ордер, и брейк ордер и много там ещё разных приблудов тоже сливная стратегия. И великий «снайпер», который раскручивают уже 10 лет так же сливает.
Поэтому ни кто не знает как там в будущем, а ищущий всегда найдет.
avatar

droba

  • 6 февраля 2023, 05:47
0
Андрей этот я сделал. Пока не начал делать тут надо маленько по другому. Вот по этим скринам.

avatar

droba

  • 5 февраля 2023, 05:27
0
Покупай дешевле, продавай дороже — главный закон Форекса. На уровне 423.6 как правило заканчивается пятиволновка, а бычью или медвежью свечу можно взять за первую волну, вот моё обоснование уровня 423.6.
avatar

droba

  • 27 января 2023, 15:02
0


А вот лонги с 3 октября по сегодняшний день на Н4. На недельном ТФ тренд баевский. Тут некоторые говорили, что уровни не обоснованы и стратегия не заслуживает внимания. А главный закон ФОРЕКС ни кто не отменял.
avatar

droba

  • 27 января 2023, 09:43
0
Да, недельный тренд селовский.
avatar

droba

  • 27 января 2023, 09:31
0


ТФ D1, тренд брал с месяца.


ТФ Н4 тренд недельный
avatar

droba

  • 27 января 2023, 06:47
0
Нужно что бы отложки выставлял каждый день.
avatar

droba

  • 20 января 2023, 08:39
0
Всё работает классно, но отложки удалять не нужно и выставлять каждый день. Переделать можно на каждый день.
avatar

droba

  • 20 января 2023, 04:01
0
Лимитку можно и ручками удалить. За любым советником надо следить.
avatar

droba

  • 20 января 2023, 03:44
0
Класс, работает.
avatar

droba

  • 22 декабря 2022, 06:43
0
Как всегда оперативно и качественно. Благодарю от всего сердца за проделанную работу.
avatar

droba

  • 26 октября 2022, 21:30
0
Андрей добрый день
Решил попробовать написать советник на индикаторе «Symphonie_Trendline_Indicator_v3.0» по шаблону (твой сод), но
не могу прописать индикатор в советнике.
double _Blu = iCustom(_Symbol, _Period,IndName,CCIPeriod,ATRPeriod,1);
double _Red = iCustom(_Symbol, _Period,IndName,CCIPeriod,ATRPeriod,1);
Помоги.
Вот индикатор
//+------------------------------------------------------------------------+
//| Symphonie_Trendline_Indicator_v3.0.mq4 |
//|Based on basic Trendline by MetaTrader_Experts_and_Indicators |
//+------------------------------------------------------------------------+
#property copyright «Symphonie Trader System»
#property link «MetaTrader_Experts_and_Indicators»

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 DodgerBlue
#property indicator_color2 Red

extern int CCIPeriod=60;
extern int ATRPeriod=24;
double TrendUp[];
double TrendDown[];
int st = 0;
//extern int SlowerEMA = 6;

//+------------------------------------------------------------------+
//| Custom indicator initialization function|
//+------------------------------------------------------------------+
int init()
{
//---- indicators

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);
SetIndexBuffer(0, TrendUp);
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 2);
SetIndexBuffer(1, TrendDown);

/*SetIndexStyle(0, DRAW_ARROW, EMPTY);
SetIndexArrow(0, 159);
SetIndexBuffer(0, TrendUp);
SetIndexStyle(1, DRAW_ARROW, EMPTY);
SetIndexArrow(1, 159);
SetIndexBuffer(1, TrendDown);*/

/*for(int i = 0; i < Bars; i++) {
TrendUp[i] = NULL;
TrendDown[i] = NULL;
}*/
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function|
//+------------------------------------------------------------------+
int deinit()
{
//----
/*for(int i = 0; i < Bars; i++) {
TrendUp[i] = NULL;
TrendDown[i] = NULL;
}*/
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function|
//+------------------------------------------------------------------+
int start()
{

int limit, i, counter;
double Range, AvgRange, cciTrendNow, cciTrendPrevious, var;

int 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--;

limit=Bars-counted_bars;

for(i = limit; i >= 0; i--) {
cciTrendNow = iCCI(NULL, 0, CCIPeriod, PRICE_TYPICAL, i);
cciTrendPrevious = iCCI(NULL, 0, CCIPeriod, PRICE_TYPICAL, i+1);

//st = st * 100;

counter = i;
Range = 0;
AvgRange = 0;
for (counter = i; counter >= i-9; counter--) {
AvgRange = AvgRange + MathAbs(High[counter]-Low[counter]);
}
Range = AvgRange/10;
if (cciTrendNow >= st && cciTrendPrevious < st) {
TrendUp[i+1] = TrendDown[i+1];
}

if (cciTrendNow <= st && cciTrendPrevious > st) {
TrendDown[i+1] = TrendUp[i+1];
}

if (cciTrendNow >= st) {
TrendUp[i] = Low[i] — iATR(NULL, 0, ATRPeriod, i);
if (TrendUp[i] < TrendUp[i+1]) {
TrendUp[i] = TrendUp[i+1];
}
}
else if (cciTrendNow <= st) {
TrendDown[i] = High[i] + iATR(NULL, 0, ATRPeriod, i);
if (TrendDown[i] > TrendDown[i+1]) {
TrendDown[i] = TrendDown[i+1];
}
}
}

//----

//----
return(0);
}

//+------------------------------------------------------------------+
avatar

droba

  • 26 октября 2022, 13:40
0
Все работает, красава. Спасибо.
avatar

droba

  • 11 октября 2022, 06:50
0
//+------------------------------------------------------------------+
//| BOLINGER.mq4 |
//| Copyright 2022, MetaQuotes Software Corp. |
//| www.mql5.com |
//+------------------------------------------------------------------+
#property copyright «Copyright 2022, MetaQuotes Software Corp.»
#property link «www.mql5.com»
#property version «1.00»
#property strict
input double RiskPercent = 1;
extern int Kf = 1; // Соотнош. приб. к убытку
extern double KLot = 2; // увеличение проц
input double bbotcl = 2.0;
input int bbperiod = 20;
input int MAPeriod = 240;
input int MAGICMA = 123;
//+------------------------------------------------------------------+
//| Расчет риска в % от величины SL |
//+------------------------------------------------------------------+
double CalculateLot(double _stop) {
double loss = _stop / MarketInfo(_Symbol, MODE_TICKSIZE) * MarketInfo(_Symbol, MODE_TICKVALUE);
double lots = AccountFreeMargin() * RiskPercent / 100 / loss;
return (NormalizeDouble(MathMin(MarketInfo(_Symbol, MODE_MAXLOT), MathMax(MarketInfo(_Symbol, MODE_MINLOT), lots)), 2));
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderProfit()>0)
lots = AccountFreeMargin() * RiskPercent / 100 / loss;
break;
if(OrderProfit()<0)
{
lots = AccountFreeMargin() * RiskPercent * KLot / 100 / loss;;
break;
}
}
}
}
}
//+------------------------------------------------------------------+
//| Calculate open positions |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0;
//---
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}
//--- return orders volume
if(buys>0) return(buys);
else return(-sells);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Check for open order conditions |
//+------------------------------------------------------------------+
void CheckForOpen()
{
int res;
double bbup=iBands(Symbol(),0,bbperiod,bbotcl,0,PRICE_CLOSE,MODE_UPPER,1);
double bbMain=iBands(Symbol(),0,bbperiod,bbotcl,0,PRICE_CLOSE,MODE_MAIN,1);
double bblow=iBands(Symbol(),0,bbperiod,bbotcl,0,PRICE_CLOSE,MODE_LOWER,1);
double ma=iMA(NULL,0,MAPeriod,0,MODE_SMMA,PRICE_CLOSE,1);
double Lo = NormalizeDouble(iLow(_Symbol, _Period, 1), Digits);
double H = NormalizeDouble(iHigh(_Symbol, _Period, 1), Digits);
double Lo_2 = NormalizeDouble(iLow(_Symbol, _Period, 2), Digits);
double H_2 = NormalizeDouble(iHigh(_Symbol, _Period, 2), Digits);
double Cl = NormalizeDouble(iClose(_Symbol, _Period, 1), Digits);
double Cl_2 = NormalizeDouble(iClose(_Symbol, _Period, 2), Digits);
double OP = NormalizeDouble(iOpen(_Symbol, _Period, 1), Digits);
double max = High[iHighest(_Symbol, _Period,MODE_HIGH, 12,1)];
double min = Low[iLowest(_Symbol,_Period,MODE_LOW,12,1)];
double Sl_S = Bid + (Bid — bblow);
double Sl_B = Ask — (bbup — Ask);
//--- sell conditions
if(bbMain < OP && bbMain > Bid && bbMain < ma)
{
res=OrderSend(Symbol(),OP_SELL,CalculateLot(max — Bid),Bid,30,max,Bid — Kf*(max — Bid),«BOLINGER»,MAGICMA,0,Red);
return;
}
//--- buy conditions
if(bbMain > OP && bbMain < Ask && bbMain > ma)
{
res=OrderSend(Symbol(),OP_BUY,CalculateLot(Ask — min),Ask,30,min,Ask + Kf*(Ask — min),«BOLINGER»,MAGICMA,0,Blue);
return;
}
//---
}

//+------------------------------------------------------------------+
//| OnTick function |
//+------------------------------------------------------------------+
void OnTick()
{
//--- check for history and trading
if(Bars<100 || IsTradeAllowed()==false)
return;
//--- calculate open orders by current symbol
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
//---
}
//+------------------------------------------------------------------+
avatar

droba

  • 27 апреля 2022, 17:06
0
Покажите график прибыльности с Вашего тестера.
avatar

droba

  • 25 марта 2022, 17:15
0
С какого значения начинает работать?
avatar

droba

  • 25 марта 2022, 17:08