Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Есть. В хелпере Квика.
Раздел 6. Совместная работа с другими приложениями =>
Импорт транзакций =>
Формат .tri-файла с параметрами транзакций |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
000 писал(а): |
Можно и так, но есть пара нюансов.
1. Важный. Где будем хранить OutOfMarket?
Если просто как переменноую в Ами, то при перезапуске Ами он обнулится. Надо либо в фаил, либо (что проще) в блокнот Ами
Кроме того, приведенный способ годится только при торговле одной бумаги. |
А что за блокнот Ами? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
См. функции
NoteGet( ''Symbol'' )
NoteSet( ''Symbol'', ''Text..'' ) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
000 писал(а): |
См. функции
NoteGet( ''Symbol'' )
NoteSet( ''Symbol'', ''Text..'' ) |
Спасибо, уже не надо)))
Ко мне по мылу уведомления об ответах в теме так и не приходят... Это так и должно быть? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Хм. У меня в настройках стоит Всегда сообщать мне об ответах: - НЕТ Однако сообщения приходят. Я как то не придавал этому значения. Попробуй тоже НЕТ поставить. Может тогда будут приходить? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Яхфар
Зарегистрирован: 24.04.2011
Сообщения: 74
|
Добрый день! Решил вот недавно запустить простенького робота на SiM2.
K сожалению обнаружил, что Ами может рисовать график тока SIM2. То ест ьв название графика могут быть только заглавные буквы, а не строчные. Из за этого робот не работает....можно ли это как т о обойти..... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
shaly
Зарегистрирован: 01.07.2008
Сообщения: 53
Откуда: Омск
|
Есть ли еще какие-либо особенности при создании робота на тиках кроме
////////// Правила системы ///////////////
TimeFrameMode(1);
TimeFrameSet(1000);
условия торговли
TimeFrameRestore();
и соответственно выставления в настройках 1000 tick? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Это как раз не нужно
Поменять надо тут
Код: |
if (TimeFrame == Interval() AND Permit_Ticker) |
и в настройках. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
shaly
Зарегистрирован: 01.07.2008
Сообщения: 53
Откуда: Омск
|
|
Посмотреть профиль Отправить личное сообщение |
|
DennyV8
Зарегистрирован: 11.01.2022
Сообщения: 100
|
Дабы не плодить новых тем, спрошу тут, так как использую этого робота.
Вопрос такой :
Можно ли прочитать из файла TRI последнюю отправленную транзакцию, например BUY и сказать роботу что низя больше слать в этот файл BUY, а можно только SELL, ну и наоборот, если была продажа SELL в TRI файле, то больше SELL не слать , а слать только BUY. Думаю что все это поможет избежать повторных срабатываний на текущем баре (т.е. было пересечение-прошел сигнал - запись в TRI, потом был откат внутри свечи и сигнал снялся), так как входы/выходы у меня на нем.
Может это уже проскакивало на форуме, чет не могу найти. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Из файла читать запросто. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
DennyV8
Зарегистрирован: 11.01.2022
Сообщения: 100
|
000 писал(а): |
Из файла читать запросто. |
Вот уже полдня читаю сижу )
После велслаба непривычно как-то...Нашел Ваш пример по поиску строк в файле, из него попытался преобразовать, но ничего не печатает в окне 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
|
Ну вот вышеприведенный код. На выходе из цикла
if(fh)
{
}
переменная str будет содержать последнюю (нижнюю) строку |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
DennyV8
Зарегистрирован: 11.01.2022
Сообщения: 100
|
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
|
Правильно ли я понял, что код строки с переменной будет такой и этим надо оперировать
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);
}
} |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
|