[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 341
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сохраненные пар-ры "вбиваются" в индикаторы один раз при инициализации шаблона, потом "они становятся совершенно независимыми"/
Все измененные параметры индик. сохраняются в шаблон, если изменили пар-ры инд. пересохраните шаблон.
Спасибо!
mazepa 08.12.2009 17:42
ОТВЕТ: на КОД!
Если я понял алгоритм, то в установленое время открываем бай (селл), если цена прошла >10 пунктов в другую сторону, то закрываем ордер и встаем в противоположную сторону.
Для закрытия я использую собственную универсальную функцию.
//Функция закрытия всех рыночных ордеров в окне--------------------------------------------------------------------------------------------------
void _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //перебираем все ордера по всем валютам
{
if (OrderSelect(i,SELECT_BY_POS)==true) //если ордер выбран успешно
{
if (OrderSymbol()!=Symbol()) continue; //если выбранный ордер не по той валюте то продолжаем перебор
{
switch(OrderType()) //в нужном ордере определяем тип (Bue_Sell) и закрываем
{
case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
case 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
return;
}
Тоесть теперь прежде чем открыться в противоположном направлении пишешь просто _CloseAllOrder()
Друзья, я только учусь. Просьба не смотреть на содержимое программы, а просто помочь мне найти ошибку в программе:
int start()
{
switch(CurrentState)
{
case STATE_SHORT:
MyOrderTicket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 1, 0, 0,NULL, 1, 0, Red);
OrderSelect(MyOrderTicket,SELECT_BY_TICKET);
if (OrderModify(OrderTicket(),OrderOpenPrice(),Bid+90*Point,Bid-Profit1*Point,0,Green)==true)
{CurrentState=STATE_1;
break;
}
case STATE_1:
OrderSelect(MyOrderTicket,SELECT_BY_TICKET);
if(Ask <= OrderTakeProfit())
{CurrentState=STATE_SHORT;
break;
}
if(Bid >= (OrderOpenPrice()+Profit1*Point)
{CurrentState=STATE_SHORT;
break;
}
}
//----
return(0);
}
Ошибка следующая: '\end_of_program' - unbalanced left parenthesis. Где ошибка?
Друзья, я только учусь. Просьба не смотреть на содержимое программы, а просто помочь мне найти ошибку в программе:
Есть:
надо:
Как объявить одномерный массив не применяя запись по каждой ячейке памяти(возможно ли)
а одномерной последовательностью
или одномерная последовательность только для числовых и логических констант!!?
Есть:
надо:
Спасибо, друг!
Ещё один вопросик есть. Если if (OrdersTotal()==0) это... если количество открытых ордеров равно нулю... то как будет...если количество открытых ЗА ДЕНЬ ордеров равно нулю.
Нет чего-нибудь типа OrdersDayTotal?
нету, но всегда можно написать свою функцию)
считаются ордера Buy и Sell, по заданному инструменту, открытых за сегодня. Без отложенных.
if(OrdersDayTotal(Symbol())==0) {...}
как-то так)
mazepa 08.12.2009 17:42
ОТВЕТ: на КОД!
Если я понял алгоритм, то в установленое время открываем бай (селл), если цена прошла >10 пунктов в другую сторону, то закрываем ордер и встаем в противоположную сторону.
Для закрытия я использую собственную универсальную функцию.
//Функция закрытия всех рыночных ордеров в окне--------------------------------------------------------------------------------------------------
void _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //перебираем все ордера по всем валютам
{
if (OrderSelect(i,SELECT_BY_POS)==true) //если ордер выбран успешно
{
if (OrderSymbol()!=Symbol()) continue; //если выбранный ордер не по той валюте то продолжаем перебор
{
switch(OrderType()) //в нужном ордере определяем тип (Bue_Sell) и закрываем
{
case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
case 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
return;
}
Тоесть теперь прежде чем открыться в противоположном направлении пишешь просто _CloseAllOrder()
функция бомба она у меня занимала пару страниц.Огромное спасибоmazepa 08.12.2009 17:42
ОТВЕТ: на КОД!
Если я понял алгоритм, то в установленое время открываем бай (селл), если цена прошла >10 пунктов в другую сторону, то закрываем ордер и встаем в противоположную сторону.
Для закрытия я использую собственную универсальную функцию.
//Функция закрытия всех рыночных ордеров в окне--------------------------------------------------------------------------------------------------
void _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //перебираем все ордера по всем валютам
{
if (OrderSelect(i,SELECT_BY_POS)==true) //если ордер выбран успешно
{
if (OrderSymbol()!=Symbol()) continue; //если выбранный ордер не по той валюте то продолжаем перебор
{
switch(OrderType()) //в нужном ордере определяем тип (Bue_Sell) и закрываем
{
case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
case 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
return;
}
Тоесть теперь прежде чем открыться в противоположном направлении пишешь просто _CloseAllOrder()
функция бомба она у меня занимала пару страниц.Огромное спасибо