CyberiaTrader... удивительный советник! - страница 16

 

Заявление обновлено.

Почти удвоение капитала на одной неделе.

v1.60

С этого момента я изменю размер лота на 2.

Файлы:
statement_2.htm  1653 kb
 

Скрин ATR_normalized

Игорь, я забыл прикрепить скрин ATR_normalized к ответу выше. Вот он.

Файлы:
atr_norm.gif  50 kb
 
igorad:
Привет,

Я попытался создать Normalized ATR, но думаю, что это не такая простая задача.

Так что вы можете попробовать поиграть с входами.

Игорь

PS. Извините, но ошибка была в коде. Исправлено.

Игорь, большое спасибо за нормализованный ATR. Он выглядит хорошо, за исключением того, что он никогда не опускается ниже 30 (шкала 0-100). Если вы посмотрите на прикрепленный скрин, то увидите, что iATR доходит до 0, в то время как ATR_normalized остается около 35. Во всех случаях, когда iATR достигает нуля даже на некоторое время, ATR_normalized остается выше 30. Можете ли вы исправить это, пожалуйста? Также не проще ли было бы создать, используя родные iATR и iMA? Возможно, это было бы проще, и я мог бы просто использовать код в CT как фильтр.

 

Привет,

попробуйте этот. Должно быть нормально.

Файлы:
 
igorad:
Здравствуйте, попробуйте этот вариант. Должно быть нормально.

Хорошо, я попробую этот вариант. Кроме того, я смог сделать это очень просто:

double normATR=0;

double maxATR=iATR(Symbol(),Period(),14,0);

int i;

for(i=1;i<14;i++)

{

if(iATR(Symbol(),Period(),14,i)>maxATR)

{

maxATR=iATR(Symbol(),Period(),14,i);

}

}

normATR=(iATR(Symbol(),Period(),14,0)/maxATR)*100;

Кажется, это тоже работает хорошо. Спасибо за помощь!!!

 
igorad:
Я сейчас тестирую последнюю версию и нашел несколько ошибок. Поэтому, пожалуйста, ждите обновлений.

Игорь, не могли бы вы выложить свою версию с исправлениями для PIP-таймера? В текущем виде он работает некорректно. Он запускает PIPcounter при входе и выходит по истечении времени независимо от достигнутой прибыли. Пожалуйста, протестируйте на тиках, а не на секундах, так как секундный счетчик асинхронен с приходом тиков. Спасибо за ваш вклад.

Вот еще раз спецификации, а также код, который у меня есть на данный момент, как вы изначально написали его с небольшими изменениями:

1. Если EnablePIPTimer=true;

2. Когда MinPIPProfit >=X, активируйте TakePIPCountdown (SET на вход TakePipTimer). Это начнет отсчет до 0 в тиках.

3. TakePIPCountDown ведет обратный отсчет: 60, 59, 58... тиков и т.д.

4. Объявляем глобальную переменную double BestPIPProfit=0; она содержит лучшую прибыль PIP, которую позиция достигла на данный момент.

5. Сделайте BestPIPProfit=MinPIPProfit изначально;

6. Получить BestPIPProfit=текущая прибыль PIP

7. Если BestPIPProfit > MinPIPProfit, сделайте MinPIPProfit = BestPIPProfit (это будет минимальная прибыль PIP, обновленная с этого момента для данной открытой позиции).

8. Когда произойдет условие #7, перезапустите TakePIPCountDown на начальное значение (TakePipTimer) и включите его для подсчета... он снова отсчитывает 60, 59, 58 тиков и т.д. до 0 с новым минимальным MinPIPProfit.

9. Как только TakePIPCountDown достигнет 0, немедленно закройте открытый ордер.

10. Если текущая прибыль PIP опускается ниже MinPIPProfit, остановите TakePIPCountDown (и вернитесь к исходному значению TakePipTimer), пока текущая прибыль снова не станет >= MinPIPProfit (наивысшее достигнутое значение) во время этого прогона.

КОД:

int CheckTakeProfitTimer()

{

double _point = MarketInfo(OrderSymbol(),MODE_POINT);

double PipProfit = 0;

if (EnablePipTimer==true)

{

for (int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

int mode=OrderType();

if ( OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

if (mode==OP_BUY)

PipProfit = MathRound((Bid - OrderOpenPrice())/_пункт); // Рассчитываем прибыль/убыток по открытию для BUY

иначе

if (mode==OP_SELL)

PipProfit = MathRound((OrderOpenPrice()-Ask)/_point); // Рассчитываем открытую прибыль/убыток для SELL

MaxPipProfit = MathMax(PipProfit,MaxPipProfit); // Получение наибольшей прибыли, либо текущей, либо максимальной за время торговли

if (MaxPipProfit >= BestPipProfit) // проверяем, достигнута ли минимальная прибыль PIP

{

if (!StartCount1 || ( StartCount1 && BestPipProfit > MinPipProfit)) // счет не ведется и достигнута минимальная прибыль PIP

{

BestPipProfit=MaxPipProfit; // сбрасывается на текущую максимальную прибыль, достигнутую на данный момент

TimerStart1 = CurTime()/1000; // замораживание текущего времени

TakePipCountDown = TakePipTimer; // инициализация счетчика до установленного значения

StartCount1 = true; // запускаем счетчик

}

else

if (TimerType == 0) // счет идет... считаем либо секунды, либо тики

{

TakePipCountDown = TakePipTimer - (CurTime()/1000 - TimerStart1); // выбран вариант подсчета секунд

}

else

{

TakePipCountDown--; // Выбран вариант подсчета тиков

}

} // if (MaxPipProfit...

} // if (Order...

} // for

} // в EnablePipTimer

 

Исправлено отсутствие торговли в CT 1.85

Извините, банда... в версии 1.85 была ошибка, которая не позволяла CT 1.85 торговать после неудачных торговых часов. Я исправил ее, пока не выйдет новая версия, и назвал ее 1.85f (fixed). Пожалуйста, используйте эту версию с предустановками 1.85, размещенными изначально. Эта версия идентична 1.85 и содержит только исправление отсутствия торговли. Мы должны были заметить это раньше.

Файлы:
 
fxspeedster:
Извините, банда... в версии 1.85 была ошибка, которая не позволяла CT 1.85 торговать после неудачных торговых часов. Я исправил ее, пока не выйдет новая версия, и назвал ее 1.85f (исправленная). Пожалуйста, используйте эту версию с предустановками 1.85, размещенными изначально. Эта версия идентична 1.85 и содержит только исправление отсутствия торговли. Мы должны были заметить это раньше.

Я не мог понять, почему все остальные получают такие потрясающие результаты, а я почти не получаю ордеров!

 

Здравствуйте,

Я разработал отдельный PipTimerExpert. Этот эксперт может управлять торговлей по методике, описанной fxspeedster. Эта версия включает в себя счетчик секунд и тиков. Вы можете использовать его для CyberiaTrader.

Файлы:
 
igorad:
Здравствуйте, я разработал отдельный PipTimerExpert. Этот эксперт может управлять торговлей по методике, описанной fxspeedster. В этой версии есть счетчик секунд и тиков. Вы можете использовать его для CyberiaTrader.

Игорь, спасибо за вашу большую работу. Я включаю этот код и тестирую его. Вы лучший!