| / | Форум |
|
Fduch
13.12.2009 15:14
В двух словах: 1) Рассчитывается среднестатистический спред 2) Рассчитывается текущий спред по ценам LAST 3) Если текущий спред выше\ниже среднестатистического - происходит открытие позиции. (Ниже\выше определяется в зависимости от ситуации на рынке - контанго или беквордация) |
|
rid
13.12.2009 21:43
Как у вас расчитывается среднестатистический спред (если не секрет)?
|
|
C-4
13.12.2009 23:46
MetaDriver писал(а) >>
Не очень понял в чём уголовщина. Она что, по сговору с брокером двигала цены? Или просто своими бабками? Если своими кровными - уголовщины в упор не вижу. Остроумие - да, уголовщина - нет. И Ваш "большой счёт" - всего лишь невротическое морализаторство. Когда этим же занимаются банки никому и в голову не приходит называть это уголовщиной. :) Почитать можно здесь (с 310 поста): http://www.procapital.ru/showthread.php?t=20648&page=21 и здесь http://www.procapital.ru/showthread.php?t=21115 |
|
Fduch
14.12.2009 00:18
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); } |
|
admin
14.12.2009 01:04
C-4 писал(а) >>
Почитать можно здесь (с 310 поста): http://www.procapital.ru/showthread.php?t=20648&page=21 и здесь http://www.procapital.ru/showthread.php?t=21115 Такова позиция конторы, и это понятно почему. Но если посмотреть на факты - кухня выставила bid и offer, это ничто иное, как предложение совершить сделку. Клиент соглашается на это предложение. После этого начинать орать, что дескать, кухню обманули, да при этом еще и выдвигать аргументы типа "Но никто и никогда в жизни, даже самый гениальный трейдер не торгует ночью на мясе" или "мы не знали, что ликвидность рынка не бесконечна" - это детский сад. Позиция кухни выглядит весьма слабо, сомневаюсь что они захотят доводить дело до суда. |
|
Fduch
14.12.2009 02:25
Мда.. Конечно все не гладко. У Б. в демо ордера можно открывать только по ценам символов GCZ9 и GCG0, (Bid = Ask). При реальной торговле открытие происходит по GCZ9#I и GCG0#I, (Bid != Ask). И cпред получается вполне адекватный, какой-либо мегаприбыли получить не выходит. В общем, похоже найден всего лишь еще один способ строить красивые графики демо-баланса. |
|
rid
14.12.2009 11:55
Fduch писал(а) >>
Мда.. Конечно все не гладко. У Б. в демо ордера можно открывать только по ценам символов GCZ9 и GCG0, (Bid = Ask). При реальной торговле открытие происходит по GCZ9#I и GCG0#I, (Bid != Ask). И cпред получается вполне адекватный, какой-либо мегаприбыли получить не выходит. В общем, похоже найден всего лишь еще один способ строить красивые графики демо-баланса. Не совсем так. ! На демо, точно также, как и на реале позиции открываются/закрываются по ценам аск /бид тикера #I (а вовсе не ЛАСТ)! Это в тестере - работа идет по ценам ЛАСТ. (И в тестере Б. спред тикера #I не учитывается. Со всеми вытекающими...) Благодарю, кстати, за код среднестат. спреда. Работает фишка. Примерно так же, как и в стейтах на 1 стр. Хотя на реале так гладко, конечно, вряд-ли будет. Проскальзывания практически (в лучшем случае) сводят к нулю всю полученную прибыль. Надо перелопачивать инструменты, искать - самые оптимальные. Благо, этого добра (инструментов) там хватает. Тогда может и удасться выжать хоть что-ниб. В тестере советник не получится прогнать по понятным причинам. Поэтому придется отслеживать ситуацию в онлайне. Дело не быстрое... |
|
rid
14.12.2009 12:27
Предполагаю далее, реализовать расчет отклонения спреда и расчет входов не по ценам ЛАСТ, а по MarketInfo(тикер #I,MODE_ASK); Кроме того, выставить для входов ограничение по размеру текущего спреда по каждому инструменту: spr = MarketInfo(тикер #I,MODE_ASK) -MarketInfo(тикер #I,MODE_BID) ; А также жестко задавать временные интервалы работы. Чтобы не попасть в неликвидные часы с огромным спредом при открытии позиции. Думаю, что таким образом удасться поднять прибыль (или уменьшить убыток) по каждой сделки на 2-4 тика. |
|
rid
14.12.2009 15:09
Из-за цен ЛАСТ бывает так, что по тикерам суммарно хедж уже давно по факту в хорошей прибыли (вот сейчас смотрю - вывел в коммент), а на графике и в терминале из-за инертности цен ЛАСТ - - отображается мизерная прибыль или, хуже того, - все еще убыток!
Наблюдаю сейчас на GBPUSD плюс 6BH0, так что надо срочно переходить на цены MarketInfo(тикер #I,.... |
|
zhuki
14.12.2009 19:56
Слежу за темой почти с самого начала. Но, не совсем согласен с обнаружением как среднего значения так и не совсем ясен вопрос открытия т.е. когда. я спред (разница) описал несколько иначе.Может грубовато, но очень интересно показывает как советник. Если можете выскажитесь. 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); } |