Spread Control

 

Как всем известно, наибольший убыток в торговле на форекс приносит спред.

На реале конечно проще контролировать спред, но в тестере очень сложно, особенно если тестировать по ценам открытия даже на М1.

Поделитесь, как вы контролируете спред в эксперте, в реале и в тестере. Хочется чтобы тестирование не сильно отличалось от реала.

Например у меня сейчас такая конструкция:

input int kSpreadMax = 2;
-------   
   CopySpread(_Symbol,TimeFrames,0,200,spread);
   int minspread=spread[ArrayMinimum(spread)];
   int currspread=int((tick.ask-tick.bid)/_Point);
   if(currspread<=minspread*kSpreadMax) SpreadTradeAllowed=true;

Всё равно возникают проблемы при тестировании.

 
Sergey Chalyshev:

Как всем известно, наибольший убыток в торговле на форекс приносит спред.

На реале конечно проще контролировать спред, но в тестере очень сложно, особенно если тестировать по ценам открытия даже на М1.

Поделитесь, как вы контролируете спред в эксперте, в реале и в тестере. Хочется чтобы тестирование не сильно отличалось от реала.

Например у меня сейчас такая конструкция:

Всё равно возникают проблемы при тестировании.

так же...

 

Для открытия Бай и закрытия Селл Нам нужны только цены Аск. вот и расчитываю в советнике уровень когда Аск меньше цены этого уровня, тогда и Закрываю продажи или открываю покупку. 

Для открытия Селл и закрытия Бай нам нужны только цены Бид. Поэтому расчетные уровни считаю, так, что как только Бид выше цена уровня то соответсвенно открываю Селл или закрываю Бай.

Исходя из того же принципа расчитываю СЛ и ТП. 

А какой там спред меня мало интересует...

 
Sergey Chalyshev:

Как всем известно, наибольший убыток в торговле на форекс приносит спред.

Мне этого неизвестно. На моем ECN счету средний спред по EURUSD 0.1 pips (один 5-значный пункт). А вот комиссия 7 долл на полный лот. Это в 7 раз больше спреда. Также отрицательные свопы наносят гораздо больший убыток чем спред. Да, спред расширяется во время выхода новостей и в периоды низкой ликвидности, но в это время лучше воздержаться от входов/выходов.

 
"А какой там спред меня мало интересует...!" -- интересные слова..)
 

Почему в истории спрэд практически всегда не совпадает с реальным?

Чем отличается

(int)SymbolInfoInteger(_Symbol,SYMBOL_SPREAD)

От

spread[0] (  int  OnCalculate( const int &spread[]) )

Показания спрэда не совпадают (пример индикатора)

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright   "2009-2017, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property description "Спред"
//--- indicator settings
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots  1
#property indicator_level1 8
#property indicator_level2 4

#property indicator_label1 "Спред"
#property indicator_type1  DRAW_COLOR_HISTOGRAM  
#property indicator_color1 clrGreen, clrRed 
#property indicator_style1 STYLE_SOLID
#property indicator_width1 3

double    Buffer[];
double    COLORBuffer[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnInit()
  {
   SetIndexBuffer(0,Buffer,INDICATOR_DATA);
   SetIndexBuffer(1,COLORBuffer,INDICATOR_COLOR_INDEX);
   ArraySetAsSeries(Buffer,true);
   ArraySetAsSeries(COLORBuffer,true);
//IndicatorSetInteger(INDICATOR_DIGITS,0);
   IndicatorSetString(INDICATOR_SHORTNAME," ");

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   ArraySetAsSeries(spread,true);
   ArraySetAsSeries(tick_volume,true);
   int _spread_=(int)SymbolInfoInteger(_Symbol,SYMBOL_SPREAD);

   Comment(StringFormat("Спред = %d \ntick_volume 0 = %d ",_spread_,tick_volume[0]));
   Buffer[0]=spread[0];
   if(spread[0]!=_spread_)
     {COLORBuffer[0]=1.0;}
   else
     {COLORBuffer[0]=1.0;}

   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Sergey Chalyshev:

Как всем известно, наибольший убыток в торговле на форекс приносит спред...

Однако! А мне всегда казалось, что наибольший убыток приносит торговля без стопов... Тут наверное ещё тип стратегии влияет на чувствительность к спреду... Если доля спреда большая относительно среднего профита, то да, стоит заморачиваться...

На реале конечно проще контролировать спред, но в тестере очень сложно, особенно если тестировать по ценам открытия даже на М1.

Поделитесь, как вы контролируете спред в эксперте, в реале и в тестере. Хочется чтобы тестирование не сильно отличалось от реала...


Я лично в Тестере делаю иногда своего рода стресс-тестирование. Беру средний спред за период помноженный на некоторый коэффициент.

 
Alexander Sevastyanov:

Мне этого неизвестно. На моем ECN счету средний спред по EURUSD 0.1 pips (один 5-значный пункт). А вот комиссия 7 долл на полный лот. Это в 7 раз больше спреда. Также отрицательные свопы наносят гораздо больший убыток чем спред. Да, спред расширяется во время выхода новостей и в периоды низкой ликвидности, но в это время лучше воздержаться от входов/выходов.

0.1 pips это хорошо, но не всегда же такой спред. 

У меня брокер вон что вытворяет, до 10 раз спред увеличивает:

В том и вопрос, как узнать когда надо воздержаться.

А историю в тестере проверяли? Какой спред там пишется? 

 
Dmitiry Ananiev:

Для открытия Бай и закрытия Селл Нам нужны только цены Аск. вот и расчитываю в советнике уровень когда Аск меньше цены этого уровня, тогда и Закрываю продажи или открываю покупку. 

Для открытия Селл и закрытия Бай нам нужны только цены Бид. Поэтому расчетные уровни считаю, так, что как только Бид выше цена уровня то соответсвенно открываю Селл или закрываю Бай.

Исходя из того же принципа расчитываю СЛ и ТП. 

А какой там спред меня мало интересует...

Т.е. реальные стопы не ставить, а советник контролирует и закрывает по рынку?

Тоже так делал но не всегда такой способ подходит.

 
SEM:

Почему в истории спрэд практически всегда не совпадает с реальным?

Чем отличается

(int)SymbolInfoInteger(_Symbol,SYMBOL_SPREAD)

От

spread[0] (  int  OnCalculate( const int &spread[]) )

Показания спрэда не совпадают (пример индикатора)

SymbolInfoInteger(_Symbol,SYMBOL_SPREAD) - это текущий спред,

spread[0] - это максимальный за время бара.

 
Dennis Kirichenko:

Однако! А мне всегда казалось, что наибольший убыток приносит торговля без стопов... Тут наверное ещё тип стратегии влияет на чувствительность к спреду... Если доля спреда большая относительно среднего профита, то да, стоит заморачиваться...


Я лично в Тестере делаю иногда своего рода стресс-тестирование. Беру средний спред за период помноженный на некоторый коэффициент.

Стопы если и ставить то только виртуальные, реальные стопы подарок дилеру.

Конечно чем больше стопы и цели (порядка 1000 пипсов), тем меньше спред влияет на результат торговли.

Но так помоему ничего не заработать, по полгода можно сидеть ждать одну сделку, скучно. ))

В первом посту пример показал, так же? Может есть более универсальный алгоритм?

Как то делал скрипт для расчета на каком инструменте выгоднее торговать. Брал средний размах за день и делил на средний спред.

Причина обращения: