МТС, стабильно приносящая прибыль - страница 5

 
У меня есть ASCTrend для MT4. Не автоматический. Кому надо, пишите pusran@mail.ru, пришлю. Еще есть Мюррей
 
2 Vladislav
По поводу МТС (в данном случае это механическая торговая система - система с жесткими правилами входа\выхода\сопровождения) - один из наиболее устойчивых вариантов АСКИТренд

Если нет описания стратегии, пришлю - сейчас просто нет под рукой.


Вы меня заинтриговали. Никогда не слыхал про АСКИТренд. Особенно меня заинтересовало вот это
Некоторые индикаторы, которыми пытались на пауке заменить третий фильтр (два сделаны с хорошим соответствием) - адекватной заменой не являются

Проблема фильтрации сигналов - это как раз то, чем я сейчас занимаюсь. Мой генератор сигналов работает в общем удовлетворительно. Однако, при хороших трендах существенную часть разворотных сигналов надо фильтровать и я пока не нашел адекватного фильтра. Интересно посмотреть, как это решено в стратегии, которая уже получила признание.

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

Если у Вас не сохранился мой адрес, то я вышлю его на Ваш mail.ru
 
2 Vladislav
По поводу МТС (в данном случае это механическая торговая система - система с жесткими правилами входа\выхода\сопровождения) - один из наиболее устойчивых вариантов АСКИТренд

Если нет описания стратегии, пришлю - сейчас просто нет под рукой.


Вы меня заинтриговали. Никогда не слыхал про АСКИТренд. Особенно меня заинтересовало вот это
Некоторые индикаторы, которыми пытались на пауке заменить третий фильтр (два сделаны с хорошим соответствием) - адекватной заменой не являются

Проблема фильтрации сигналов - это как раз то, чем я сейчас занимаюсь. Мой генератор сигналов работает в общем удовлетворительно. Однако, при хороших трендах существенную часть разворотных сигналов надо фильтровать и я пока не нашел адекватного фильтра. Интересно посмотреть, как это решено в стратегии, которая уже получила признание.

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

Если у Вас не сохранился мой адрес, то я вышлю его на Ваш mail.ru

Нет проблем. Описание самой системы есть и на пауке и на инвесто. Собственно не описание, а рекомендации по построению стратегий. Пороюсь в арихивах найду - там было.
По поводу алгоритмов - есть и на Виаке - посмотрите обсуждения по теме СильверТренда. По анализу воссозданных кодов можно оценитиь решение проблемы фильтрации одного из уровней - в зависимости от текущей волатильности рынка (считается АТР по нескольким коротким периодам и сравнивается их значение - логика достаточно импирическая и запутана) так вот в зависимости от текущей волатильности подбираются параметры мувингов для фильтрации шума. Это фильтр АСКИТренд2. Есть еще Аскитренд3 - тот более чувствительный. Ща гляну в Омегу - если у меня это осталось, то попробую перегнать коды в текстовый формат.

2 Поручик Если есть код фильтра АСКИТренд2 и АСКИТренд3 под МТ4 и не жалко, сбросьте на 4vg AT mail.ru. Если Вместо этого NRTR и WPR Fast и WPR Slow - можно не утруждаться - это не совсем адекватная замена, да и есть везде.

Удачи

