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


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

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

Обрати внимание на это место в роботе
Код:

  ifbuy=IIf(Buy[BarCount-1]==1,1,0); 
  ifsell=IIf(Sell[BarCount-1]==1,1,0); 
  ifshort=IIf(Short[BarCount-1]==1,1,0); 
  ifcover=IIf(Cover[BarCount-1]==1,1,0);   

А потом прочитай в хелпере коментарии к функции Equity(). Обрати внимание чему равны Sell и Cover при срабатывании стопа.

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



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

СообщениеДобавлено: Пт Окт 16, 2009 9:09 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Обрати внимание на это место в роботе
Код:

  ifbuy=IIf(Buy[BarCount-1]==1,1,0); 
  ifsell=IIf(Sell[BarCount-1]==1,1,0); 
  ifshort=IIf(Short[BarCount-1]==1,1,0); 
  ifcover=IIf(Cover[BarCount-1]==1,1,0);   

А потом прочитай в хелпере коментарии к функции Equity(). Обрати внимание чему равны Sell и Cover при срабатывании стопа.


Написано что в этом случае при стоп лосс возвращается "2".

Олег, намекни еще глубже)))
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Сб Окт 17, 2009 8:00 am Ответить с цитатой Вернуться к началу

Ну у тебя в коде написано, что если sell == 1, то ifsell == 1,
а вслучае если sell == 2 ifsell будет 0 и транзакция не пройдет....

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



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

СообщениеДобавлено: Сб Окт 17, 2009 10:16 am Ответить с цитатой Вернуться к началу

000 писал(а):
Ну у тебя в коде написано, что если sell == 1, то ifsell == 1,
а вслучае если sell == 2 ifsell будет 0 и транзакция не пройдет....

Черт) у меня были подозрения но испугался, думал что так просто и логично все быть не может....

получается, что нужно значит так:

Код:

ifbuy=IIf(Buy[BarCount-1]==1,1,0); 
  ifsell=IIf((Sell[BarCount-1]==1) or (Sell[BarCount-1]==2),1,0); 
  ifshort=IIf(Short[BarCount-1]==1,1,0); 
  ifcover=IIf((Cover[BarCount-1]==1) or (Cover[BarCount-1]==2),1,0);   


И потом ниже нужно сделать Equty (1)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

В общем да, но можно просто
Код:

ifsell = Sell[BarCount-1] > 0;

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



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

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

000 писал(а):
В общем да, но можно просто
Код:

ifsell = Sell[BarCount-1] > 0;

Супер) Спасибо Олег большое в очередной раз за помощь)

Ну теперь все. Вроде все сделано в полном объеме. Прогоню робота в понедельник и если все окей, выложу тут полный код робота!
Посмотреть профиль Отправить личное сообщение
Orange2000



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

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

После некоторой корректировки кода утром все заработало отлично! УРА!

Олег, для полноты картины остался маленький вопрос не решен, с датой действия ордера в строчке:
Код:

function OrderBuy(vblots,vbprice)
vbordernum = AD.CreateLimitOrder (Acco, "FORTS", "RTSI-12.09", "24.10.09 23:00", "Buy comment", "RUR", "B", vblots, vbprice, Null, Null.........

Вместо "24.10.09 23:00" типа как-нибудь может Date+1...?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Вот какой способ нашел.
Код:

EnableScript("vbscript");
<%
Dim AD
Set AD = CreateObject("ADLite.AlfaDirect")

function Order(acc, mark, tick, vbdata, vblots, vbprice, bs)
vbordernum = AD.CreateLimitOrder (acc, mark, tick, vbdata, " ", "RUR", bs, vblots, vbprice, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, -1)
Order = vbordernum
End function
%>

Потом при вызове функции делаем так
Код:

OrderNum = script.Order (Account, Market, Nam, Now(1) + " 23:59:59", Lot, LastValue(C) + Otstup, "B");

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



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

СообщениеДобавлено: Пн Окт 19, 2009 2:15 pm Ответить с цитатой Вернуться к началу

Готовый код в первом сообщении
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Окт 19, 2009 2:17 pm Ответить с цитатой Вернуться к началу

Будет настроение переделаю на свой вкус.

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



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

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

000 писал(а):
Будет настроение переделаю на свой вкус.

Было бы здорово)

Олег, а то что при свернутом амиброкере код робота не работает это как-то можно убрать? или это особенности самого амиброкера?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Вот поэтому и не хорошо использовать робота работающего как индикатор. Надо через АА.

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



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

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

000 писал(а):
Вот поэтому и не хорошо использовать робота работающего как индикатор. Надо через АА.


Ясно) Ну это мне не осилить) Вся надежда на тебя)
А пока, придется подвесить ноут специально для робота, что бы там ничего не трогать)
Посмотреть профиль Отправить личное сообщение
reciffoksir



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

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

Зачем код стерли? Такое хорошее дело сделали и облом.
Посмотреть профиль Отправить личное сообщение
Orange2000



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

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

reciffoksir писал(а):
Зачем код стерли? Такое хорошее дело сделали и облом.

Рабочий код последней редакции робота в первом сообщении данной темы.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen