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

 

Хорошо, я спрашиваю...

как мне использовать функции файла, чтобы он добавлял данные в конец файла, а не перезаписывал их.

https://www.mql5.com/en/forum/174700/page77

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

 

Как получить указанный закрытый ордер с помощью HistoryTotal()?

Привет всем

Есть ли способ с помощью функции HistoryTotal найти конкретный закрытый ордер (на покупку или продажу)?

Я пробовал с этим кодом, но похоже он не работает:

int hstTotal=HistoryTotal();

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

{

//---- check selection result

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)

{

if (Debug==true) Print("Access to history failed with error (",GetLastError(),")");

break;

}

if (OrderType()==OP_BUY && OrderComment()=="LONG")

{

..take some action...

}

if (OrderType()==OP_SELL && OrderComment()=="SHORT")

{

..take some action...

}

}

[/code]

And when a buy order was in place using OrderSelect I identified this using "LONG" as comment (and "SHORT" if a sell order) :

[code]

Sell:

..

..

OrderSend(Symbol(),OP_SELL,Lots,Entry,Slippage,StopLoss,TakeProfit,"SHORT",0,0);

..

..

Buy:

..

..

OrderSend(Symbol(),OP_BUY,Lots,Entry,Slippage,StopLoss,TakeProfit,"LONG",0,0);

..

..

Может быть не поддерживается OrderComment с использованием режима MODE_HISTORY? И если да, то как я могу решить эту проблему?

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

Skyline

 
skyline:
Привет всем

есть ли способ с помощью функции HistoryTotal найти конкретный ордер (на покупку или продажу), который был закрыт?

Я пробовал с этим кодом, но, похоже, он не работает:

int hstTotal=HistoryTotal();

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

{

//---- check selection result

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)

{

if (Debug==true) Print("Access to history failed with error (",GetLastError(),")");

break;

}

if (OrderType()==OP_BUY && OrderComment()=="LONG")

{

..take some action...

}

if (OrderType()==OP_SELL && OrderComment()=="SHORT")

{

..take some action...

}

}

[/code]

And when a buy order was in place using OrderSelect I identified this using "LONG" as comment (and "SHORT" if a sell order) :

[code]

Sell:

..

..

OrderSend(Symbol(),OP_SELL,Lots,Entry,Slippage,StopLoss,TakeProfit,"SHORT",0,0);

..

..

Buy:

..

..

OrderSend(Symbol(),OP_BUY,Lots,Entry,Slippage,StopLoss,TakeProfit,"LONG",0,0);

..

..

Возможно, не поддерживается OrderComment с использованием режима MODE_HISTORY? И если да, то как я могу решить эту проблему?

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

Скайлайн

Скайлайн,

Имейте в виду, что брокер будет добавлять в комментарий свои собственные комментарии к ордеру по разным причинам, и всегда тогда, когда ордер закрывается по SL или TP. Каковы критерии для поиска сделок? Как только вы определите это, вы получите решение.

 
Nicholishen:
Skyline, Имейте в виду, что брокер будет добавлять в комментарий свои собственные комментарии к ордеру по разным причинам, и всегда, когда потом ордер закрывается по SL или TP. Каковы критерии для поиска сделок? Как только вы определите это, вы получите решение.

О, это не очень хорошая новость :|

В любом случае, я пытаюсь объяснить свою проблему: в моем советнике у меня есть различные виды покупки (или продажи), у меня есть вид, который должен быть открыт всякий раз, когда выполняется условие, также много раз в день (что-то вроде того, что когда цена проникает через EMA, тогда размещается ордер), и другой вид, который должен быть запущен только один раз в день в зависимости от различных условий, основанных на различных EMA. Таким образом, я должен позволить первому типу ордеров на покупку/продажу открывать/закрывать ордера много раз в день, в то время как второй тип ордеров на покупку/продажу должен открываться только один раз в день, поэтому я подумал, что если бы я мог каким-то образом локализовать любой тип ордеров на покупку/продажу в истории, я мог бы решить свою проблему, но, похоже, это невозможно.

 

значения дневного графика

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

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

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

Здравствуйте,

Я пытаюсь получить значения high, low, open, close за предыдущий день @ 0 GMT для моего советника. Он работает нормально для всех дней, кроме воскресенья в MIG и IBFX, где он получает значения для воскресенья из субботы, а не из пятницы. FXDD получает значения корректно от закрытия пятницы, так как у него нет нового бара для субботы.

Он кодируется как:

High[1], Low[1], Close[1] и т.д. Как мне исправить код для воскресенья, чтобы он получал значения только от закрытия пятницы, а не субботы. Пожалуйста, помогите!

 
payal:
Привет,

Я пытаюсь получить значения high, low, open, close за предыдущий день @ 0 GMT для моего советника. Он работает нормально для всех дней, кроме воскресенья в MIG и IBFX, где он получает значения для воскресенья из субботы, а не из пятницы. FXDD получает значения корректно от закрытия пятницы, так как у него нет нового бара для субботы.

Это закодировано как:

High[1], Low[1], Close[1] и т.д. Как мне исправить код для воскресенья, чтобы он получал значения только от закрытия пятницы, а не субботы. Пожалуйста, помогите!

Судя по вашему описанию, я предполагаю, что вы используете это на дневном графике?

Чтобы ответить на ваш вопрос, вот как я бы решил эту проблему.

if (DayOfWeek() == 0)

{

High[2], Low[2], Close[2], //etc

}

else

{

High[1], Low[1], Close[1],//etc

)

Конечно, вы должны расположить high low и close так, как вы их используете.

 
payal:
Привет,

Я пытаюсь получить значения high, low, open, close за предыдущий день @ 0 GMT для моего советника. Он работает нормально для всех дней, кроме воскресенья в MIG и IBFX, где он получает значения для воскресенья из субботы, а не из пятницы. FXDD получает значения корректно от закрытия пятницы, так как у него нет нового бара для субботы.

Это закодировано как:

High[1], Low[1], Close[1] и т.д. Как мне исправить код для воскресенья, чтобы он получал значения только с закрытия пятницы, а не субботы. Пожалуйста, помогите!

Проверьте этот файл https://c.mql5.com/forextsd/forum/4/fibopiv_v3.mq4

Там вы найдете ответ на свой вопрос.

С уважением,

Кейл

 

Спасибо.

Eaglehawk:
Судя по вашему описанию, я предполагаю, что вы используете это на дневном графике?

чтобы ответить на ваш вопрос, вот как я решил бы эту проблему.

if (DayOfWeek() == 0)

{

High[2], Low[2], Close[2], //etc

}

else

{

High[1], Low[1], Close[1],//etc

)
конечно, вы бы расположили high low и close так, как вы их используете .

Большое спасибо. Хорошего дня!!!

 

Спасибо.

Kalenzo:
Проверьте этот файл https://c.mql5.com/forextsd/forum/4/fibopiv_v3.mq4

Вы найдете ответ на свой вопрос там.

С уважением,

Kale

Спасибо, удачного дня!!!

 

Есть ли какой-нибудь индикатор, который может показать нам high0low каждого бара в значении сверху или снизу каждого бара?