ЗЫ Оппа...... у меня установлена оригинальная версия - коды зашифрованы - требует пароль :(. Как-то эта проблема решалась в Омеге.... жаль сходу не получается.
.................

Вот коды двух не переведеных фильтров. Исходники с паука.
Фильтр первого уровня есть и это СильверТренд и СильверТрендСигнал - два совместно. Единственное, что отсутствует это Сигналы, которые называются СТС - это пробой уровня фильтра ASCTrend3. Если будет его рабочий код, то и соотвектственно будут сигналы. ASCTrend2 под МТ3 где-то есть
Там видны вызовы внешних функций - защита :) и часть логики :(.
{
short name : ASCTrend2 D3.51
long name   : ASC304R
description : (c) Copyright 1995-2001 AbleSys Corp. All rights reserved
}

DefineDLLFunc: "ABS1LOCK32.dll", FLOAT, "LTCalcRef" , LPFLOAT ,LPFLOAT ,LPFLOAT ,LPFLOAT ,LPSTR ;
DefineDLLFunc: "ABS1LOCK32.dll", FLOAT, "LTCalcVal" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,LPSTR ;
DefineDLLFunc: "ABS1LOCK32.dll", BOOL, "LTInitializeFromINI" ;
DefineDLLFunc: "C:\ASCTREND\ABLEDC32.DLL", LONG, "recover23" , INT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "JESSD" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "BS105" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "SS105" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "BS0" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "SS0" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ;
Inputs:  RISK(3),  MONYRISK(2),  PASS(777);
Variables:  B8$168SYCSL(FALSE),  AQ08BVT521DS(FALSE),  Y2KYEAR(21),  TDte(971010);
Variables:  Dte1(971011),  Dte2(971012),  ATBQPS1(25901736),  ATBQPS2(49014288),  ATBQPS3(50152888);
Variables:  ATBQPS4(25108528),  BLKX(12245678),  ConvCurrent(0),  ConvDate(0),  ConvTDte(0);
Variables:  ConvDte1(0),  ConvDte2(0),  Passcode(694002560),  value2(1),  value3(18);
Variables:  value19(0),  value6(1000000),  value8(1000000),  value10(1000000),  value11(0);
Variables:  value12(0),  value13(0),  value4(0),  value5(0),  value14(0),  value7(0),  value9(0);

{ Code here }
IF CURRENTBAR = 1 THEN 
BEGIN IF LTInitializeFromINI AND ( LTCalcVal ( 1 , 901 , 176200 , 77788 , "ZhUbUeUiMMd" ) = 254890 ) THEN CONDITION0 = TRUE ELSE CONDITION0 = FALSE ; 
   IF CONDITION0 THEN PRINT ( DATE : 8 : 0 , CURRENTTIME : 6 : 0 , ", ABS1LOCK initialized successfully." ) ELSE PRINT ( DATE : 8 : 0 , CURRENTTIME : 6 : 0 , ", ABS1LOCK failed to initialize. Contact AbleSys Corporation." ) ; 
   BLKX = recover23 ( 1 , 18950516 ) ; 
   TDte = recover23 ( 2 , 18950516 ) ; 
   Dte1 = recover23 ( 3 , 18950516 ) ; 
   Dte2 = recover23 ( 4 , 18950516 ) ; 
   ATBQPS1 = recover23 ( 5 , 18950516 ) ; 
   ATBQPS2 = recover23 ( 6 , 18950516 ) ; 
   ATBQPS3 = recover23 ( 7 , 18950516 ) ; 
   ATBQPS4 = recover23 ( 8 , 18950516 ) ; 
   IF YEAR ( CURRENTDATE ) < Y2KYEAR THEN ConvCurrent = CURRENTDATE + 1000000 ELSE ConvCurrent = CURRENTDATE ; 
   IF YEAR ( LastCalcDate ) < Y2KYEAR THEN ConvDate = LastCalcDate + 1000000 ELSE ConvDate = DATE ; 
   IF YEAR ( TDte ) < Y2KYEAR THEN ConvTDte = TDte + 1000000 ELSE ConvTDte = TDte ; 
   IF YEAR ( Dte1 ) < Y2KYEAR THEN ConvDte1 = Dte1 + 1000000 ELSE ConvDte1 = Dte1 ; 
   IF YEAR ( Dte2 ) < Y2KYEAR THEN ConvDte2 = Dte2 + 1000000 ELSE ConvDte2 = Dte2 ; 
   IF ConvCurrent > ConvTDte AND ConvCurrent <= ConvDte1 AND ConvDate <= ConvDte1 AND ( ( PASS = 777 ) OR ( PASS = ATBQPS1 ) ) THEN CONDITION1 = TRUE ELSE 
BEGIN CONDITION1 = FALSE ; 
      END ; 
   IF ( ConvCurrent > ConvDte1 OR ConvDate > ConvDte1 ) THEN CONDITION1 = FALSE ; 
   IF ConvCurrent > ConvDte1 AND ConvDate <= ConvDte2 AND ConvCurrent <= ConvDte2 THEN 
BEGIN IF ( ( PASS = ATBQPS1 ) OR ( PASS = ATBQPS3 ) ) THEN CONDITION1 = TRUE ELSE CONDITION1 = FALSE ; 
      END ; 
   IF ( ConvCurrent > ConvDte2 OR ConvDate > ConvDte2 ) THEN CONDITION1 = FALSE ; 
   IF ConvCurrent > ConvDte2 THEN 
BEGIN IF ( PASS = ATBQPS3 ) THEN CONDITION1 = TRUE ELSE CONDITION1 = FALSE ; 
      END ; 
   IF YEAR ( CURRENTDATE ) < Y2KYEAR AND YEAR ( LastCalcDate ) < Y2KYEAR AND ( DATETOJULIAN ( CURRENTDATE ) < ( DATETOJULIAN ( LastCalcDate ) - 31 ) ) THEN CONDITION1 = FALSE ; 
   IF YEAR ( CURRENTDATE ) < Y2KYEAR AND YEAR ( LastCalcDate ) >= Y2KYEAR AND ( DATETOJULIAN ( 991231 ) + DATETOJULIAN ( CURRENTDATE ) ) < ( DATETOJULIAN ( LastCalcDate ) - 31 ) THEN CONDITION1 = FALSE ; 
   IF YEAR ( CURRENTDATE ) >= Y2KYEAR AND YEAR ( LastCalcDate ) >= Y2KYEAR AND ( DATETOJULIAN ( CURRENTDATE ) < ( DATETOJULIAN ( LastCalcDate ) - 31 ) ) THEN CONDITION1 = FALSE ; 
   END ; 
IF CONDITION0 AND CONDITION1 THEN 
BEGIN IF CURRENTBAR = 1 THEN 
BEGIN value2 = RISK ; 
      value3 = 18 + 3 * value2 ; 
      END ; 
   value19 = LTCalcVal ( MONYRISK , Average ( Range , 10 ) , BIGPOINTVALUE , 2090 , "ZhRbR" ) ; 
   value11 = Average ( CLOSE , 9 ) ; 
   value12 = Average ( CLOSE , value3 ) ; 
   IF Range = 0 THEN value13 = Average ( ABSVALUE ( CLOSE - CLOSE [ 3 ] ) , 10 ) ELSE value13 = Average ( Range , 10 ) ; 
   value4 = Active_ASCGV ( HIGH , LOW , HIGH [ value2 ] , LOW [ value2 ] , CLOSE [ value2 ] , Passcode ) ; 
   IF MRO ( value4 > value4 [ 1 ] AND value4 [ 1 ] < value4 [ 2 ] , 2 , 1 ) > - 1 AND LOW [ 1 ] > value4 [ 1 ] THEN value5 = value4 [ 1 ] - value13 ; 
   IF MRO ( value4 < value4 [ 1 ] AND value4 [ 1 ] > value4 [ 2 ] , 2 , 1 ) > - 1 AND HIGH [ 1 ] < value4 [ 1 ] THEN value6 = value4 [ 1 ] + value13 ; 
   IF value11 [ 1 ] < value12 [ 1 ] AND value11 > value12 THEN value5 = TrueLow - value13 ; 
   IF value11 [ 1 ] > value12 [ 1 ] AND value11 < value12 THEN value6 = TrueHigh + value13 ; 
   IF ABSVALUE ( OPEN - CLOSE [ 1 ] ) >= 1.6180000305 * value13 THEN 
BEGIN IF LTCalcVal ( 1.6180000305 , 2.6180000305 , value11 , value12 , "ZKebE" ) = 1 THEN value5 = LOW - value13 ; 
      IF LTCalcVal ( 1.6180000305 , 2.6180000305 , value11 , value12 , "ZKbeEiaq" ) = 1 THEN value14 = HIGH + value13 ; 
      END ; 
   value7 = Save_ASC_Data ( LOW , 2.4000000954 , value13 , value9 , Passcode ) ; 
   value8 = ASCRATED ( HIGH , 2.4000000954 , value13 , value10 , Passcode ) ; 
   value9 = JESSD ( LOW , 60 , value7 , RISK , value19 , BIGPOINTVALUE , Passcode ) ; 
   value10 = BS105 ( HIGH , 60 , value8 , RISK , value19 , BIGPOINTVALUE , Passcode ) ; 
   IF LOW - value9 > value19 / BIGPOINTVALUE THEN value9 = LOW - ( 1.5000000000 + 0.1000000015 * RISK ) * value13 ; 
   IF value10 - HIGH > value19 / BIGPOINTVALUE THEN value10 = HIGH + ( 1.5000000000 + 0.1000000015 * RISK ) * value13 ; 
   IF value11 >= value12 AND value5 >= value9 THEN value9 = value5 ; 
   IF value11 <= value12 AND value6 <= value10 THEN value10 = value6 ; 
   IF value11 <= value12 AND value5 <= value9 THEN value9 = value5 ; 
   IF value11 >= value12 AND value6 >= value10 THEN value10 = value6 ; 
   IF MRO ( value11 >= value12 , 2 , 2 ) > - 1 AND value9 <= value9 [ 1 ] THEN value9 = value9 [ 1 ] ; 
   IF MRO ( value11 <= value12 , 2 , 2 ) > - 1 AND value10 >= value10 [ 1 ] THEN value10 = value10 [ 1 ] ; 
   IF value9 > 0 AND value11 >= value12 AND value9 <= HIGH THEN PLOT1 ( value9 , "BuyStop2" ) ; 
   IF value10 > 0 AND value10 < 1000000000 AND value11 <= value12 AND value10 >= LOW THEN PLOT2 ( value10 , "SellStop2" ) ; 
   END ; 



он же под МТ3 - вроде, рабочий, хоть версии и разные, но соответствуют (проверить не могу - у меня уже нет МТ3). Было время я ним пользовался.

/*[[
Name := ASCTrend2
Author := C0Rpus - big thanks CHANGE2002, STEPAN and SERSH
Notes := ASCTrend2 3.0 Open Source
Separate Window := No
First Color := Aqua
First Draw Type := Symbol
First Symbol := 160
Use Second Data := Yes
Second Color := Fuchsia
Second Draw Type := Symbol
Second Symbol := 160
]]*/

Inputs: RISK(3),MONYRISK(2.0),AllBars(500);
Variables: value2(1),value3(18),value4(0),value5(0),value6(0),value7(0),value8(0),value9(0);
Variables: value10(10),value11(10000),value12(0),value13(0),value14(0),value19(0);
Variables: value4_1(0),value4_2(0),value9_1(0),value10_1(0),value11_1(0),value12_1(0);
Variables: TrueCount(0),Counter(0),DCounter(0),Range(0),AvgRange(0),AvgRange_1(0),AvgRange_2(0);
Variables: MRO1(0),MRO2(0),MRO3(0),MRO4(0);
Variables: val1(0),val2(0),shift(0),NumBars(0);
// 576

SetLoopCount(0);

If Bars<AllBars Then NumBars=Bars-11 Else NumBars=AllBars;

For shift=NumBars DownTo 0 Begin
// -----
Counter=shift;
Range=0;
AvgRange=0;
For Counter=shift To shift+9
{AvgRange=AvgRange+Abs(High[Counter]-Low[Counter]);};
Range=AvgRange/10;
// -----
If shift=AllBars Then
{value2=1; value3=18; value10=10000; value10_1=0;
value19=MONYRISK*Range*Point;
value2=RISK;
value3=18+3*value2;
value9=0;
};
// -----
//value11=UserFunction("AverageClose",9,shift);
Counter=shift;
AvgRange=0;
For Counter=shift To shift+9-1
{AvgRange=AvgRange+Close[Counter];};
value11=AvgRange/9;
// -----
//value12=UserFunction("AverageClose",value3,shift);
Counter=shift;
AvgRange=0;
For Counter=shift To shift+value3-1
{AvgRange=AvgRange+Close[Counter];};
value12=AvgRange/value3;
// -----
value13=Range;
// -----
//value4=UserFunction("JESSD",High[shift],Low[shift],High[shift+value2],Low[shift+value2],Close[shift+value2]);
AvgRange=(High[shift]+Low[shift])/2.0;
If Close[shift+value2]<AvgRange Then
{value4=2*AvgRange-Low[shift+value2];}
Else
{value4=2*AvgRange-High[shift+value2];};
// -----
Counter=shift;
TrueCount=0;
While Counter<shift+2 And TrueCount<1
{//value4=UserFunction("JESSD",High[Counter],Low[Counter],High[Counter+value2],Low[Counter+value2],Close[Counter+value2]);
AvgRange=(High[Counter]+Low[Counter])/2.0;
If Close[Counter+value2]<AvgRange Then
{value4=2*AvgRange-Low[Counter+value2];}
Else
{value4=2*AvgRange-High[Counter+value2];};
value4=Normalize(value4,2);
//value4_1=UserFunction("JESSD",High[Counter+1],Low[Counter+1],High[Counter+value2],Low[Counter+value2],Close[Counter+value2]);
AvgRange_1=(High[Counter+1]+Low[Counter+1])/2.0;
If Close[Counter+1+value2]<AvgRange_1 Then
{value4_1=2*AvgRange_1-Low[Counter+1+value2];}
Else
{value4_1=2*AvgRange_1-High[Counter+1+value2];};
value4_1=Normalize(value4_1,2);
//value4_2=UserFunction("JESSD",High[Counter+2],Low[Counter+2],High[Counter+value2],Low[Counter+value2],Close[Counter+value2]);
AvgRange_2=(High[Counter+2]+Low[Counter+2])/2.0;
If Close[Counter+2+value2]<AvgRange_2 Then
{value4_2=2*AvgRange_2-Low[Counter+2+value2];}
Else
{value4_2=2*AvgRange_2-High[Counter+2+value2];};
value4_2=Normalize(value4_2,2);
If (value4>value4_1 And value4_1<value4_2) Then TrueCount=TrueCount+1;
Counter=Counter+1;
};
If TrueCount>=1 Then MRO1=Counter-shift-1 Else MRO1=-1;
// -----
Counter=shift;
TrueCount=0;
While Counter<shift+2 And TrueCount<1
{//value4=UserFunction("JESSD",High[Counter],Low[Counter],High[Counter+value2],Low[Counter+value2],Close[Counter+value2]);
AvgRange=(High[Counter]+Low[Counter])/2.0;
If Close[Counter+value2]<AvgRange Then
{value4=2*AvgRange-Low[Counter+value2];}
Else
{value4=2*AvgRange-High[Counter+value2];};
value4=Normalize(value4,2);
//value4_1=UserFunction("JESSD",High[Counter+1],Low[Counter+1],High[Counter+value2],Low[Counter+value2],Close[Counter+value2]);
AvgRange_1=(High[Counter+1]+Low[Counter+1])/2.0;
If Close[Counter+1+value2]<AvgRange_1 Then
{value4_1=2*AvgRange_1-Low[Counter+1+value2];}
Else
{value4_1=2*AvgRange_1-High[Counter+1+value2];};
value4_1=Normalize(value4_1,2);
//value4_2=UserFunction("JESSD",High[Counter+2],Low[Counter+2],High[Counter+value2],Low[Counter+value2],Close[Counter+value2]);
AvgRange_2=(High[Counter+2]+Low[Counter+2])/2.0;
If Close[Counter+2+value2]<AvgRange_2 Then
{value4_2=2*AvgRange_2-Low[Counter+2+value2];}
Else
{value4_2=2*AvgRange_2-High[Counter+2+value2];};
value4_2=Normalize(value4_2,2);
If (value4<value4_1 And value4_1>value4_2) Then TrueCount=TrueCount+1;
Counter=Counter+1;
};
If TrueCount>=1 Then MRO2=Counter-shift-1 Else MRO2=-1;
// -----
//value4_1=UserFunction("JESSD",High[shift+1],Low[shift+1],High[shift+1+value2],Low[shift+1+value2],Close[shift+1+value2]);
AvgRange_1=(High[shift+1]+Low[shift+1])/2.0;
If Close[shift+1+value2]<AvgRange_1 Then
{value4_1=2*AvgRange_1-Low[shift+1+value2];}
Else
{value4_1=2*AvgRange_1-High[shift+1+value2];};
// -----
If (MRO1>-1 And Low[shift+1]>value4_1) Then value5=value4_1-value13;
If (MRO2>-1 And High[shift+1]<value4_1) Then value6=value4_1+value13;
// -----
//value11_1=UserFunction("AverageClose",9,shift+1);
Counter=shift;
AvgRange=0;
For Counter=shift+1 To shift+1+9-1
{AvgRange=AvgRange+Close[Counter];};
value11_1=AvgRange/9;
// -----
//value12_1=UserFunction("AverageClose",value3,shift+1);
Counter=shift;
AvgRange=0;
For Counter=shift+1 To shift+1+value3-1
{AvgRange=AvgRange+Close[Counter];};
value12_1=AvgRange/value3;
// -----
If (value11_1<value12_1 And value11>value12) Then
{//value5=UserFunction("TrueLow",shift)-value13;
If Close[shift+1]<Low[shift] Then
{value5=Close[shift+1]-value13;}
Else
{value5=Low[shift]-value13;};
};
If (value11_1>value12_1 And value11<value12) Then
{//value5=UserFunction("TrueHigh",shift)+value13;
If Close[shift+1]>High[shift] Then
{value5=Close[shift+1]+value13;}
Else
{value5=High[shift]+value13;};
};
// -----
If Abs(Open[shift]-Close[shift+1])>=1.618*value13 Then
{If value11>value12 Then value5=Low[shift]-value13;
If value11<value12 Then value14=High[shift]+value13;
};
// -----
//value7=UserFunction("BS105",Low[shift],2.40,value13,value9);
If Low[shift]-2.40*value13<value9 Then
{value7=value9;}
Else
{value7=Low[shift]-2.40*value13;};
// -----
//value8=UserFunction("SS105",High[shift],2.40,value13,value10);
If High[shift]+2.40*value13>value10 Then
{value8=value10;}
Else
{value8=High[shift]+2.40*value13;};
// -----
//value9=UserFunction("BS0",Low[shift],60,value7,RISK,value19);
value9=value7;
// -----
//value10=UserFunction("SS0",High[shift],60,value8,RISK,value19);
value10=value8;
// -----
If Low[shift]-value9>value19/Point Then value9=Low[shift]-(1.50+0.1*Risk)*value13;
If value10-High[shift]>value19/Point Then value10=High[shift]+(1.50+0.1*Risk)*value13;
If value11>=value12 And value5>=value9 Then value9=value5;
If value11<=value12 And value6<=value10 Then value10=value6;
If value11<=value12 And value5<=value9 Then value9=value5;
If value11>=value12 And value6>=value10 Then value10=value6;
// -----
Counter=shift;
TrueCount=0;
While Counter<shift+2 And TrueCount<2
{//value11=UserFunction("AverageClose",9,Counter);
DCounter=Counter;
AvgRange=0;
For DCounter=Counter To Counter+9-1
{AvgRange=AvgRange+Close[DCounter];};
value11=AvgRange/9;
//value12=UserFunction("AverageClose",value3,Counter);
DCounter=Counter;
AvgRange=0;
For DCounter=Counter To Counter+value3-1
{AvgRange=AvgRange+Close[DCounter];};
value12=AvgRange/value3;
If value11>=value12 Then TrueCount=TrueCount+1;
Counter=Counter+1;
};
If TrueCount>=2 Then MRO3=Counter-shift-1 Else MRO3=-1;
// -----
Counter=shift;
TrueCount=0;
While Counter<shift+2 And TrueCount<2
{//value11=UserFunction("AverageClose",9,Counter);
DCounter=Counter;
AvgRange=0;
For DCounter=Counter To Counter+9-1
{AvgRange=AvgRange+Close[DCounter];};
value11=AvgRange/9;
//value12=UserFunction("AverageClose",value3,Counter);
DCounter=Counter;
AvgRange=0;
For DCounter=Counter To Counter+value3-1
{AvgRange=AvgRange+Close[DCounter];};
value12=AvgRange/value3;
If value11<=value12 Then TrueCount=TrueCount+1;
Counter=Counter+1;
};
If TrueCount>=2 Then MRO4=Counter-shift-1 Else MRO4=-1;
// -----
If (MRO3>-1 And value9<=value9_1) Then value9=value9_1;
If (MRO4>-1 And value10>=value10_1) Then value10=value10_1;
// -----
//value11=UserFunction("AverageClose",9,shift);
Counter=shift;
AvgRange=0;
For Counter=shift To shift+9-1
{AvgRange=AvgRange+Close[Counter];};
value11=AvgRange/9;
// -----
//value12=UserFunction("AverageClose",value3,shift);
Counter=shift;
AvgRange=0;
For Counter=shift To shift+value3-1
{AvgRange=AvgRange+Close[Counter];};
value12=AvgRange/value3;
// -----
val1=0;
val2=0;
If (value9>0 And value11>=value12 And value9<=High[shift]) Then
{val1=value9;};
If (value10>0 And value10<1000000000 And value11<=value12 And value10>=Low[shift]) Then
{val2=value10;};
// -----
value9_1=value9;
value10_1=value10;
SetIndexValue(shift,val1);
SetIndexValue2(shift,val2);
// -----
End;




Этого ни под МТ3, ни под МТ4 я не нашел :(.

{
short name : ASCTrend3 D3.51
long name   : ASC304
description : (c) Copyright 1995-2001 AbleSys Corp. All rights reserved
}

DefineDLLFunc: "ABS1LOCK32.dll", FLOAT, "LTCalcRef" , LPFLOAT ,LPFLOAT ,LPFLOAT ,LPFLOAT ,LPSTR ;
DefineDLLFunc: "ABS1LOCK32.dll", FLOAT, "LTCalcVal" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,LPSTR ;
DefineDLLFunc: "ABS1LOCK32.dll", BOOL, "LTInitializeFromINI" ;
DefineDLLFunc: "C:\ASCTREND\ABLEDC32.DLL", LONG, "recover23" , INT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCGVLTD.DLL", BOOL, "Active_ASCGV" , LPSTR ;
DefineDLLFunc: "C:\ASCTREND\ASCGVLTD.DLL", BOOL, "Save_ASC_Data" , LONG ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "JESSD" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "BS105" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "SS105" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "BS0" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "SS0" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "BS2" , FLOAT ,FLOAT ,FLOAT ,FLOAT ,FLOAT ;
DefineDLLFunc: "C:\ASCTREND\ASCLTD351.DLL", FLOAT, "ASCRateD" , FLOAT ,FLOAT ,FLOAT ,FLOAT ;
Inputs:  RISK(3),  MONYRISK(1.5000000000),  ASCMODE(11),  AlertID(3001),  BarID(4001);
Inputs:  PASS(777);
Variables:  B8$168SYCSL(FALSE),  AQ08BVT521DS(FALSE),  Y2KYEAR(21),  TDte(971010);
Variables:  Dte1(971011),  Dte2(971012),  ATBQPS1(25901736),  ATBQPS2(49014288),  ATBQPS3(50152888);
Variables:  ATBQPS4(25108528),  BLKX(12245678),  ConvCurrent(0),  ConvDate(0),  ConvTDte(0);
Variables:  ConvDte1(0),  ConvDte2(0),  Passcode(694002560),  OK(FALSE),  OK1(FALSE);
Variables:  OK2(FALSE),  value1(1),  value2(18),  value3(9),  value20(70),  value21(30);
Variables:  value12(1000000),  value8(1000000),  value14(1000000),  value18(0),  value19(0);
Variables:  value4(0),  value15(0),  value16(0),  value17(0),  condition1(FALSE),  condition2(FALSE);
Variables:  value5(0),  value41(0),  value42(0),  value7(0),  value43(0),  value44(0);
Variables:  value13(0),  value9(0),  value11(0),  value10(0);

{ Code here }
IF CURRENTBAR = 1 THEN 
BEGIN IF LTInitializeFromINI AND ( LTCalcVal ( 1 , 901 , 176200 , 77788 , "ZhUbUeUiMMd" ) = 254890 ) THEN CONDITION0 = TRUE ELSE CONDITION0 = FALSE ; 
   IF CONDITION0 THEN PRINT ( DATE : 8 : 0 , CURRENTTIME : 6 : 0 , ", ABS1LOCK initialized successfully." ) ELSE PRINT ( DATE : 8 : 0 , CURRENTTIME : 6 : 0 , ", ABS1LOCK failed to initialize. Contact AbleSys Corporation." ) ; 
   BLKX = recover23 ( 1 , 18950516 ) ; 
   TDte = recover23 ( 2 , 18950516 ) ; 
   Dte1 = recover23 ( 3 , 18950516 ) ; 
   Dte2 = recover23 ( 4 , 18950516 ) ; 
   ATBQPS1 = recover23 ( 5 , 18950516 ) ; 
   ATBQPS2 = recover23 ( 6 , 18950516 ) ; 
   ATBQPS3 = recover23 ( 7 , 18950516 ) ; 
   ATBQPS4 = recover23 ( 8 , 18950516 ) ; 
   IF YEAR ( CURRENTDATE ) < Y2KYEAR THEN ConvCurrent = CURRENTDATE + 1000000 ELSE ConvCurrent = CURRENTDATE ; 
   IF YEAR ( LastCalcDate ) < Y2KYEAR THEN ConvDate = LastCalcDate + 1000000 ELSE ConvDate = DATE ; 
   IF YEAR ( TDte ) < Y2KYEAR THEN ConvTDte = TDte + 1000000 ELSE ConvTDte = TDte ; 
   IF YEAR ( Dte1 ) < Y2KYEAR THEN ConvDte1 = Dte1 + 1000000 ELSE ConvDte1 = Dte1 ; 
   IF YEAR ( Dte2 ) < Y2KYEAR THEN ConvDte2 = Dte2 + 1000000 ELSE ConvDte2 = Dte2 ; 
   IF ConvCurrent > ConvTDte AND ConvCurrent <= ConvDte1 AND ConvDate <= ConvDte1 AND ( ( PASS = 777 ) OR ( PASS = ATBQPS1 ) ) THEN CONDITION1 = TRUE ELSE 
BEGIN CONDITION1 = FALSE ; 
      END ; 
   IF ( ConvCurrent > ConvDte1 OR ConvDate > ConvDte1 ) THEN CONDITION1 = FALSE ; 
   IF ConvCurrent > ConvDte1 AND ConvDate <= ConvDte2 AND ConvCurrent <= ConvDte2 THEN 
BEGIN IF ( ( PASS = ATBQPS1 ) OR ( PASS = ATBQPS3 ) ) THEN CONDITION1 = TRUE ELSE CONDITION1 = FALSE ; 
      END ; 
   IF ( ConvCurrent > ConvDte2 OR ConvDate > ConvDte2 ) THEN CONDITION1 = FALSE ; 
   IF ConvCurrent > ConvDte2 THEN 
BEGIN IF ( PASS = ATBQPS3 ) THEN CONDITION1 = TRUE ELSE CONDITION1 = FALSE ; 
      END ; 
   IF YEAR ( CURRENTDATE ) < Y2KYEAR AND YEAR ( LastCalcDate ) < Y2KYEAR AND ( DATETOJULIAN ( CURRENTDATE ) < ( DATETOJULIAN ( LastCalcDate ) - 31 ) ) THEN CONDITION1 = FALSE ; 
   IF YEAR ( CURRENTDATE ) < Y2KYEAR AND YEAR ( LastCalcDate ) >= Y2KYEAR AND ( DATETOJULIAN ( 991231 ) + DATETOJULIAN ( CURRENTDATE ) ) < ( DATETOJULIAN ( LastCalcDate ) - 31 ) THEN CONDITION1 = FALSE ; 
   IF YEAR ( CURRENTDATE ) >= Y2KYEAR AND YEAR ( LastCalcDate ) >= Y2KYEAR AND ( DATETOJULIAN ( CURRENTDATE ) < ( DATETOJULIAN ( LastCalcDate ) - 31 ) ) THEN CONDITION1 = FALSE ; 
   END ; 
IF CONDITION0 AND CONDITION1 THEN 
BEGIN IF CURRENTBAR = 1 THEN 
BEGIN CONDITION17 = Active_ASCGV ( "260171499526ZA" ) ; 
      CONDITION18 = Save_ASC_Data ( BarID , 1 ) ; 
      CONDITION19 = Save_ASC_Data ( AlertID , 0 ) ; 
      value20 = LTCalcVal ( 3 , 20 , 50 , RISK , "bhUZneU" ) ; 
      value21 = LTCalcVal ( 3 , 20 , 50 , RISK , "bhnZUeniABQ" ) ; 
      value1 = LTCalcVal ( 1 , 1.6180000305 , 2.6180000305 , RISK , "ZhAbKe" ) ; 
      value2 = LTCalcVal ( 1 , 3 , 18 , value1 , "ZYKehRbUiput" ) ; 
      END ; 
   IF Range = 0 THEN value18 = Average ( ABSVALUE ( CLOSE - CLOSE [ 3 ] ) , 10 ) ELSE value18 = Average ( Range , 10 ) ; 
   value19 = 1 * value18 * BIGPOINTVALUE ; 
   value4 = value3 ; 
   IF MRO ( ABSVALUE ( OPEN - CLOSE [ 1 ] ) >= value18 * 2 , 9 , 1 ) > - 1 THEN value4 = 3 ELSE value4 = value3 ; 
   IF MRO ( ABSVALUE ( CLOSE [ 3 ] - CLOSE ) >= value18 * 4.5999999046 , 6 , 1 ) > - 1 THEN value4 = 4 ELSE value4 = value3 ; 
   value15 = Average ( CLOSE , 9 ) ; 
   value16 = Average ( CLOSE , value2 ) ; 
   value17 = BS2 ( Highest ( HIGH , value4 ) , Lowest ( LOW , value4 ) , CLOSE , Passcode ) ; 
   IF LTCalcVal ( value17 , 20 , 50 , RISK , "eYKhbUZE" ) = 1 THEN 
BEGIN CONDITION34 = TRUE ; 
      CONDITION35 = FALSE ; 
      END ; 
   IF LTCalcVal ( value17 , 20 , 50 , RISK , "bhnZEio" ) = - 1 THEN 
BEGIN CONDITION34 = FALSE ; 
      CONDITION35 = TRUE ; 
      END ; 
   value5 = ASCRATED ( HIGH , LOW , HIGH [ value1 ] , LOW [ value1 ] , CLOSE [ value1 ] , Passcode ) ; 
   LTCalcVal ( value5 , value5 [ 1 ] , value5 [ 2 ] , LOW [ 1 ] , "ZaAhaBbaCeaD" ) ; 
   value41 = LTCalcVal ( value20 , value2 , HIGH [ 5 ] , 0.3819999993 , "tAtBEXZ2qYiF2tBtCEXq3qYiF3tDtBEXZ4qYiF4q" ) ; 
   LTCalcVal ( value5 [ 1 ] , value5 [ 2 ] , value5 [ 3 ] , LOW [ 1 ] , "ZaAhaBbaCeaD" ) ; 
   value42 = LTCalcVal ( value21 , value1 , LOW [ 5 ] , 0.3819999993 , "tAtBEXZ2qYiF2tBtCEXq3qYiF3tDtAEXZ4qYiF4q" ) ; 
   IF value41 = 1 OR value42 = 1 THEN value7 = value5 [ 1 ] - ( 0.3819999993 + 0.1000000015 * RISK ) * value18 ; 
   LTCalcVal ( value5 , value5 [ 1 ] , value5 [ 2 ] , HIGH [ 1 ] , "ZaAhaBbaCeaD" ) ; 
   value43 = LTCalcVal ( value20 , value2 , HIGH [ 5 ] , 0.3819999993 , "tAtBEXq2qYiF2tBtCEXZ3qYiF3tDtBEXq4qYiF4q" ) ; 
   LTCalcVal ( value5 [ 1 ] , value5 [ 2 ] , value5 [ 3 ] , HIGH [ 1 ] , "ZaAhaBbaCeaD" ) ; 
   value44 = LTCalcVal ( value21 , value1 , LOW [ 5 ] , 0.3819999993 , "tAtBEXq2qYiF2tBtCEXZ3qYiF3tDtAEXq4qYiF4q" ) ; 
   IF value43 = 1 OR value44 = 1 THEN value8 = value5 [ 1 ] + ( 0.3819999993 + 0.1000000015 * RISK ) * value18 ; 
   IF value17 [ 1 ] < value20 AND value17 >= value20 THEN value13 = TrueLow - 0.1000000015 * RISK * value18 ; 
   IF value17 [ 1 ] > value21 AND value17 <= value21 THEN value14 = TrueHigh + 0.1000000015 * RISK * value18 ; 
   IF ABSVALUE ( OPEN - CLOSE [ 1 ] ) >= value18 * 1.6180000305 THEN 
BEGIN IF value17 [ 1 ] < value20 AND value17 >= value20 THEN value13 = LOW - 0.1000000015 * RISK * value18 ; 
      IF value17 [ 1 ] > value21 AND value17 <= value21 THEN value14 = HIGH + 0.1000000015 * RISK * value18 ; 
      END ; 
   value9 = JESSD ( LOW , 1.6180000305 , value18 , value11 , Passcode ) ; 
   value10 = BS105 ( HIGH , 1.6180000305 , value18 , value12 , Passcode ) ; 
   value11 = SS105 ( LOW , value20 , value9 , RISK , value19 , BIGPOINTVALUE , Passcode ) ; 
   value12 = BS0 ( HIGH , value20 , value10 , RISK , value19 , BIGPOINTVALUE , Passcode ) ; 
   IF LOW - value11 > MONYRISK * value18 THEN value11 = LOW - ( 1 + 0.1000000015 * RISK ) * value18 ; 
   IF value12 - HIGH > MONYRISK * value18 THEN value12 = HIGH + ( 1 + 0.1000000015 * RISK ) * value18 ; 
   IF value15 >= value16 AND value7 >= value11 THEN value11 = value7 ; 
   IF value15 <= value16 AND value8 <= value12 THEN value12 = value8 ; 
   IF value15 <= value16 AND value7 <= value11 THEN value11 = value7 ; 
   IF value15 >= value16 AND value8 >= value12 THEN value12 = value8 ; 
   IF value13 > value11 THEN value11 = value13 ; 
   IF value14 < value12 THEN value12 = value14 ; 
   IF MRO ( value17 > value20 , 2 , 2 ) > - 1 AND value11 <= value11 [ 1 ] THEN value11 = value11 [ 1 ] ; 
   IF MRO ( value17 < value21 , 2 , 2 ) > - 1 AND value12 >= value12 [ 1 ] THEN value12 = value12 [ 1 ] ; 
   IF value11 > 0 AND CONDITION34 AND CLOSE > ASCVTV2 ( 14 , 3 , 100188 ) AND value11 <= HIGH THEN PLOT1 ( value11 , "BuyStop3" ) ; 
   IF value12 > 0 AND CONDITION35 AND CLOSE < ASCVTV2 ( 14 , 3 , 100188 ) AND value12 >= LOW THEN PLOT2 ( value12 , "SellStop3" ) ; 
   IF ( ASCMODE = 1 ) THEN 
BEGIN IF value17 > value20 AND CLOSE [ 1 ] < value12 [ 1 ] AND CLOSE > value12 THEN 
BEGIN CONDITION18 = BuyAlertSound03 ( AlertID , BarID , "USK$0828AL73F" ) ; 
         PLOT3 ( value12 , "BOBuy" ) ; 
         END ; 
      IF value17 < value21 AND CLOSE [ 1 ] > value11 [ 1 ] AND CLOSE < value11 THEN 
BEGIN CONDITION19 = SellAlertSound03 ( AlertID , BarID , "USK$0828AL73F" ) ; 
         PLOT4 ( value11 , "BOSell" ) ; 
         END ; 
      END ; 
   IF ( ASCMODE = 11 ) THEN 
BEGIN IF value17 > value20 AND CLOSE [ 1 ] < value12 [ 1 ] AND CLOSE > value12 THEN 
BEGIN ALERT ( "ASCTrend3 BreakOut Buy Setup for " + GETSYMBOLNAME + " at price " + NUMTOSTR ( value12 , 3 ) ) ; 
         PLOT3 ( value12 , "BOBuy" ) ; 
         END ; 
      IF value17 < value21 AND CLOSE [ 1 ] > value11 [ 1 ] AND CLOSE < value11 THEN 
BEGIN ALERT ( "ASCTrend3 BreakOut Sell Setup for " + GETSYMBOLNAME + " at price " + NUMTOSTR ( value11 , 3 ) ) ; 
         PLOT4 ( value11 , "BOSell" ) ; 
         END ; 
      END ; 
   END ; 


 
to Поручик

Зайдите на сайт http://www.dealing-sarov.ru/index.shtml?comment=57 и http://www.dealing-sarov.ru/index.shtml?main_uslugi1#exp4
Тут Вы найдете то что ищите.
 
to Поручик

Зайдите на сайт http://www.dealing-sarov.ru/index.shtml?comment=57"" target=_blank rel="nofollow">http://www.dealing-sarov.ru/index.shtml?comment=57"</a> target=_blank rel="nofollow"><a href="http://www.dealing-sarov.ru/index.shtml?comment=57" target=_blank rel="nofollow">http://www.dealing-sarov.ru/index.shtml?comment=57</a></a> и <a href="<a href="http://www.dealing-sarov.ru/index.shtml?main_uslugi1#exp4
Тут Вы найдете то что ищите.

WOW! A 4to konkretno to tut mogno nayti? Experta za $2 000. Bred kakoy-to...
 

WOW! A 4to konkretno to tut mogno nayti? Experta za $2 000. Bred kakoy-to...

Ни какого бреда! :-( там все написано, как можно получить инфу про данный эксперт
И как он торгует идите по ссылкам там все есть и даже подробные ежемесячные отчеты
 

WOW! A 4to konkretno to tut mogno nayti? Experta za $2 000. Bred kakoy-to...

Ни какого бреда! :-( там все написано, как можно получить инфу про данный эксперт
И как он торгует идите по ссылкам там все есть и даже подробные ежемесячные отчеты

Elki, POLNIY lol. Bolse skazaty ni4ego ne mogu.

1. Ya tam krome reklami "zame4atelnosti" etogo eksperta ni4ego ne nasel. Pro algoritm raboti ego tolko eto: "Алгоритм работы системы не раскрываю".

2. Ya iskrenne poragaiusy cenam na "ekspertik" vash. Vopros, Vi kogda o prodage dumali, Vi na rossiyan rass4itivali (poradovala prostim perevod4ikom perevedennaya "angliyskaya" versiya sayta, s perlami tipa: "new principles of enciphering and protection skompelirovannogo MQL a file in ex4")? Prosto interesno skolko ludey mogut kupity vash ekspert, tk ladno bi on prosto nerealno stoil, tak tam ese i po vremeni ograni4enie...

3. Interesno to 4to Vi pisite 4to ne torguete na reale, tk "изменилось семейное положение", no pri etom akcent delaete na to 4to VSE vashi sistemi prinosiat pologitelnie rezultati.

4. A mesia4nie ot4eti vashi? Po $10. A investorskiy dostup, po $100 V MESIAC. Ne ponimaiu, vi hotite 4tobi ludi pokupali vash produkt, no sna4ala sdiraete $100 za investorskiy dostup?


Vi kone4no menia izvinite, no vse eto pohoge ese na odin lohotron, tolko pri vsem pri etom sayt vigliadit "lohotronee" nekuda (samaya desevaya versiya produkta stoit 3 000, a sayt vigliadit kak skoplenie reklami i ubogestva), i ot cen stanovitsia prosto strashno...

P.S. Dlia teh komu ese ne strashno: Стоимость советника на 1 год эксплуатации $3000, на 2 года $5500 на 3 года $7000, без ограничения срока эксплуатации $30000($20000).
P.P.S. A to kak Vi veli sebia v diskussii s 4elovekom kotoriy skazal 4to moget rasshifrovivaty ex4 fayli - smeshno i nedostoyno. A rezultat?: "Продажа эксперта KSVGarant временно приостановлена".
 
2 Vladislav
Нет проблем. Описание самой системы есть и на пауке и на инвесто. Собственно не описание, а рекомендации по построению стратегий. Пороюсь в арихивах найду - там было.
По поводу алгоритмов - есть и на Виаке - посмотрите обсуждения по теме СильверТренда. По анализу воссозданных кодов можно оценитиь решение проблемы фильтрации одного из уровней - в зависимости от текущей волатильности рынка (считается АТР по нескольким коротким периодам и сравнивается их значение - логика достаточно импирическая и запутана) так вот в зависимости от текущей волатильности подбираются параметры мувингов для фильтрации шума. Это фильтр АСКИТренд2. Есть еще Аскитренд3 - тот более чувствительный. Ща гляну в Омегу - если у меня это осталось, то попробую перегнать коды в текстовый формат.

Вот коды двух не переведеных фильтров. Исходники с паука.
Фильтр первого уровня есть и это СильверТренд и СильверТрендСигнал - два совместно. Единственное, что отсутствует это Сигналы, которые называются СТС - это пробой уровня фильтра ASCTrend3. Если будет его рабочий код, то и соотвектственно будут сигналы. ASCTrend2 под МТ3 где-то есть
Там видны вызовы внешних функций - защита :) и часть логики :(.

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

Кстати, у Поручика именно NRTR и WPR Fast и WPR Slow. Поэтому тем более интересно понять, что же такое ASCTrend2 и ASCTrend3.
 
Да нет, выложил я только доступные коды: если кому будет интересно, чтобы персонально не рассылать. Там виден алгоритм построения фильтров. К сожалению восстановление алгоритма в свое время так и не было доведено до завершения (до написания алгоритма под МТ). Слишком много работы оказалось и вопрос в то же время был решен проще - снятием защиты и созданием полноценной рабоченй версии по Омегу. Разработчиками же это (в смысле система АСКИТренд) преподносится как "черный ящик" с описанием принципов для построения стратегий.
На пауке, вроде бы, есть под ВЛД такая система - Паскаль мне не очень нравится потому я не вникал чего там сделано, да и сам ВЛД уж очень медленно работает Так, что если есть желание подробней разобраться нужно либо смотреть форумы, либо "ковыряться" в кодах. Могу прислать на мыло (как выложить здесь не знаю - описания в формате верда) материалы для трейдеров - описание стратегий, чтобы Вы не особо тратили время для поиска их на форумах. Они есть в свободном доступе. Отпишите мне на мой ящик - к сожалению Ваш адрес не могу найти у себя. А код АскиТренд2 смотрите Выше - под МТ3 работал.

С уважением, Владислав.
Удачи и попутных трендов.