![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Мэдвэдъ |
![]() ![]()
Сообщение
#1
|
![]() Администратор Группа: Главные администраторы Сообщений: 603 Регистрация: 11.4.2006 Пользователь №: 1 Спасибо сказали: 24 раз(а) ![]() |
Автор утверждает, что система позволяет делать 600 пипсов в неделю на одной валютной паре. Хотя сам признается, что ему необходима помощь в тестировании. Тайм-фрейм - Часовые графики. Валюты - все. Используемые индикаторы TrendCCI 35 + Flat trend H1 + macd 8.12.1, MA CrossOver Signal 5-7
В архиве находится две версии этой торговой системы.Все подробные инструкции в архиве. Скачать можно здесь: http://www.tradersforum.net.ru/modules/fil...wfile.php?lid=5 |
![]() ![]() |
leonid553 |
![]()
Сообщение
#2
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Несколько раз пытался вставить Тренд/детектор в ваш эксперт. Но из за слишком скромных знаний в программировании - ничего не получается. Сделал его в виде функции. Во внешние параметры вставил :
Код extern int PeriodPower = 13; extern int Period_Bulls = 11; extern int Period_Bears = 10; В конце кода вставил саму функцию: Код double TrendDetector() { double Bears_array[50]; int cx=0; while (cx<51) {Bears_array[cx]= iBearsPower(NULL, 0, PeriodPower,PRICE_CLOSE,cx); cx++; } ArraySetAsSeries(Bears_array,true); double MA_Bears =iMAOnArray(Bears_array,0,Period_Bears,1,MODE_SMMA,0); double Bulls_array[50]; int lx=0; while (lx<51) {Bulls_array[lx]= iBullsPower(NULL, 0, PeriodPower,PRICE_CLOSE,lx); lx++; } ArraySetAsSeries(Bulls_array,true); double MA_Bulls =iMAOnArray(Bulls_array,0,Period_Bulls,1,MODE_SMMA,0); return (MA_Bears+MA_Bulls); } Далее предположил , что условие TrendDetector()<0 или TrendDetector()>0 нужно вставить там, где изначально происходит открытие позиций. Скорее всего вот в этот блок (он в середине кода): Код ------------------------------------------------------------------------------------------------ void openorder(int f){ double sl,tp;int res; if(Reverse){ if(f==1)f=2; else if(f==2)f=1; } if(f==2){ while(res<=0){ if(stoploss==0){sl=0;}else{sl=Bid+stoploss*Point;} if(takeprofit==0){tp=0;}else{tp=Bid-takeprofit*Point;} if((!AlertOnlyMode)&& (TrendDetector()<0 )){ res=OrderSend(Symbol(),OP_SELL,lots,Bid,2,sl,tp,xname,ID,0,Red); } if(res<=0){ int error=GetLastError(); Print("Error = ",ErrorDescription(error)); if(error==134)break; Sleep(1000); RefreshRates(); } } if(Alerts || AlertOnlyMode){ Alert("Short Signal on ",Symbol()); } bar=iBars(NULL,P(period)); } else if(f==1){ while(res<=0){ if(stoploss==0){sl=0;}else{sl=Ask-stoploss*Point;} if(takeprofit==0){tp=0;}else{tp=Ask+takeprofit*Point;} if(!AlertOnlyMode){ res=OrderSend(Symbol(),OP_BUY,lots,Ask,2,sl,tp,xname,ID,0,Blue); } if(res<=0){ error=GetLastError(); Print("Error = ",ErrorDescription(error)); if(error==134)break; Sleep(1000); RefreshRates(); } } if(Alerts || AlertOnlyMode){ Alert("Long Signal on ",Symbol()); } bar=iBars(NULL,P(period)); } } /////////////////////////////////////////////////////////////////////////////////////////// Но .... Пробовал вставлять по разному. И в журнале появляется ошибка: 2008.02.10 23:45:16 sputnic_exp_TD GBPUSD,M30: Error = array index is out of range Даже и не знаю, что ещё делать.... |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 15.3.2025, 21:14 |