[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 216

 

ребята !

как ограничить к-во одновременно заключаемых сделок советником ??

срочно!

спасибо !

if (OrdersTotal()>1 && OrdersTotal()<3) - ?
 

Наконец-то дошло, что ObjectGet(nm,OBJPROP_TIME1) игнорирует время для объекта HLine.

Подскажите как можно определить время создания HLine для вычисления

iHighest(NULL,0,MODE_HIGH,shift,1)в период от создания HLine до текущего момента?

Прочитал ветку о правилах сортировки объектов по именам, идей не добавилось.

 
Operr:

Наконец-то дошло, что ObjectGet(nm,OBJPROP_TIME1) игнорирует время для объекта HLine.

Подскажите как можно определить время создания HLine для вычисления

iHighest(NULL,0,MODE_HIGH,shift,1)в период от создания HLine до текущего момента?



Использовать горизонтальные Trendlines :)
 
У меня торгуют несколько советников на разных терминалах у одного ДЦ. Время от времени они сходятся . Так какой самый лучший способ разводить этих экспертов?
 
TANKER:
У меня торгуют несколько советников на разных терминалах у одного ДЦ. Время от времени они сходятся . Так какой самый лучший способ разводить этих экспертов?

Лучший способ разводить экспертов - на доверии.
 
tara:

Использовать горизонтальные Trendlines :)
Спасибо два раза Дружище! Сам бы не допер,и теперь знаю новый тип объекта.
 

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

Кроме того, скрипт создает только шапку таблицы, сами значения по ордерам отсутствуют.

+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
string FileName;
int Handle;
int ClOp; // разница между закрытием и открытием в пунктах
int spread;// спред по инструменту
int BarYear;// год
int BarDay; // день недели, 0 - восресенье

spread=MarketInfo(Symbol(),MODE_SPREAD); // запомним спред

// сформируем имя файла, например, EURUSD1440.csv
FileName=Symbol()+Period()+".csv";
//откроем файл с именем FileName (создадим указатель/handle на него)
Handle=FileOpen(FileName,FILE_WRITE | FILE_CSV,";");
if (Handle<1)
{
Print("Не удалось открыть файл, ошибка ",GetLastError());
return;
}

// запишем названия столбцов (создание шапки)
FileWrite(Handle,"Дата","Open","High","Low","Close","Close-Open в пунктах",
"Спред в пунктах","День недели","Год");


for (int index=Bars-1;index>=0;index--)
{
// пропустим бары до 2001 года
if (TimeYear(Time[index])<2001) continue;

// прервем (закончим) цикл, если 2005 год мы прошли весь
if (TimeYear(Time[index])>2005) break;

// Выведем High, Low, Open, Close для бара с индексом index
//Print(High[index]," ",Low[index]," ",Open[index]," "
//,Close[index]," бар=",index);
BarYear=TimeYear(Time[index]);
BarDay=TimeDayOfWeek(Time[index]);
ClOp=Close[index]/Point-Open[index]/Point;
FileWrite(Handle,TimeToStr(Time[index]),Open[index],High[index],Low[index],Close[index],ClOp,spread,BarDay,BarYear);
}


//----


//закроем файл (освободим указатель/handle, чтобы файл можно было
//открыть для редактирования другими программами)
if(Handle>0) FileClose(Handle);


return(0);// работа скрипта завершена
}

 
Suliena:

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

Кроме того, скрипт создает только шапку таблицы, сами значения по ордерам отсутствуют.


Я сам не пробовал, думаю нужны разделители. Пробел, табуляция, косой слеш, или т.п. Если делаешь через текстовый файл, то разделители обязательны.

 
smartemiy:

ребята !

как ограничить к-во одновременно заключаемых сделок советником ??

срочно!

спасибо !

NumberOrd - ф-ция, которая считает к-во открытых ордеров.

if (NumberOrd()>3) return(0); - эта запись будет правильной для ограничения заключаемых сделок одновременно?

::: что бы не получилось как на рисунке !

Заранее благодарен!

Удачной торговли!

 
smartemiy:

NumberOrd - ф-ция, которая считает к-во открытых ордеров.

if (NumberOrd()>3) return(0); - эта запись будет правильной для ограничения заключаемых сделок одновременно?

::: что бы не получилось как на рисунке !

Заранее благодарен!

Удачной торговли!