Торговля спредами в Meta Trader-е - страница 5

 

В двух словах:

1) Рассчитывается среднестатистический спред

2) Рассчитывается текущий спред по ценам LAST

3) Если текущий спред выше\ниже среднестатистического - происходит открытие позиции. (Ниже\выше определяется в зависимости от ситуации на рынке - контанго или беквордация)

 
Как у вас расчитывается среднестатистический спред (если не секрет)?
 
MetaDriver >>:

Не очень понял в чём уголовщина. Она что, по сговору с брокером двигала цены? Или просто своими бабками? Если своими кровными - уголовщины в упор не вижу. Остроумие - да, уголовщина - нет. И Ваш "большой счёт" - всего лишь невротическое морализаторство. Когда этим же занимаются банки никому и в голову не приходит называть это уголовщиной. :)


Почитать можно здесь (с 310 поста): http://www.procapital.ru/showthread.php?t=20648&page=21 и здесь http://www.procapital.ru/showthread.php?t=21115

 
rid >>:
Как у вас расчитывается среднестатистический спред (если не секрет)?


double CalculateAvarageSpread(string Symbol_1, string Symbol_2,
                              int Timeframe, int NBars)
{
   int k;
   double N = 0;
   double Sum = 0;
   for(k = 0; k < iBars(Symbol_1,Timeframe); k++)
   {
      if(N == NBars)
         break;

      int symb2Shift = iBarShift(Symbol_2,Timeframe,iTime(Symbol_1,Timeframe,k),true);
      if(symb2Shift != -1)
      {
         Sum += iClose(Symbol_1,Timeframe,k) - iClose(Symbol_2,Timeframe,symb2Shift);
         N++;
      }
   }
   double avarageSpread = Sum / N;
   return(avarageSpread);
}
 
C-4 >>:


Почитать можно здесь (с 310 поста): http://www.procapital.ru/showthread.php?t=20648&page=21 и здесь http://www.procapital.ru/showthread.php?t=21115

Такова позиция конторы, и это понятно почему. Но если посмотреть на факты - кухня выставила bid и offer, это ничто иное, как предложение совершить сделку. Клиент соглашается на это предложение. После этого начинать орать, что дескать, кухню обманули, да при этом еще и выдвигать аргументы типа "Но никто и никогда в жизни, даже самый гениальный трейдер не торгует ночью на мясе" или "мы не знали, что ликвидность рынка не бесконечна" - это детский сад.

Позиция кухни выглядит весьма слабо, сомневаюсь что они захотят доводить дело до суда.

 

Мда.. Конечно все не гладко.

У Б. в демо ордера можно открывать только по ценам символов GCZ9 и GCG0, (Bid = Ask).

При реальной торговле открытие происходит по GCZ9#I и GCG0#I, (Bid != Ask).

И cпред получается вполне адекватный, какой-либо мегаприбыли получить не выходит.


В общем, похоже найден всего лишь еще один способ строить красивые графики демо-баланса.

 
Fduch >>:

Мда.. Конечно все не гладко.

У Б. в демо ордера можно открывать только по ценам символов GCZ9 и GCG0, (Bid = Ask).

При реальной торговле открытие происходит по GCZ9#I и GCG0#I, (Bid != Ask).

И cпред получается вполне адекватный, какой-либо мегаприбыли получить не выходит.


В общем, похоже найден всего лишь еще один способ строить красивые графики демо-баланса.


Не совсем так. ! На демо, точно также, как и на реале позиции открываются/закрываются по ценам аск /бид тикера #I (а вовсе не ЛАСТ)!

Это в тестере - работа идет по ценам ЛАСТ.

(И в тестере Б. спред тикера #I не учитывается. Со всеми вытекающими...)

Благодарю, кстати, за код среднестат. спреда.

Работает фишка. Примерно так же, как и в стейтах на 1 стр.

Хотя на реале так гладко, конечно, вряд-ли будет. Проскальзывания практически (в лучшем случае) сводят к нулю всю полученную прибыль. Надо перелопачивать инструменты, искать - самые оптимальные. Благо, этого добра (инструментов) там хватает. Тогда может и удасться выжать хоть что-ниб.

В тестере советник не получится прогнать по понятным причинам. Поэтому придется отслеживать ситуацию в онлайне. Дело не быстрое...

 

Предполагаю далее, реализовать расчет отклонения спреда и расчет входов  не по ценам ЛАСТ, а по MarketInfo(тикер #I,MODE_ASK);

Кроме того, выставить для  входов ограничение по размеру текущего спреда по каждому инструменту:

spr = MarketInfo(тикер #I,MODE_ASK) -MarketInfo(тикер #I,MODE_BID) ;

А также жестко задавать временные интервалы работы. Чтобы не попасть в неликвидные часы с огромным спредом при открытии позиции

Думаю, что таким образом удасться поднять прибыль (или уменьшить убыток) по каждой сделки на 2-4 тика.

 
Из-за цен ЛАСТ бывает так, что по тикерам суммарно хедж уже давно по факту в хорошей прибыли (вот сейчас смотрю - вывел в коммент), а на графике и в терминале из-за инертности цен ЛАСТ - - отображается мизерная прибыль или, хуже того, - все еще убыток!
  Наблюдаю сейчас   на GBPUSD  плюс 6BH0, так что надо срочно переходить на цены MarketInfo(тикер #I,....
 

Слежу за темой почти с самого начала.

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

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

Если можете выскажитесь.

extern string Sum_1="GCG0";
extern string Sum_2="GCZ9";
double ARR[100,3];
double ARR_M[100];
int N=0;
int init()
{
ArrayInitialize(ARR,0);
ArrayInitialize(ARR_M,0);
}
int start()
  {
//----
double G0=MarketInfo(Sum_1,MODE_BID);
double Z9=MarketInfo(Sum_2,MODE_BID);
ARR[N,0]=G0;
ARR[N,1]=Z9;
ARR_M[N]=G0-Z9;
N++;
if (N>=100) N=0;
double SUM_0=0;
double SUM_1=0;
for (int r=0;r<100;r++)
{ 
SUM_0=SUM_0+(ARR[r,0]-ARR[r,1]);

}
double Aver=SUM_0/100;
double MAX=0;
double MIN=0;
for (int rr=0;rr<100;rr++)
{
if (ARR_M[rr]>MAX) MAX=ARR_M[rr];
if (ARR_M[rr]<MIN) MIN=ARR_M[rr];
}
Comment ("Aver  ",DoubleToStr(Aver,2),"   ",N,"   MAX  ",DoubleToStr(MAX,2)," MIN  ",DoubleToStr(MIN,2),"\n",
G0,"  ",Z9,"  ",G0-Z9);
//----
   return(0);
  }
Причина обращения: