Просмотр сообщений
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - daytrader
16
« on: бХЭвпСап 07, 2011, 12:51:33 pm »
но low все равно работает не очень правльно - он просто показывает все low а не минимальный...
когда почините функцию? или может лучше циклом каким сделать?
17
« on: бХЭвпСап 07, 2011, 10:41:00 am »
у меня два дня подряд на стате висит транзак в 16:30 первый раз перезагрузил, вчера дождался - минут через 5 пришел в себя.
там и там огромное движение на рынке, есть скрипт конечно - но что там может быть не так? в стакан он не смотрит...
18
« on: бХЭвпСап 06, 2011, 01:25:19 pm »
только скорее это объем сделок, а не накопленный объем... тут ведь и выходить могли. Это даже оборот наверное
19
« on: бХЭвпСап 06, 2011, 12:57:53 pm »
спасибо, попробуем
да так работает. Еще вот что заметил, что вариант
#samewindow #line 0 nodraw #line 1 nodraw #line 2 solid green #line 3 solid green function init() { setInitCandles(10); } function calc() { line[0]=high; line[1]=low;
line[2]=line[0][-findMax(line[0], 10)]; line[3]=line[1][-findMin(line[1], 10)]; }
вообще работает корректно. Его даже можно как фракталы использовать. только я там наверное лишние первые две линии сделал, но не суть.
20
« on: бХЭвпСап 06, 2011, 09:40:24 am »
можно вычислить 0-findmax(-line[0] ) получим тоже самое findmin(line[0] )
а вот чой-то не работает
21
« on: РТУгбвР 29, 2011, 01:49:17 pm »
я имею в виду что даже до биржи ничего не дошло, и на брокере вышла ошибка, поэтому методами стандартными ошибку никак не "понять", и не сделать шаг в сторону ее исправления
22
« on: РТУгбвР 26, 2011, 07:05:28 pm »
делаете несколько переменных например order1 order2 order3 и каждому id заявки присваиваете
делаете их static и работаете - проверяете, снимаете и прочее.
23
« on: РТУгбвР 26, 2011, 11:27:42 am »
не могу понять. Ты пишешь: newBalance = balance-trade["quantity"]; и записываешь newBalance в локальную переменную, но далее на запись у тебя идет глоб balance. мы же вроде операций над ней никаких не делали. что заставило static balance; изменить свое значение?
забыл написать balance = newBalance; просто у меня там потом куча кода в зависимости от нового баланса. Обнуляются многие переменные и прочее. Так что я его просто не скопировал. На вопрос зачем создавать отдельную переменную для нового баланса, если можно всегда работать со старым, отвечу, что иногда расчет такой не проходит, по непонятным причинам, и я обошелся малым - новой переменной.
24
« on: РТУгбвР 25, 2011, 05:09:21 pm »
static balance;
function init() { // ЗАПРОСИМ БАЛАНС file = new_object("file"); file.ropen("./!DATA/" + name + "/balance.txt"); balance = file.readLn(); file.close(); }
function onATFOrder(var id) { order_id = id; timer = getFormattedTime(getServerTime()); var order = getOrder(order_id); var status = order["status"]; // ИСПОЛНЕНА if (status == OS_MATCHED) { order_id = 0; if (start == 1) {deal = 1;} if (start == 2) {deal += 1;} // # СДЕЛКИ file = new_object("file"); file.wopen("./!DATA/" + name + "/deal.txt"); file.writeLn(deal); file.close(); } // СНЯТА (отклонена биржей не удалось выставить аннулирована биржей отклонена контрагентом) if (status == OS_REJECTED || status ==OS_FAILED || status == OS_REMOVED || status == OS_REFUSED) { order_id = 0; // ВЫСТАВИМ ЗАНОВО if (order["operation"] == OP_SELL) { trade_action::sell(order["quantity"], ::lots,close-slip); signal::output ("снова ставим заявку"); } if (order["operation"] == OP_BUY) { trade_action::buy(order["quantity"], ::lots,close+slip); signal::output ("снова ставим заявку"); } } }
function onATFTrade(var id) { timer = getFormattedTime(getServerTime()); trade_id = id; var operation; var newBalance; var trade = getTrade(trade_id);
if (trade["operation"] == OP_SELL){ operation = " SELL "; newBalance = balance-trade["quantity"]; } if (trade["operation"] == OP_BUY) { operation = " BUY "; newBalance = balance+trade["quantity"]; } signal::outputMultiple (name + operation + trade["quantity"] + " по " + trade["price"] + " | " + timer);
// ЗАПИШЕМ В ФАЙЛ // БАЛАНС file = new_object("file"); file.wopen("./!DATA/" + name + "/balance.txt"); file.writeLn(balance); file.writeLn("время: " + timer); file.close(); }
вот отрывок если каких скобок закрывающих нет - извиняйте - это выборочный код - но должен помочь
25
« on: РТУгбвР 25, 2011, 11:11:24 am »
логика в следующем. В начале ты делаешь расчет для переменной и присваиваешь ей значение, и только потом записываешь переменную в файл
приведи код - посмотрим
26
« on: РТУгбвР 25, 2011, 11:09:19 am »
давай те - очень надо! а то куча ошибок идет одной лишь - некорректный ордер.
к стати как я понял - это приходит от брокера а не от биржи
27
« on: РТУгбвР 24, 2011, 06:16:39 pm »
я сразу создавал файлы на всякий случай. только ты не забывай логику:
переменная file открыл для записи записал закрыл
и так каждый раз - не закроешь - будет ошибка
28
« on: РТУгбвР 24, 2011, 02:16:00 pm »
сообщение вот пришло: Некорректный ордер: Покупка RTS-9.11 по цене 156405
и чего там было некорректного - неясно. В заявках самой заявки нет. как фильтровать такие мессаги и переставлять заявки?
29
« on: РТУгбвР 24, 2011, 02:14:44 pm »
ну onNewCandle не нужен тут а так да - в init определяешь первоначальный баланс из файла
а если была сделка то в ней уже арифметика на новый баланс - новое значение на переменную (для других расчетов) и запись в файл
30
« on: РТУгбвР 23, 2011, 11:01:14 am »
конечно не канает - я пишу баланс в файл только после совершения сделки (даже при условии что заявка не вся исполнилась). Это вот канает.
Мог бы просто спросить а не наезжать.
|