Советы по mql4 для создания советника - страница 3

 
doon:

Уважаемые трейдеры!

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

Во-первых: как в mql4 узнать цену открытия и закрытия предыдущего бара (или свечи), и как их сравнить (на пример в if)?

Во-вторых: какой код нужен для покупки или продажи, с тейк-профитом и стоп-лосом.

В-третьих: как, с помощью mql4, узнать закрылась ли предыдущая сделка по стоп-лосу или по тейк-профиту?

В-четвертых: как остановить выполнение советника (естественно с помощью кода), типа тайм-аута.

В-пятых: как перейти по метке (например, как goto в visual basic)?

1. советник для тестера или для реала ... 2 ни цены открытия ни цены закрытия точно никак не узнать... первый тик бара чаще всего не совпадает ни с ценой открытия ни с временем открытия бара... ну а цена закрытия - аналогично всего лишь последняя известная цена...3 тейк и стоп возможны ток при исполнении инстант ( с сопутствующими приятностями типа реквот ) при исполнении маркет ставятся только после открытия при модификации ( с приятностями типа проскальзываний )...4. с помощью селектора по истории...

так что не так всё просто ...

 
5) условных \ безусловных переходов нет, поэтому обрамляйте нужные куски кода в функции, и вызывайте по мере необходимости, аналог оп. call() в VB
 
Figar0:

Вопросов много ответ один, точнее два


Бриллиантовые слова.

2стартЕртопик (2doon): Прежде, чем лезть на форум ознакомьтесь с инфой по вышеприведенным сцылкам...хотя бы так...ради прикола... :-)))

П.С. Свои сообщения, будьте добры, покрупнее пишите - сейчас, мониторы у всех большие - чтобы сразу всем все было видно.

 
doon:

Еще раз здравствуйте.

Дело в том, что мне надо проверять проверялся ли ордер с помощью функции isCloseLastPosByStop().Магик использовать нельзя, т.к. он рано или поздно он кончиться (2147483647), а стирать или изменять его нельзя. Подскажите, как это осуществить.

Жги ище :-)))
 

Хочу, чтобы после закрытия по стоп лосу выводилось сообщение, но в mt4 ничего не происходит.

int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
string sy="NULL";
int op=-1;
int mn=-1;
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
datetime t;
double ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal();

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
ocp=NormalizeDouble(OrderClosePrice(), dg);
osl=NormalizeDouble(OrderStopLoss(), dg);
if (ocp==osl) return(True);
}
return(False);
}
int start()
{
//----
bool stopl;
stopl = isCloseLastPosByStop(sy,op,mn);
if (stopl == true)
Alert ("последняя сделка закрылась по s/l");
//----
return(0);
}

 
atik:

1. советник для тестера или для реала ... 2 ни цены открытия ни цены закрытия точно никак не узнать... первый тик бара чаще всего не совпадает ни с ценой открытия ни с временем открытия бара... ну а цена закрытия - аналогично всего лишь последняя известная цена...3 тейк и стоп возможны ток при исполнении инстант ( с сопутствующими приятностями типа реквот ) при исполнении маркет ставятся только после открытия при модификации ( с приятностями типа проскальзываний )...4. с помощью селектора по истории...

так что не так всё просто ...

Слава, не отпугивайте товарища (хотя я с Вами во всем вышеуказанном согласен), пусть сначала слепит первый пирожок для тестера - а там потихоньку будет разбираться. Ну нельзя перед перловой кашей торт вкушать :)
 
PPC:
Слава, не отпугивайте товарища (хотя я с Вами во всем вышеуказанном согласен), пусть сначала слепит первый пирожок для тестера - а там потихоньку будет разбираться. Ну нельзя перед перловой кашей торт вкушать :)


Да товарисч, жгет во всю, а Вы торт с перловой кашей... :-)))

Уверен, ему сейчас ни до того, ни до другого...

Так, что все в поряде.

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