Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Как создать бивалютную корзину? Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Июн 07, 2012 1:11 am Ответить с цитатой Вернуться к началу

srom_tr писал(а):
Еще можно выставить флаг в настройках на "Pad and align to reference symbol", тогда тоже дополняет пропущенные даты.

Хм. Думал эта настройка относится только к работе тестера. Не думал, что на Skan влияет...
srom_tr писал(а):

Но тут у меня другая вылезла проблема - он в конце добавляет строки с одними нулями.

Я хочу их отсечь, сделав проверку Close > 0, но как в условии If можно подставить текущее значение Close при переборе Scan? LastValue() и CurrentValue() не помогают.

В смысле куда в конце??? В любом случае ничего не сделаешь. Если уж он решил добавить запись в базу, то добавит не зависимо от того, есть C > 0 или нет. Возможно сработает выставить диапазон в настройках АА так, чтобы даты куда Ами пихает ноли не заполнялись.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
srtrade



Зарегистрирован: 09.11.2010
Сообщения: 233

СообщениеДобавлено: Чт Июн 07, 2012 1:37 am Ответить с цитатой Вернуться к началу

Фильтр на рынки и прочее работает, а фильтр на даты нет. Ставишь диапазон - игнорирует.

В анализаторе вообще нельзя что-ли нельзя как-то получить текущее значение Close, с которым он в данный момент работает?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Июн 07, 2012 2:17 am Ответить с цитатой Вернуться к началу

Почему нельзя? Можно.
Но толку от этого не будет. Ну выловил ты момент когда данных нет (C == 0), но он всеравно добавит запись в композитный символ, поставит дату/время и OHLC = 0

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
srtrade



Зарегистрирован: 09.11.2010
Сообщения: 233

СообщениеДобавлено: Чт Июн 07, 2012 9:11 am Ответить с цитатой Вернуться к началу

Вот мой код:

Код:

procedure Composite_Basket (Basket_Name, Weight)
{
 AddToComposite(Weight*O, Basket_Name, "O", atcFlagDeleteValues );
 AddToComposite(Weight*H, Basket_Name, "H", atcFlagDeleteValues );
 AddToComposite(Weight*L, Basket_Name, "L", atcFlagDeleteValues );
 AddToComposite(Weight*C, Basket_Name, "C", atcFlagDeleteValues );
}

_SECTION_BEGIN( "Basket_USDEUR" );

Filter = C > 0;

Basket_Name = "Basket_USDEUR";
MarketID_Currency = 5;

switch ( Name() )
{
 case "USDRUB": Weight = 0.55; break;
 case "EURRUB": Weight = 0.45; break;
 default: Weight = 0; break;
}

if (Weight > 0) Composite_Basket (Basket_Name, Weight);
CategoryAddSymbol(Basket_Name, categoryMarket, MarketID_Currency);
_SECTION_END();


Если в If вставить доппроверку на С>0, то все будет нормально. Как это сделать?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Июн 07, 2012 1:10 pm Ответить с цитатой Вернуться к началу

if (Weight > 0 AND С > 0)

Думаю не поможет....

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
srtrade



Зарегистрирован: 09.11.2010
Сообщения: 233

СообщениеДобавлено: Чт Июн 07, 2012 1:22 pm Ответить с цитатой Вернуться к началу

Пробовал, выдает ошибку: "Close - это массив и он не может быть использован в IF".
LastValue() и CurrentValue() не помогают.

Может есть какая-то команда типа Stop, чтобы принудительно заставить остановить дальнейшее сканирование?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Июн 07, 2012 4:58 pm Ответить с цитатой Вернуться к началу

Нет. В том и дело, что массив обрабатывается не последовательно, а весь сразу целиком и нельзя обработать пол массива, а половину оставить. Точнее можно, но только в цикле.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen