Помощь в кодировании - страница 509

 
tfi_markets:
Привет про-кодеры,

Я получаю предупреждение: "проверьте старшинство операторов на возможную ошибку; используйте круглые скобки для уточнения старшинства".

if ((STC115)||(STC185)&&(Ask>emaFilter && ADXmain>25))

{

OpenBuy();

}

Похоже, что оператор ..AND (Ask>emaFilter) также игнорируется MT4.

Не мог бы кто-нибудь подсказать?

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

Возможно, вам следует написать это следующим образом:

if (((STC115) || (STC185)) && (Ask>emaFilter && ADXmain>25) )

Но в основном это зависит от того, что именно вы хотите проверить. Предупреждение появляется потому, что раньше приоритет && (и) и || (или) был разным - они его изменили, и теперь все эти логические сравнения должны быть проверены.

 
mladen:
Возможно, вам следует написать так :

if (((STC115) || (STC185)) && (Ask>emaFilter && ADXmain>25)) )

Но это в основном зависит от того, что именно вы хотите протестировать. Предупреждение появляется потому, что раньше приоритет && (и) и || (или) был другим - они его изменили, и теперь все эти логические сравнения должны быть проверены.

Привет, Младен,

большое спасибо за ваше предложение. Я обязательно попробую! Вы всегда очень полезны!

Если говорить простыми словами, то все три скобки должны стать истинными до того, как советник откроет сделку.

Думаю, ваш код обеспечит эту функциональность.

С уважением,

T.

 

Кодеры,

Не мог бы кто-нибудь помочь мне со следующим?

Я использую скрипт волны Эллиота для ручной маркировки волн. Скрипт размещает на графике 8 различных объектов (i,ii,iii,iv,v,a,b,c).

Все работает хорошо, но удаление объектов требует много работы. Потому что мне приходится нажимать на каждый объект (i,ii,iii,iv,v,a,b,c), чтобы удалить их. Я хотел бы добавить что-то в код, что позволит мне выделить все объекты (i,ii,iii,iv,v,a,b,c) одним щелчком мыши. Я уже искал, но не смог найти нужную мне функцию.

(Я не ищу скрипт, который удаляет все объекты на графике).

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

//+------------------------------------------------------------------+//| wave labels ff.mq4 |

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

#property version "1.00"

#property strict

#include

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

//| Script program start function |

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

extern string Text1 = "(i)"; // Enter Text to place on screen

extern string Text2 = "(ii)"; // Enter Text to place on screen

extern string Text3 = "(iii)"; // Enter Text to place on screen

extern string Text4 = "(iv)"; // Enter Text to place on screen

extern string Text5 = "(v)"; // Enter Text to place on screen

extern string Text6 = "(a)"; // Enter Text to place on screen

extern string Text7 = "(b)"; // Enter Text to place on screen

extern string Text8 = "(c)"; // Enter Text to place on screen

extern string Text_font="Arial Bold"; // font of text

extern int Text_fontsize = 14; // size of text

extern color Text_color = Red; // color of text

int TextBarsAhead2 = 7; // # bars to space 2nd letter from first

int TextBarsAhead3 = 14; // # bars to space 3rd letter from first

int TextBarsAhead4 = 21; // # bars to space 4th letter from first

int TextBarsAhead5 = 28; // # bars to space 5th letter from first

int TextBarsAhead6 = 35; // # bars to space 6th letter from first

int TextBarsAhead7 = 42; // # bars to space 7th letter from first

int TextBarsAhead8 = 49; // # bars to space 8th letter from first

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

//+-----------------------------SCRIPT CODE--------------------------+

int OnStart(){

double price = WindowPriceOnDropped(); // find the price point where dropped

datetime Time1 = WindowTimeOnDropped(); // find the time point where dropped

datetime TimeNow = TimeCurrent(); // get the current time ( makes name unique)

datetime Time2 = (int)Time1+TextBarsAhead2*(int)Period()*60;

datetime Time3 = (int)Time1+TextBarsAhead3*(int)Period()*60;

datetime Time4 = (int)Time1+TextBarsAhead4*(int)Period()*60;

datetime Time5 = (int)Time1+TextBarsAhead5*(int)Period()*60;

datetime Time6 = (int)Time1+TextBarsAhead6*(int)Period()*60;

datetime Time7 = (int)Time1+TextBarsAhead7*(int)Period()*60;

datetime Time8 = (int)Time1+TextBarsAhead8*(int)Period()*60;

string gap=" "; // spacing between text characters

string text=Text1+gap+Text2+gap+Text3+gap+Text4+gap+Text5; // put the text in a line

TextToPrint ("Wave labels 1 " + (string)TimeNow, Text1, Text_fontsize, Text_font, Text_color, Time1, price); //print 1st letter

TextToPrint ("Wave labels 2 " + (string)TimeNow, Text2, Text_fontsize, Text_font, Text_color, Time2, price); //print 1st letter

TextToPrint ("Wave labels 3 " + (string)TimeNow, Text3, Text_fontsize, Text_font, Text_color, Time3, price); //print 1st letter

TextToPrint ("Wave labels 4 " + (string)TimeNow, Text4, Text_fontsize, Text_font, Text_color, Time4, price); //print 1st letter

TextToPrint ("Wave labels 5 " + (string)TimeNow, Text5, Text_fontsize, Text_font, Text_color, Time5, price); //print 1st letter

TextToPrint ("Wave labels 6 " + (string)TimeNow, Text6, Text_fontsize, Text_font, Text_color, Time6, price); //print 1st letter

TextToPrint ("Wave labels 7 " + (string)TimeNow, Text7, Text_fontsize, Text_font, Text_color, Time7, price); //print 1st letter

TextToPrint ("Wave labels 8 " + (string)TimeNow, Text8, Text_fontsize, Text_font, Text_color, Time8, price); //print 1st letter

return(0);

}

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

void TextToPrint(string TextName,string LabelText,int FontSize,string FontName,color TextColor,datetime Time0,double Price0)

{

if(StringLen(LabelText)>1){

ObjectCreate(TextName,OBJ_TEXT,0,Time0,Price0);

ObjectSetText(TextName,LabelText,FontSize,FontName,TextColor);

}

}

//+------------------------------------------------------------------+
 
xtractalpha:
Кодеры,

Не мог бы кто-нибудь помочь мне со следующим?

Я использую скрипт волны Эллиота для ручной маркировки волн. Скрипт размещает на графике 8 различных объектов (i,ii,iii,iv,v,a,b,c).

Все работает хорошо, но удаление объектов требует много работы. Потому что мне приходится нажимать на каждый объект (i,ii,iii,iv,v,a,b,c), чтобы удалить их. Я хотел бы добавить что-то в код, что позволит мне выделить все объекты (i,ii,iii,iv,v,a,b,c) одним щелчком мыши. Я уже искал, но не смог найти нужную мне функцию.

(Я не ищу скрипт, который удаляет все объекты на графике).

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

//+------------------------------------------------------------------+//| wave labels ff.mq4 |

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

#property version "1.00"

#property strict

#include

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

//| Script program start function |

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

extern string Text1 = "(i)"; // Enter Text to place on screen

extern string Text2 = "(ii)"; // Enter Text to place on screen

extern string Text3 = "(iii)"; // Enter Text to place on screen

extern string Text4 = "(iv)"; // Enter Text to place on screen

extern string Text5 = "(v)"; // Enter Text to place on screen

extern string Text6 = "(a)"; // Enter Text to place on screen

extern string Text7 = "(b)"; // Enter Text to place on screen

extern string Text8 = "(c)"; // Enter Text to place on screen

extern string Text_font="Arial Bold"; // font of text

extern int Text_fontsize = 14; // size of text

extern color Text_color = Red; // color of text

int TextBarsAhead2 = 7; // # bars to space 2nd letter from first

int TextBarsAhead3 = 14; // # bars to space 3rd letter from first

int TextBarsAhead4 = 21; // # bars to space 4th letter from first

int TextBarsAhead5 = 28; // # bars to space 5th letter from first

int TextBarsAhead6 = 35; // # bars to space 6th letter from first

int TextBarsAhead7 = 42; // # bars to space 7th letter from first

int TextBarsAhead8 = 49; // # bars to space 8th letter from first

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

//+-----------------------------SCRIPT CODE--------------------------+

int OnStart(){

double price = WindowPriceOnDropped(); // find the price point where dropped

datetime Time1 = WindowTimeOnDropped(); // find the time point where dropped

datetime TimeNow = TimeCurrent(); // get the current time ( makes name unique)

datetime Time2 = (int)Time1+TextBarsAhead2*(int)Period()*60;

datetime Time3 = (int)Time1+TextBarsAhead3*(int)Period()*60;

datetime Time4 = (int)Time1+TextBarsAhead4*(int)Period()*60;

datetime Time5 = (int)Time1+TextBarsAhead5*(int)Period()*60;

datetime Time6 = (int)Time1+TextBarsAhead6*(int)Period()*60;

datetime Time7 = (int)Time1+TextBarsAhead7*(int)Period()*60;

datetime Time8 = (int)Time1+TextBarsAhead8*(int)Period()*60;

string gap=" "; // spacing between text characters

string text=Text1+gap+Text2+gap+Text3+gap+Text4+gap+Text5; // put the text in a line

TextToPrint ("Wave labels 1 " + (string)TimeNow, Text1, Text_fontsize, Text_font, Text_color, Time1, price); //print 1st letter

TextToPrint ("Wave labels 2 " + (string)TimeNow, Text2, Text_fontsize, Text_font, Text_color, Time2, price); //print 1st letter

TextToPrint ("Wave labels 3 " + (string)TimeNow, Text3, Text_fontsize, Text_font, Text_color, Time3, price); //print 1st letter

TextToPrint ("Wave labels 4 " + (string)TimeNow, Text4, Text_fontsize, Text_font, Text_color, Time4, price); //print 1st letter

TextToPrint ("Wave labels 5 " + (string)TimeNow, Text5, Text_fontsize, Text_font, Text_color, Time5, price); //print 1st letter

TextToPrint ("Wave labels 6 " + (string)TimeNow, Text6, Text_fontsize, Text_font, Text_color, Time6, price); //print 1st letter

TextToPrint ("Wave labels 7 " + (string)TimeNow, Text7, Text_fontsize, Text_font, Text_color, Time7, price); //print 1st letter

TextToPrint ("Wave labels 8 " + (string)TimeNow, Text8, Text_fontsize, Text_font, Text_color, Time8, price); //print 1st letter

return(0);

}

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

void TextToPrint(string TextName,string LabelText,int FontSize,string FontName,color TextColor,datetime Time0,double Price0)

{

if(StringLen(LabelText)>1){

ObjectCreate(TextName,OBJ_TEXT,0,Time0,Price0);

ObjectSetText(TextName,LabelText,FontSize,FontName,TextColor);

}

}

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

xtractalpha

В процедуре deinit() добавьте часть очистки.

В вашем случае это будет ObjectDelete(objectName) для каждого объекта, который создал ваш код.

 

Здравствуйте Младен

Не могли бы вы помочь с ошибками компиляции в следующих случаях

Файлы:
 
candyman752:
Здравствуйте, Младен Не могли бы вы помочь с ошибками компиляции в следующих случаях

Проверьте сейчас: genie_stoch_rsittt_1.mq4

Файлы:
 

Дорогой Младен

Спасибо за этот замечательный инди.

Возможна ли версия с гистограммой???

 
SLAVOLJUB:
Уважаемый Младен

Спасибо за эту замечательную инди

Возможна ли версия гистограммы?

Это возможно купить, тогда две сигнальные линии должны быть полностью проигнорированы и вырезаны

 
mladen:
Можно купить, тогда две сигнальные линии должны быть полностью проигнорированы и вырезаны

Нет проблем.... мне нужна только эта красно-зеленая линия

(красно-зеленая линия как гистограмма)

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

 

Здравствуйте, Младен,

Я добавил в советник код для трейлинг стопа. Я получаю две ошибки компиляции. Инструкции по добавлению кода были:

Как использовать?

Очень просто. Поместите приведенный ниже код в любую часть программы советника и вызовите функциюtrail2(#ticket) в функции Start().ticket = это билет вашего ордера, это может быть ордер на покупку или продажу. Но это должен быть живой ордер, а не отложенный.

Например.

{...(ваш код)

ticket=ordersend(...)

...

}

..

trail2(ticket)

или trail2(ticket, 300, 40, 250, 100)

..

Файлы:
wip.mq4  8 kb