Спрашивайте! - страница 7

 

Здравствуйте, я прикрепил индикатор в mq4, который предупреждает всякий раз, когда cci<-150.

Он предупреждает тик за тиком; может ли кто-нибудь модифицировать его так, чтобы он предупреждал только при закрытии свечи?

В данном случае я бы хотел получать сигнал только тогда, когда cci < -150 в конце 5м свечи.

Заранее спасибо

Файлы:
 

хорошо, второй вопрос, я думаю, этот простой:

Я создаю пользовательский индикатор, который будет предупреждать меня, когда цена пересекает MA.

Я использую iCustom для импорта индикатора MA

и затем я не знаю, как использовать закрытие цены; я пробовал CLOSE и PRICE_CLOSE, но безрезультатно:

if (CLOSE?>ma1)

adxvalue= -1;

if (PRICE_CLOSE?>ma1)

adxvalue= -1;

Кроме того, я хочу, чтобы оповещение звучало только в конце 5-метрового бара, а не работало на тиковой основе: что еще я должен изменить (этот вопрос в моем предыдущем сообщении).

Спасибо

 

Здравствуйте, Кодерсгуру,

Не могли бы вы помочь мне закодировать оповещение в Osma Color так, чтобы оно оповещало, когда цвета меняются.

Спасибо

Дункан

//+------------------------------------------------------------------+

//| OsMA_color.mq4 |

//| Rafael |

//| marynarz15@wp.pl |

//+------------------------------------------------------------------+

#property copyright "Rafael"

#property link "marynarz15@wp.pl"

//---- параметры индикатора

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Lime

#property indicator_color2 Red

//---- параметры индикатора

extern int FastEMA=12;

extern int SlowEMA=26;

extern int SignalSMA=9;

//---- буферы индикатора

double ind_buffer1a[];

double ind_buffer1b[];

double ind_buffer2[];

double ind_buffer3[];

//+------------------------------------------------------------------+

//| Пользовательская функция инициализации индикатора |

//+------------------------------------------------------------------+

int init()

{

//---- 2 дополнительных буфера используются для подсчета.

IndicatorBuffers(4);

//---- настройки рисования

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexDrawBegin(0,SignalSMA);

SetIndexDrawBegin(1,SignalSMA);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);

//---- 3 отображение буферов индикаторов

if(!SetIndexBuffer(0,ind_buffer1a) &&

!SetIndexBuffer(1,ind_buffer1b) &&

!SetIndexBuffer(2,ind_buffer2) &&

!SetIndexBuffer(3,ind_buffer3))

Print("cannot set indicator buffers!");

//---- имя для DataWindow и метки подокна индикатора

IndicatorShortName("OsMA("+FastEMA+", "+SlowEMA+", "+SignalSMA+")");

//---- инициализация выполнена

return(0);

}

//+------------------------------------------------------------------+

//| Скользящее среднее осциллятора |

//+------------------------------------------------------------------+

int start()

{

int limit;

int counted_bars=IndicatorCounted();

//---- проверка на возможные ошибки

if(counted_bars<0) return(-1);

//---- последний подсчитанный бар будет пересчитан.

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

//---- macd подсчитывается в 1-ом дополнительном буфере

for(int i=0; i<limit; i++)

ind_buffer2=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)

-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);

//Счет строки сигнала ---- во 2-м дополнительном буфере

for(i=0; i<limit; i++)

ind_buffer3=iMAOnArray(ind_buffer2,Bars,SignalSMA,0,MODE_SMA,i);

//---- основной цикл

double value=0;

for(i=0; i<limit; i++)

{

ind_buffer1a=0.0;

ind_buffer1b=0.0;

value=ind_buffer2-ind_buffer3;

if (value>0) ind_buffer1a=value;

if (value<0) ind_buffer1b=value;

}

//---- сделано

return(0);

}

//+------------------------------------------------------------------+

 

Привет

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

Файлы:
butterfly.mql  3 kb
 

Я прилагаю два pdf. Суть шаблона и правила указаны.

