eevviill
Заблокирован
Надо.eevviill, а Max_lots не надо как вводимую переменную в начале прописывать?
Надо.eevviill, а Max_lots не надо как вводимую переменную в начале прописывать?
а как именно описать переменную? double? каким типом вводные переменные описываются если не секрет) а то в синтаксисе этого языка ноль из нулей)
ПС..после пивного застолья( если что не так написал прошу понять(
extern double Max_lot = 122.6;
Думаю потому что перегружается процесор. Ведь то что в коде выполняется даже не на каждом тике, а постоянно.Коллеги! Подскажите плисс..
Вот пример из учебника
while(!IsStopped()) // До тех пор, пока пользователь..
{ // ..не прекратит исполнение программы RefreshRates(); // Обновление данных
//......................Здесь указывается основной код ограммы
Sleep(5); // Небольшая пауза
}
При выполнении этой проги терминал тупо виснет и не хочет больше ни с кем общаться. Только Ctrl+Alt+Del заставляет (после удаления этой функции и компиляции проги) оживить его.
Ни кто не подскажет как "общаться" с этой прогой?
Спасибо но не понимаю.Вы не задали размерность массива
в Вашем случае:
double Mins[2];
Mins[1]=EMPTY_VALUE;
Alert(Mins[1]);
OrderSend(string symbol, OP_BUYLIMIT, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime 86400, color arrow_color=CLR_NONE)
if( (time[0] == ВРЕМЯ, ГДЕ ОРДЕР НУЖНО ЗАКРЫТЬ ) && ( Ordertype >= 1 ))
{
Orderclose();
}
У меня следующая ситуация. Совок ставит в определённое время, а точнее, по закрытия свечи на D1 отложенный ордер - лимитник по канкретной цене. Если лимитник не сработал к закрытию следующей свечи на, то его нужно просто удалить.
Если вариантов несколько как я понимаю:
1. Можно дать параметру expiration функции OrderSend() значение, т.е. просчитать его и задать ровно 24 часа в секундах, итого получиться (60 * 60) *24 часа = 86400 секунд.
Т.е. ордер будет иметь такой вид(если байлимит):
PHP:OrderSend(string symbol, OP_BUYLIMIT, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime 86400, color arrow_color=CLR_NONE)
2. Другой вариант, будет таким, что можно создать условие типа:
PHP:if( (time[0] == ВРЕМЯ, ГДЕ ОРДЕР НУЖНО ЗАКРЫТЬ ) && ( Ordertype >= 1 )) { Orderclose(); }
Т.е. если время, в которое истекает срок его закрытия пришло и тип ордера - отложенник.. ЗАКРЫВАЕМ ЕГО.
Прошу подсказать как более грамотно реализовать данный момент.
А может есть ещё какие варианты?
static int prevtime = 0;
prevtime = iTime(Symbol(),0,0);
if (iTime(Symbol(), 0, 0) == prevtime) {Sleep(50);return(0);}
prevtime = iTime(Symbol(),0,0);
ПАРНИ ПОМОГИТЕ .
НУЖЕН БОТ КОТОРЫЙ БУДЕТ ЗАКРЫВАТЬ ВСЕ ОТКРЫТЫЕ СДЕЛКИ ЕСЛИ ОНИ НЕ ПОДПАДАЮТ ПОД УСЛОВИЕ: РАБОТА РАЗРЕШЕНА ТОЛЬКО ПЕРВЫЕ ПОЛ ЧАСА ПОСЛЕ ЗАКРЫТИЯ ЧЕТЫРЕХ ЧАСОВОЙ СВЕЧИ(ЗАПРЕТ ДЛЯ ВСЕХ ОРДЕРОВ В ТОМ ЧИСЛЕ И ОТЛОЖЕННЫХ).
И ВСЕ
С УВАЖЕНИЕМ ИЛЬЯ.
iTime(Symbol(),0,0)
CloseOrders(ВРЕМЯ ЗАКРЫТИЯ)
if time[0] == ВРЕМЯ ЗАКРЫТИЯ,
{
orderсlose();
}
Это тебе нужен не бот, а сову дописать. Ты хочешь, что бы закрывались только сделки, которые не подпадают под условие только? Т.е. они открылись по условию, а к закрытию свечи H4 условия уже не те, верно?
А ордера, которые не противоречат условиям должны остаться открыты?
НУЖЕН БОТ КОТОРЫЙ БУДЕТ ЗАКРЫВАТЬ ВСЕ ОТКРЫТЫЕ СДЕЛКИ ЕСЛИ ОНИ НЕ ПОДПАДАЮТ ПОД УСЛОВИЕ
Нет они не должны открыться вообще то есть конечно бот не может запретить но он может сразу закрыть.
Ну так всё правильно. Советник будет на открытии свечи проверять условия. Или тебе надо открыто в 15, проверка на следующий день в 15?eevviill, то что ты написал, это, можно так выразиться, ф-ция определения нового бара.
int counted_bars = 0;
bool downloadhistory=false;
if (counted_bars==0 && downloadhistory) // history was downloaded
{
ArrayInitialize(ZigzagBuffer,0.0);
ArrayInitialize(HighMapBuffer,0.0);
ArrayInitialize(LowMapBuffer,0.0);
}
if (counted_bars==0)
{
limit=Bars-ExtDepth;
downloadhistory=true;
}
if (counted_bars>0)
{