|
AmiSite.ru
Форум по Ами |
Автор |
Сообщение |
pitero
Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург
|
Пытаюсь перейти с робота типа meh на робота типа ООО
есть 3-4 тикера, лежат в одной группе, таймфрэйм один.
Есть к каждому тикеру индикатор, выдающий сигналы.
Хочу написать робота, который для каждого тикера вызывал свой индикатор посредством include, а собственно обработка текстового файла транзакций шла бы в головной файле робота. Пишу
if (Name()=="RIU8") {
#include "S:\AmiBroker\Formulas\SystemsMy\Work\Tick1.afl";
TickerID=7; // уникальный для каждого индикатора номер
Ticker="RIU8"; // название бумаги в Амиброкере.
Seccode="RIU8"; // код бумаги
}
далее код создания файла (меховский)
код дает ошибку, я так понял, что команду include нельзя затолкать в if ?
Если писать все в одном файле - очень громоздко.
Есть какой-нибудь выход? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
у меня вот этот код прекрасно работает.
Код: |
if(Name()=="EESR")
{
#include "C:\Program Files\AmiBroker\Formulas\1.afl";
// содержимое 1.afl qqq = 5;
}
if(Name()=="SBER")
{
#include "C:\Program Files\AmiBroker\Formulas\2.afl";
// содержимое 2.afl qqq = 2;
}
Plot(qqq, "", colorRed);
|
Версия Ами 5.13 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
pitero
Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург
|
000 писал(а): |
у меня вот этот код прекрасно работает.
Код: |
if(Name()=="EESR")
{
#include "C:\Program Files\AmiBroker\Formulas\1.afl";
// содержимое 1.afl qqq = 5;
}
if(Name()=="SBER")
{
#include "C:\Program Files\AmiBroker\Formulas\2.afl";
// содержимое 2.afl qqq = 2;
}
Plot(qqq, "", colorRed);
|
Версия Ами 5.13 |
не всякий файл видимо можно инклудить. попробовал - простые, да вставляет. рабочий - нет, пишет probably missing semicolon at the end of previous line хотя все нормально там с разделителями - код отдельно работает, без инклуда. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
BabyBear
Советник
Зарегистрирован: 10.12.2008
Сообщения: 53
|
000 писал(а): |
у меня вот этот код прекрасно работает.
Код: |
if(Name()=="EESR")
{
#include "C:\Program Files\AmiBroker\Formulas\1.afl";
// содержимое 1.afl qqq = 5;
}
if(Name()=="SBER")
{
#include "C:\Program Files\AmiBroker\Formulas\2.afl";
// содержимое 2.afl qqq = 2;
}
Plot(qqq, "", colorRed);
|
Версия Ами 5.13 |
Это не правильный код для описанной задачи. Include будет подключать файлы вне зависимости от инструмента. То есть у 000 всегда получится
Код: |
if(Name()=="EESR")
{
qqq = 5;
}
if(Name()=="SBER")
{
qqq = 2;
}
Plot(qqq, "", colorRed);
|
если же в файлы подставить функции будет типа
Код: |
if(Name()=="EESR")
{
function qqq()
{
....
}
}
if(Name()=="SBER")
|
и ничего хорошего не получится
так что использовать include тут нет смысла. я бы написал типа так
Код: |
ind1 = ...
ind2 = ...
if(Name()=="EESR")
{
ind = ind1;
}
if(Name()=="SBER")
{
ind = ind2;
}
|
|
|
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
| |