Файлы:
attachment2.pdf  141 kb
attachment1.pdf  189 kb
 

привет

Привет, ребята,

Возможно, вы все знаете имя этого автора, но никогда не знали, что

что его метод закодирован в программное обеспечение.

Пезавенто создал среди прочих эти замечательные книги:

* Коэффициенты Фибоначчи с распознаванием паттернов.

* Прибыльные паттерны для биржевой торговли

* Астро-циклы: Точка зрения трейдера

Кстати, я знаю, что программное обеспечение ENSIGN также имеет его оригинальный инструмент для изучения паттернов Пезавенто, который можно увидеть по следующей ссылке.

Если кто-то сможет импортировать его из ENSIGN в MetaTrader 4, это будет просто замечательно.

http://www.ensignsoftware.com/help/pesavento.htm

 

снова привет

я нашел код для паттерна Гартли 222 на двух платформах.

Если кто-нибудь сможет перевести его на MetaTrade 4, это будет просто супер!

вот коды :

1.Код TradeStation для паттерна Гартли 222 найден в книге "Торговля по Гартли 222" Аарона Бехле и Марка Конвея, стр. 38:

Входы:

Length(100),

Сила(8),

Tolerance(0.10),

BullColor(Blue),

BearColor(Red);

Переменные:

F1(0.618),

F2(0.786),

F3(1.27),

F4(1.618),

P1Bar(-1),

P2Bar(-1),

T1Bar(-1),

T2Bar(-1),

P1(0.0),

P2(0.0),

T1(0.0),

T2(0.0),

PTValid(False),

HLValid(False),

InZone(False),

GD(0.0),

XA(0.0),

AB(0.0),

BC(0.0),

CD(0.0),

AD(0.0),

C1(False),

C2(False),

C3(False),

C4(False),

ABdXA(0.0),

BCdAB(0.0),

CDdBC(0.0),

ADdXA(0.0),

TL1(-1),

TL2(-1),

TL3(-1),

TL4(-1),

TL5(-1),

TL6(-1);

P1Bar = SwingHighBar(1, High, Strength, Length);

P2Bar = SwingHighBar(2, High, Strength, Length);

T1Bar = SwingLowBar(1, Low, Strength, Length);

T2Bar = SwingLowBar(2, Low, Strength, Length);

Если P1Bar -1 и

P2Bar -1 и

T1Bar -1 и

T2Bar -1 Then Begin

{Тест на бычий уровень 222}

{Trough X - T2}

T2 = Low[T2Bar]

{Пик A - P2}

P2 = High[P2Bar];

{Trough B - T1}

T1 = Low[T1Bar];

{Пик C - P1}

P1 = High[P1Bar];

{D - точка покупки}

GD = Low;

PTValid = P1Bar < T1Bar и T1Bar < P2Bar и P2Bar < T2Bar;

HLValid = P1 T2 и P1 > T1;

InZone = GD T2 и P2 >= Highest(High, T2Bar);

If PTValid and HLValid and InZone Then Begin

XA = P2 - T2;

AB = P2 - T1;

BC = P1 - T1;

CD = P1 - GD;

AD = P2 - GD;

ABdXA = AB / XA; {AB должно составлять 61,8% от XA}.

C1 = ABdXA > F1 - Допуск и ABdXA < F1 + Допуск;

BCdAB = BC / AB; {BC должно составлять 61,8-78,6% от AB}

C2 = BCdAB > F1 - Допуск и BCdAB < F2 + Допуск;

CDdBC = CD / BC; {CD должно составлять 127-161,8% от BC}

C3 = CDdBC > F3 - Допуск и CDdBC < F4 + Допуск;

ADdXA = AD / XA; {AD должно составлять 78,6% от XA}

C4 = ADdXA > F2 - Допуск и ADdXA < F2 + Допуск;

If C1 and C2 and C3 and C4 Then Begin

TL1 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[P2Bar], Time[P2Bar], P2);

If TL1 >= 0 Then Begin

TL_SetColor(TL1, BullColor);

TL_SetStyle(TL1, Tool_Solid);

TL_SetSize(TL1, 2);

End;

TL2 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[T1Bar], Time[T1Bar], T1);

If TL2 >= 0 Then Begin

TL_SetColor(TL2, BullColor);

TL_SetStyle(TL2, Tool_Solid);

TL_SetSize(TL2, 2);

End;

TL3 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date[P1Bar], Time[P1Bar], P1);

If TL3 >= 0 Then Begin

TL_SetColor(TL3, BullColor);

TL_SetStyle(TL3, Tool_Solid);

TL_SetSize(TL3, 2);

End;

TL4 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date, Time, GD);

If TL4 >= 0 Then Begin

TL_SetColor(TL4, BullColor);

TL_SetStyle(TL4, Tool_Solid);

TL_SetSize(TL4, 2);

End;

TL5 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date, Time, GD);

If TL5 >= 0 Then Begin

TL_SetColor(TL5, BullColor);

TL_SetStyle(TL5, Tool_Dotted);

End;

TL6 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date, Time, GD);

If TL6 >= 0 Then Begin

TL_SetColor(TL6, BullColor);

TL_SetStyle(TL6, Tool_Dotted);

End;

End;

End;

{Тест на медвежий уровень 222}

{Peak X - P2}

{Впадина A - T2}

{Пик B - P1}

{Trough C - T1}

{GD - короткая точка}

GD = High;

PTValid = T1Bar < P1Bar и P1Bar < T2Bar и T2Bar < P2Bar;

HLValid = T1 > T2 и P1 < P2 и T1 < P1;

InZone = GD > P1 и GD < P2 и T2 <= Lowest(Low, P2Bar);

If PTValid and HLValid and InZone Then Begin

XA = P2 - T2;

AB = P1 - T2;

BC = P1 - T1;

CD = GD - T1;

AD = GD - T2;

ABdXA = AB / XA; {AB должно составлять 61,8% от XA}.

C1 = ABdXA > F1 - Допуск и ABdXA < F1 + Допуск;

BCdAB = BC / AB; {BC должно составлять 61,8-78,6% от AB}

C2 = BCdAB > F1 - Допуск и BCdAB < F2 + Допуск;

CDdBC = CD / BC; {CD должно составлять 127-161,8% от BC}

C3 = CDdBC > F3 - Допуск и CDdBC < F4 + Допуск;

ADdXA = AD / XA; {AD должно составлять 78,6% от XA}

C4 = ADdXA > F2 - Допуск и ADdXA < F2 + Допуск;

If C1 and C2 and C3 and C4 Then Begin

TL1 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[T2Bar], Time[T2Bar], T2);

If TL1 >= 0 Then Begin

TL_SetColor(TL1, BearColor);

TL_SetStyle(TL1, Tool_Solid);

TL_SetSize(TL1, 2);

End;

TL2 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[P1Bar], Time[P1Bar], P1);

If TL2 >= 0 Then Begin

TL_SetColor(TL2, BearColor);

TL_SetStyle(TL2, Tool_Solid);

TL_SetSize(TL2, 2);

End;

TL3 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date[T1Bar], Time[T1Bar], T1);

If TL3 >= 0 Then Begin

TL_SetColor(TL3, BearColor);

TL_SetStyle(TL3, Tool_Solid);

TL_SetSize(TL3, 2);

End;

TL4 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date, Time, GD);

If TL4 >= 0 Then Begin

TL_SetColor(TL4, BearColor);

TL_SetStyle(TL4, Tool_Solid);

TL_SetSize(TL4, 2);

End;

TL5 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date, Time, GD);

If TL5 >= 0 Then Begin

TL_SetColor(TL5, BearColor);

TL_SetStyle(TL5, Tool_Dotted);

End;

TL6 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date, Time, GD);

If TL6 >= 0 Then Begin

TL_SetColor(TL6, BearColor);

TL_SetStyle(TL6, Tool_Dotted);

End;

End;

End;

Конец;

2.Код Wealth-Lab:

процедура Gartley222

(

VPFactor: float;

Tolerance: float;

Lookback: integer;

HoldBars: integer;

VolMin: целое число

);

begin

var ATRValue, VP, Reversal: float;

var F1, F2, F3, F4, P1, P2, T1, T2: float;

var Bar, P1Bar, P2Bar, T1Bar, T2Bar, p: integer;

var XA, AB, BC, CD, AD, D, XD, DT, ABdXA, BCdAB, CDdBC, ADdXA: float;

var PTValid, HLValid, InZone, C1, C2, C3, C4: булево;

var BT, BS, ST, SS: float;

{Постоянные Фибоначчи}

F1 := 0.618;

F2 := 0.786;

F3 := 1.27;

F4 := 1.618;

InstallTimeBasedExit(HoldBars);

for Bar := Lookback to BarCount() - 1 do

begin

ApplyAutoStops(Bar);

ATRValue := ATR(Bar, Lookback);

SetShareSize( 1000 * Int( 10 / ATRValue ) );

VP := 100 * ATRValue / PriceClose(Bar);

{Найти пики и впадины}

Reversal := Int(VPFactor * VP);

P1 := Peak(Bar, #High, F1 * Reversal);

P1Bar := PeakBar(Bar, #High, F1 * Reversal);

P2 := Peak(P1Bar, #High, Reversal);

P2Bar := PeakBar(P1Bar, #High, Reversal);

T1 := Trough(Bar, #Low, F1 * Reversal);

T1Bar := TroughBar(Bar, #Low, F1 * Reversal);

T2 := Trough(T1Bar, #Low, Reversal);

T2Bar := TroughBar(T1Bar, #Low, Reversal);

{Тест на бычий уровень 222}

{Trough X - T2}

{Peak A - P2}

{Trough B - T1}

{Peak C - P1}

{D - зона покупки}

D := PriceLow(Bar);

PTValid := (P1Bar > T1Bar) и (T1Bar > P2Bar) и (P2Bar > T2Bar);

HLValid := (P1 T2) и (P1 > T1);

InZone := (D T2);

if (MarketPosition = 0) and

(SMA(Bar, #Volume, Lookback) >= VolMin) and

(PTValid) and (HLValid) and (InZone) then

begin

XA := P2 - T2;

AB := P2 - T1;

BC := P1 - T1;

XD := P2 - (F2 * XA);

CD := P1 - XD;

AD := P2 - XD;

ABdXA := AB / XA; {AB должно составлять 61,8% от XA}

C1 := (ABdXA > F1 - Допуск) и (ABdXA < F1 + Допуск);

BCdAB := BC / AB; {BC должно составлять 61,8-78,6% от AB}

C2 := (BCdAB > F1 - Допуск) и (BCdAB < F2 + Допуск);

CDdBC := CD / BC; {CD должно составлять 127-161,8% от BC}

C3 := (CDdBC > F3 - допуск) и (CDdBC < F4 + допуск);

ADdXA := AD / XA; {AD должно составлять 78,6% от XA}

C4 := (ADdXA > F2 - Допуск) и (ADdXA < F2 + Допуск);

если C1 и C2 и C3 и C4 тогда

begin

DrawLine(P2Bar, P2, T2Bar, T2, 0, #Blue, #Solid);

DrawLine(T1Bar, T1, P2Bar, P2, 0, #Blue, #Solid);

DrawLine(P1Bar, P1, T1Bar, T1, 0, #Blue, #Solid);

DrawLine(Bar, D, P1Bar, P1, 0, #Blue, #Solid);

DrawLine(Bar, D, T1Bar, T1, 0, #Blue, #Dotted);

DrawLine(Bar, D, T2Bar, T2, 0, #Blue, #Dotted);

AnnotateBar('B', Bar, True, #Blue, 10);

BuyAtLimit(Bar, XD, 'G222 LE');

DT := F1 * CD;

BT := XD + DT;

BS := T2;

end;

end;

{Тест для медвежьего 222}

{Peak X - P2}

{Trough A - T2}

{Пик B - P1}

{Trough C - T1}

{D - короткая зона}

D := PriceHigh(Bar);

PTValid := (T1Bar > P1Bar) и (P1Bar > T2Bar) и (T2Bar > P2Bar);

HLValid := (T1 > T2) и (P1 < P2) и (T1 < P1);

InZone := (D > P1) и (D < P2);

if (MarketPosition = 0) and

(PriceClose( Bar ) >= 5) and

(SMA(Bar, #Volume, Lookback) >= VolMin) and

(PTValid) and (HLValid) and (InZone) then

begin

XA := P2 - T2;

AB := P1 - T2;

BC := P1 - T1;

XD := T2 + (F2 * XA);

CD := XD - T1;

AD := XD - T2;

ABdXA := AB / XA; {AB должно составлять 61,8% от XA}

C1 := (ABdXA > F1 - Допуск) и (ABdXA < F1 + Допуск);

BCdAB := BC / AB; {BC должно составлять 61,8-78,6% от AB}

C2 := (BCdAB > F1 - Допуск) и (BCdAB < F2 + Допуск);

CDdBC := CD / BC; {CD должно составлять 127-161,8% от BC}

C3 := (CDdBC > F3 - допуск) и (CDdBC < F4 + допуск);

ADdXA := AD / XA; {AD должно составлять 78,6% от XA}

C4 := (ADdXA > F2 - Допуск) и (ADdXA < F2 + Допуск);

если C1 и C2 и C3 и C4 тогда

begin

DrawLine(T2Bar, T2, P2Bar, P2, 0, #Red, #Solid);

DrawLine(P1Bar, P1, T2Bar, T2, 0, #Red, #Solid);

DrawLine(T1Bar, T1, P1Bar, P1, 0, #Red, #Solid);

DrawLine(Bar, D, T1Bar, T1, 0, #Red, #Solid);

DrawLine(Bar, D, P1Bar, P1, 0, #Red, #Dotted);

DrawLine(Bar, D, P2Bar, P2, 0, #Red, #Dotted);

AnnotateBar('S', Bar, False, #Red, 10);

ShortAtLimit(Bar, XD, 'G222 SE');

DT := F1 * CD;

ST := XD - DT;

SS := P2;

end;

end;

if LastPositionActive then

begin

if MarketPosition = 1 then begin

SellAtLimit(Bar+1, BT, #All, 'G222 LX+');

SellAtStop(Bar+1, BS, #All, 'G222 LX-');

end;

если MarketPosition = -1, то begin

CoverAtLimit(Bar+1, ST, #All, 'G222 LX+');

CoverAtStop(Bar+1, SS, #All, 'G222 LX-');

end;

end;

end;

end;

Gartley222(2.0, 0.1, 20, 7, 2000000);

 

Что такое SMCMA и WCMA ????

Кто-нибудь знает что-нибудь об этих 2 вещах MA и где их можно получить и использовать для Meta Trader 4.

1. SMCMA

2. WCMA

Единственное, что я могу знать, что это некоторые типы MA

(скользящие средние), но где их взять и как их использовать?

пока

Zero_Forex

 

Использование других валютных пар в советнике?

Кто-нибудь знает, как заставить советника проверять графики других валютных пар, чтобы помочь решить, хотите ли вы совершить покупку или продажу? Например, как я могу заставить советника смотреть на usd-chf как часть критериев для принятия решения о покупке или продаже на gbp-chf? Пока что у меня есть советник, который мне нравится, но я думаю, что он мог бы быть лучше, если бы в программу можно было записать проверку других связанных пар. Codersguru, или любой другой, кто может помочь, пожалуйста, дайте мне знать.

Спасибо!

 
codersguru:
Привет, друзья,

Я получил много личных сообщений с просьбой помочь мне с некоторыми частями кода.

Здесь вы можете размещать свои вопросы, связанные с MQL4, и я сделаю все возможное, чтобы ответить на них.

Привет, Кодер.

Можно ли сделать так, чтобы алерт звучал только один раз на 5-минутном баре?

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

Затем выключался.

Затем на открытии следующего бара обновить индикатор, чтобы он был готов снова подать сигнал.

Затем снова выключить, пока условие 0.0005 не будет выполнено снова.

Затем снова включить и так далее.......

Приведенный ниже индикатор может подавать много сигналов за бар при срабатывании.

См. ниже.

//+------------------------------------------------------------------+

//| Juice.mq4 |

//| Perky_z |

//| http://fxovereasy.atspace.com/index |

//+------------------------------------------------------------------+

#property copyright "perky"

#property link "http://fxovereasy.atspace.com/index"

//---- настройки индикатора

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 FireBrick

//---- параметры индикатора

extern bool DoAlerts = false;

extern int AlertFromPips = 5;

extern int Periyod=7;

extern double Level = 5;

extern bool JuiceLevelsVisible = true;

extern int JuiceStartPips = 5;

extern int JuiceStepPips = 5;

extern int JuiceLevelsNumber = 4;

extern color JuiceLevelColor = Silver;

//---- буферы индикатора

double OsMAUpBuffer[];

double OsMADownBuffer[];

double OsMAValue;

double currentJuiceLevel;

//+------------------------------------------------------------------+

//| Пользовательская функция инициализации индикатора |

//+------------------------------------------------------------------+

int init()

{

//---- 2 дополнительных буфера используются для подсчета.

IndicatorBuffers(2);

//---- настройки рисования

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,1);

SetIndexDrawBegin(0,Level);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);

//---- отображение 2 индикаторных буферов

if(!SetIndexBuffer(0,OsMAUpBuffer) &&

!SetIndexBuffer(1,OsMADownBuffer))

Print("cannot set indicator buffers!");

//---- имя для DataWindow и метки подокна индикатора

IndicatorShortName("Juice("+Periyod+", "+Level+")");

//---- инициализация выполнена

return(0);

}

int SetLevelLines()

{

string levelLabel;

if(JuiceLevelsVisible)

{

SetLevelStyle(STYLE_DASH,1,JuiceLevelColor);

for(int i=1; i<= JuiceLevelsNumber; i++)

{

currentJuiceLevel = (JuiceStartPips + (i-1)*JuiceStepPips)*Point;

SetLevelValue(i,currentJuiceLevel);

levelLabel = "Уровень "+i+": "+currentJuiceLevel;

SetIndexLabel(i,levelLabel);

}

}else

{

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

{

SetLevelValue(i,0.0);

}

}

}

//+------------------------------------------------------------------+

//| Скользящая средняя осциллятора || Moving Average of Oscillator.

//+------------------------------------------------------------------+

int start()

{

//if ( Period != 15) Alert ("Сок рекомендуется только для 15-минутных графиков!!!");

int limit,i;

int counted_bars=IndicatorCounted();

double Juice;

bool TurnOnAlert = true;

//---- проверка на возможные ошибки

if(counted_bars<0) return(-1);

//---- последний подсчитанный бар будет пересчитан

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

Level = Level*Point;

if (Period()==5 ) Level=Level/2;

SetLevelLines();

//---- основной цикл

for(i=0; i<limit; i++)

{

Juice=iStdDev (NULL,0,Periyod,MODE_EMA,0,PRICE_CLOSE,i)-Level;

if(Juice>0){

OsMAUpBuffer=Juice;

OsMADownBuffer=0;

}else if(Juice<0){

OsMADownBuffer=Juice;

OsMAUpBuffer=0;

}else{

OsMAUpBuffer=0;

OsMADownBuffer=0;

}

}

if (DoAlerts)

{

if (Juice > AlertFromPips*Point && Period() == 5)

{

if (TurnOnAlert)

{

Alert("Сок выше ",AlertFromPips*Point," для ", Symbol());

PlaySound("Tick.wav");

TurnOnAlert = false;

}

}

else

{

TurnOnAlert = true;

}

}

//---- готово

return(0);

}

//+------------------------------------------------------------------+

Ваша помощь будет высоко оценена.

Большое спасибо.

Ли.

Причина обращения: