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


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

СообщениеДобавлено: Вт Ноя 22, 2011 12:20 pm Ответить с цитатой Вернуться к началу

Есть. В хелпере Квика.
Раздел 6. Совместная работа с другими приложениями =>
Импорт транзакций =>
Формат .tri-файла с параметрами транзакций

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



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

СообщениеДобавлено: Ср Дек 07, 2011 2:35 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Можно и так, но есть пара нюансов.
1. Важный. Где будем хранить OutOfMarket?
Если просто как переменноую в Ами, то при перезапуске Ами он обнулится. Надо либо в фаил, либо (что проще) в блокнот Ами
Кроме того, приведенный способ годится только при торговле одной бумаги.
А что за блокнот Ами?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

СообщениеДобавлено: Ср Дек 07, 2011 2:42 pm Ответить с цитатой Вернуться к началу

См. функции
NoteGet( ''Symbol'' )
NoteSet( ''Symbol'', ''Text..'' )

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



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

СообщениеДобавлено: Пт Фев 10, 2012 8:36 pm Ответить с цитатой Вернуться к началу

000 писал(а):
См. функции
NoteGet( ''Symbol'' )
NoteSet( ''Symbol'', ''Text..'' )
Спасибо, уже не надо)))
Ко мне по мылу уведомления об ответах в теме так и не приходят... Это так и должно быть?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

СообщениеДобавлено: Вс Фев 12, 2012 12:17 pm Ответить с цитатой Вернуться к началу

Хм. У меня в настройках стоит Всегда сообщать мне об ответах: - НЕТ Однако сообщения приходят. Я как то не придавал этому значения. Попробуй тоже НЕТ поставить. Может тогда будут приходить?

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



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

СообщениеДобавлено: Чт Апр 05, 2012 2:34 pm Ответить с цитатой Вернуться к началу

Добрый день! Решил вот недавно запустить простенького робота на SiM2.
K сожалению обнаружил, что Ами может рисовать график тока SIM2. То ест ьв название графика могут быть только заглавные буквы, а не строчные. Из за этого робот не работает....можно ли это как т о обойти.....
Посмотреть профиль Отправить личное сообщение
shaly



Зарегистрирован: 01.07.2008
Сообщения: 53
Откуда: Омск

СообщениеДобавлено: Пт Июн 22, 2012 5:32 am Ответить с цитатой Вернуться к началу

Есть ли еще какие-либо особенности при создании робота на тиках кроме


////////// Правила системы ///////////////
TimeFrameMode(1);
TimeFrameSet(1000);
условия торговли
TimeFrameRestore();

и соответственно выставления в настройках 1000 tick?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Июн 22, 2012 7:58 am Ответить с цитатой Вернуться к началу

Это как раз не нужно
Поменять надо тут
Код:
if (TimeFrame == Interval() AND Permit_Ticker)

и в настройках.

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



Зарегистрирован: 01.07.2008
Сообщения: 53
Откуда: Омск

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

Спасибо
Посмотреть профиль Отправить личное сообщение
DennyV8



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

СообщениеДобавлено: Пт Янв 14, 2022 10:27 am Ответить с цитатой Вернуться к началу

Дабы не плодить новых тем, спрошу тут, так как использую этого робота.

Вопрос такой :

Можно ли прочитать из файла TRI последнюю отправленную транзакцию, например BUY и сказать роботу что низя больше слать в этот файл BUY, а можно только SELL, ну и наоборот, если была продажа SELL в TRI файле, то больше SELL не слать , а слать только BUY. Думаю что все это поможет избежать повторных срабатываний на текущем баре (т.е. было пересечение-прошел сигнал - запись в TRI, потом был откат внутри свечи и сигнал снялся), так как входы/выходы у меня на нем.
Может это уже проскакивало на форуме, чет не могу найти.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Янв 14, 2022 11:57 am Ответить с цитатой Вернуться к началу

Из файла читать запросто.

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



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

СообщениеДобавлено: Пт Янв 14, 2022 3:05 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Из файла читать запросто.


Вот уже полдня читаю сижу Smile)
После велслаба непривычно как-то...Нашел Ваш пример по поиску строк в файле, из него попытался преобразовать, но ничего не печатает в окне Commentary. В этом примере хотел найти в файле количество лотов.

Может есть функция просто прочитать последнюю строку из файла а потом ее уже можно разбирать.

// чтение из файла строки 1

Код:
   fh = fopen("C:/robots/trans.tri","r");
   if(fh)
   {
      while (! feof(fh))
      {
         str = fgets(fh); // строка из файла
         StrReplace(str, "; ", ","); // замена ; на ,
      
         str1 = StrExtract( str, 1 ); // первый элемент строки
         StrFind(str1, "QUANTITY");
         pos = StrFind(str1, "=");
         pr = StrRight( str1, pos);
         pr = StrToNum (pr);   
      }
   
      fclose(fh);
   }
 printf("Количество", pr);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Янв 14, 2022 4:34 pm Ответить с цитатой Вернуться к началу

Ну вот вышеприведенный код. На выходе из цикла

if(fh)
{
}
переменная str будет содержать последнюю (нижнюю) строку

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



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

СообщениеДобавлено: Пт Янв 14, 2022 5:18 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Ну вот вышеприведенный код. На выходе из цикла

if(fh)
{
}
переменная str будет содержать последнюю (нижнюю) строку


Догнал, я чет все в цикл засунул.
Нашел классную штуку _TRACE, с помощью нее уменьшил код и в итоге получил нужную букву

// чтение из файла строки

fh = fopen("C:/robots/trans.tri","r");
if(fh)
{
while (! feof(fh))
{
str = fgets(fh); // строка из файла

}
fclose(fh);

}

//_TRACE( str );

st = StrReplace(str, "; ", ","); // замена ; на ,
//_TRACE( st );

str1 = StrExtract( st, 3 ); // находим OPERATION=S
//_TRACE( str1 );

oper = StrRight( str1, 1); // забираем все что после =
_TRACE( oper );

переменная oper выдает - B, как раз когда была покупка последняя, теперь самое интересное для меня начнется, прикрутить условие к системе ))
Посмотреть профиль Отправить личное сообщение
DennyV8



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

СообщениеДобавлено: Сб Янв 15, 2022 3:28 am Ответить с цитатой Вернуться к началу

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

if oper == "B"
if oper == "S"

Попробовал вставить в разных местах кода, не выходит каменный цветок.

В какую чаcть кода обычно ставятся такого плана уcловия?

Вот код который, как я понял, отвечает за запись в TRI файл, я попробовал сюда вставить, но чет не хочет ))

Условие нужно такое - Если BUY и если oper == "S" (последняя сделка была продажа) - то обрабатываем только сигнал BUY. Ну и для SELL наоборот.

Код:
if (TimeFrame == Interval() & FullName() != "")
{
   if(Buy)
   {
      price = Close[BarCount-1] + Otstup;
      dir = "1";
       makeandsave("B", price);
   }
   if(Sell)
   {
      price = Close[BarCount-1] - Otstup;
      dir = "2";
      makeandsave("S", price);
   }

}
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen