Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Обрати внимание на это место в роботе
Код: |
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
|
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
|
Ну у тебя в коде написано, что если sell == 1, то ifsell == 1,
а вслучае если sell == 2 ifsell будет 0 и транзакция не пройдет.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
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
|
В общем да, но можно просто
Код: |
ifsell = Sell[BarCount-1] > 0;
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
000 писал(а): |
В общем да, но можно просто
Код: |
ifsell = Sell[BarCount-1] > 0;
|
|
Супер) Спасибо Олег большое в очередной раз за помощь)
Ну теперь все. Вроде все сделано в полном объеме. Прогоню робота в понедельник и если все окей, выложу тут полный код робота! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
После некоторой корректировки кода утром все заработало отлично! УРА!
Олег, для полноты картины остался маленький вопрос не решен, с датой действия ордера в строчке:
Код: |
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
|
Вот какой способ нашел.
Код: |
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
|
Готовый код в первом сообщении |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Будет настроение переделаю на свой вкус. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
000 писал(а): |
Будет настроение переделаю на свой вкус. |
Было бы здорово)
Олег, а то что при свернутом амиброкере код робота не работает это как-то можно убрать? или это особенности самого амиброкера? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот поэтому и не хорошо использовать робота работающего как индикатор. Надо через АА. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
000 писал(а): |
Вот поэтому и не хорошо использовать робота работающего как индикатор. Надо через АА. |
Ясно) Ну это мне не осилить) Вся надежда на тебя)
А пока, придется подвесить ноут специально для робота, что бы там ничего не трогать) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
reciffoksir
Зарегистрирован: 27.10.2009
Сообщения: 11
|
Зачем код стерли? Такое хорошее дело сделали и облом. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
reciffoksir писал(а): |
Зачем код стерли? Такое хорошее дело сделали и облом. |
Рабочий код последней редакции робота в первом сообщении данной темы. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|