Я бы посоветовал для добавлять условия по частям.
Второе,ещё у тебя в первом критерии:
Close[1] > High[1]...
но ведь цена закрытия не может быть выше верхней тени свечи,
в случае свечки без верхней тени её цена закрытия может быть равна её верхней тени.
Вот у тебя данное условие никогда не выполняется. Я так понял ты хотел поставить условие отсутствия верхней тени.
Кстати, и в других критериях у тебя подобное.
Я бы посоветовал для добавлять условия по частям.
Второе,ещё у тебя в первом критерии:
Close[1] > High[1]...
но ведь цена закрытия не может быть выше верхней тени свечи,
в случае свечки без верхней тени её цена закрытия может быть равна её верхней тени.
Вот у тебя данное условие никогда не выполняется. Я так понял ты хотел поставить условие отсутствия верхней тени.
Кстати, и в других критериях у тебя подобное.
От души благодарю, все из-за невнимательности, там ведь по условию в данном случае цена закрытия следующей свечки должна быть выше
максимума предыдущей, т.е. Close[0]>High[1], a ne Close[1]>High[1], суйчас проверю на истории. От души благодарю за внимание.
уважвемые господа программисты помогите пожалуйста: Как сделать чтобы 1. при срабатывании условия ордер выставлялся только один раз(у меня выставляется на каждом тике) 2. условие которое сработало, больше не участвовало в программе(пропускалось) до тех пор,пока не закроется ордер выставленный по этому условию. ПРИМЕР if (условие) OrderSend(Symbol(),op_sellstop (далее любые параметры) if(2 условие) OrderSend(Symbol(),op-sellstop ( ) и так далее
f(OrdersTotal<1)
OrderSend(Symbol(),op_sellstop (далее любые параметры)).вот теперъ он будет открыватъ толъко один ордер.
Ребят. Код вставляйте правильнее пож.
Где текст набираете есть панель выше,там такая кнопочка- код. Или Ctrl+Alt+M
Нельзя. Так как функция OrdersTotal() лишь возвращает количество выставленных ордеров.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте уважаемые господа программисты, будьте добры подскажите либо прокомментируйте, может будут у кого либо мысли по данному вопросу?
В инклюде советника на вычисление различных торговых критериев на комбинациях МА, индикаторах (Аллигатор, сстох и т.д.) все работает, советник тестируется на истории, открывает ордера, работает в режиме реального времени и т.д. Но при подключении в инклюд стратегии, основанной на правиле 4-х недель Д.Мерфи: 1. цена закрытия выше макс цены за последние 20 дней - Открытие Buy, 2.цена закрытия ниже мин цены за последние 20 дней
- Открытие Sell, 3. цена закрытия ниже мин цены за последние 10 дней - Закрытие Buy, 4. цена закрытия выше макс цены за последние 10 дней - Закрытие Sell, все компилируется, но советник на истории (закачана вся) не работает, ордера не открываются, хотя условия были. Условия открытия, закрытия ордеров я тупо прописал не циклами, а на основе массивов-таймсерий, (при органицации циклов) тоже не работает. Индикатор, изготовленный на таком же
коде все кажет исправно.
//--------------------------------------------------------------------
// Criterion.mqh
//
//--------------------------------------------------------------- 1 --
// Функция вычисления торговых критериев.
// Возвращаемые значения:
// 10 - открытие Buy
// 20 - открытие Sell
// 11 - закрытие Buy
// 21 - закрытие Sell
// 0 - значимых критериев нет
// -1 - используется другой финансовый инструмент
//--------------------------------------------------------------- 2 --
//--------------------------------------------------------------- 3 --
int Criterion() // Пользовательская функция
{
string Sym="EURUSD";
if (Sym!=Symbol()) // Если не наш фин. инструмент
{
Inform(16); // Сообщение..
return(-1); // .. и выход
}
// Вычисление торговых критериев
if (Close[0] > High[1]>High[2] && High[1]>High[3] && High[1]>High[4] && High[1]>High[5]&& High[1]>High[6] && High[1]>High[7] && High[1]>High[8] && High[1]>High[9]&& High[1]>High[10] && High[1]>High[11] && High[1]>High[12] && High[1]>High[13]&& High[1]>High[14] && High[1]>High[15] && High[1]>High[16] && High[1]>High[17] && High[1]>High[18] && High[1]>High[19] && High[1]>High[20] && High[1]>High[21])
return(10); // Открытие Buy
if (Close[0] < Low[1]<Low[2] && Low[1]<Low[3] && Low[1]<Low[4] && Low[1]<Low[5]&& Low[1]<Low[6] && Low[1]<Low[7] && Low[1]<Low[8] && Low[1]<Low[9]&& Low[1]<Low[10] && Low[1]<Low[11])
return(11); // Закрытие Buy
if (Close[0] < Low[1]<Low[2] && Low[1]<Low[3] && Low[1]<Low[4] && Low[1]<Low[5]&& Low[1]<Low[6] && Low[1]<Low[7] && Low[1]<Low[8] && Low[1]<Low[9]&& Low[1]<Low[10] && Low[1]<Low[11] && Low[1]<Low[12] && Low[1]<Low[13]&& Low[1]<Low[14] && Low[1]<Low[15] && Low[1]<Low[16] && Low[1]<Low[17] && Low[1]<Low[18] && Low[1]<Low[19] && Low[1]<Low[20] &&Low[1]<Low[21])
return(20); // Открытие Sell
if (Close[0] > High[1]>High[2] && High[1]>High[3] && High[1]>High[4] && High[1]>High[5]&& High[1]>High[6] && High[1]>High[7] && High[1]>High[8] && High[1]>High[9] && High[1]>High[10] && High[1]>High[11])
return(21); // Закрытие Sell
//--------------------------------------------------------------- 6 --
return(0); // Выход из пользов. функции
}
//--------------------------------------------------------------- 7 --