В разделе 3.1 представлена модель торговли на месте, которая значительно упрощает задачу написания стратегии торговли на месте. Однако, как и в настоящем случае, обработка торговли на месте сильно отличается от обработки торговли на месте.
В этом случае, если вы хотите, чтобы ваш сайт был открыт, вы можете использовать его в Интернете.
Насущный аспект, как и предыдущая криптовалюта, является таким же, как и насущный кластер.
Параметры:
Посмотрите, что он делает, чтобы помочь вам с этим.
function main() {
if (exchange.GetName() === 'Futures_OKCoin') {
var info = exchange.SetContractType("this_week");
Log("info 返回值:", info);
Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
var depth = exchange.GetDepth();
var p = $.NewPositionManager();
p.OpenShort("this_week", 10, depth.Bids[0].Price - 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("this_week", depth.Bids[0].Price + 2, 5);
Log("cover ret:", ret);
//LogProfit(p.Profit());
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var depth = exchange.GetDepth();
p.OpenLong("this_week", 20, depth.Bids[0].Price + 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("this_week", depth.Bids[0].Price - 2, 10, PD_LONG);
Log("cover ret:", ret);
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var ret = p.Cover("this_week", depth.Bids[0].Price - 3, 10, PD_LONG);
Log("cover ret:", ret);
var ret = p.Cover("this_week", depth.Bids[0].Price + 3, 5, PD_SHORT);
Log("cover ret:", ret);
Log(exchange.GetPosition());
} else if (exchange.GetName() === 'Futures_BitVC') {
var info = exchange.SetContractType("week");
Log("info 返回值:", info);
Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
var depth = exchange.GetDepth();
var p = $.NewPositionManager();
p.OpenLong("week", 500, depth.Bids[0].Price + 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("week", depth.Bids[0].Price - 2, 500);
Log("cover ret:", ret);
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var info = exchange.SetContractType("week");
Log("info 返回值:", info);
Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
var depth = exchange.GetDepth();
p.OpenShort("week", 600, depth.Bids[0].Price - 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("week", depth.Bids[0].Price - 2, 500, PD_SHORT);
Log("cover ret:", ret);
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var ret = p.Cover("week", depth.Bids[0].Price + 3, 100, PD_SHORT);
Log("cover ret:", ret);
//p.Cover("week", depth.Asks[0].Price - 3, 300, PD_LONG);
Log(exchange.GetPosition());
} else if(exchange.GetName() === 'huobi' || exchange.GetName() === 'OKCoin'){
Log($.GetAccount());
Log($.Buy(0.5));
Log($.Sell(0.5));
exchange.Buy(1000, 3);
$.CancelPendingOrders(exchanges[0]);
Log($.Cross(30, 7));
Log($.Cross([1,2,3,2.8,3.5], [3,1.9,2,5,0.6]));
}
}
Использование:
Посмотрите на эти фотографии.
function main(){
var p = $.NewPositionManager();
var i = 0;
exchanges[0].SetContractType("this_week");
var isFirst = true;
var ret = null;
while(true){
var depth = _C(exchanges[0].GetDepth);
var positions = _C(exchanges[0].GetPosition);
var len = positions.length;
if(isFirst === true && i % 3 === 0 && len === 0){
ret = p.OpenLong("this_week", 1 + (i % 3) + (i % 2), depth.Asks[0].Price);
isFirst = false;
}else if(isFirst === false){
ret = p.OpenShort("this_week", 1 + (i % 3) + (i % 2), depth.Bids[0].Price);
isFirst = true;
}else{
for(var j = 0 ; j < len; j++){
if(positions[j].Type === PD_LONG){
ret = p.Cover("this_week", depth.Bids[0].Price - 2, positions[j].Amount, PD_LONG);
}else if(positions[j].Type === PD_SHORT){
ret = p.Cover("this_week", depth.Asks[0].Price + 2, positions[j].Amount, PD_SHORT);
}
Log("ret:", ret);
}
}
Log("ret", ret, "---------------------#FF0000");
i++;
Sleep(1000 * 60 * 15);
}
}
Если у вас есть какие-либо вопросы или ошибки, пожалуйста, свяжитесь с автором.
ЮндиПочему я не могу найти библиотеку JS для торговли цифровыми валютами и не вижу в ней стратегии?
Я не плохой дядя.Сколько стоит $.Buy ((0.5)?
ЗапретныйА что, если версия Python поддерживает OKEX-фьючерсы?
просто-чуньЕсли вы хотите узнать, что означает ret, что это за словосочетание на английском языке?
просто-чуньА где же PY-версия?
ЕфГГГОбычно я использую Python, есть ли версия Python?
Изобретатели количественного измерения - мечтыТорговая библиотека фьючерсов на цифровые валюты является неофициальной, так как интерфейс хранения на бирже часто задерживается, что может привести к повторному заказу, и поэтому отменена публично.
ЮндиЗдравствуйте, это фьючерсы на наличные и товарные, я спросил в группе, что фьючерсная библиотека цифровых валют JS исчезла из-за ошибки.
Изобретатели количественного измерения - мечты/upload/asset/16c4dcc69723e302152c.png В этом месте
Изобретатели количественного измерения - мечтыВ то время цена соперника, плюс небольшое падение цены.
Изобретатели количественного измерения - мечтыЭто пока не написано, но есть фьючерсный шаблон Python для товарных фьючерсов, мой JS также на самом деле написан в соответствии с структурой товарных фьючерсов.
ЗапретныйЯ думаю, что это не так уж и важно, потому что я не могу использовать этот код, потому что я не могу использовать его.
Изобретатели количественного измерения - мечтыPython не имеет функции фьючерса. Нет трансплантации >_<
Изобретатели количественного измерения - мечтыreturn означает возвращающее значение, обычно используемое для временного хранения функции.
просто-чуньСпасибо. Спасибо.
Изобретатели количественного измерения - мечтыhttps://www.botvs.com/strategy/21104, возможно, немного отличается от версии JS, которая была перенесена в JS.
Изобретатели количественного измерения - мечтыЕсть версия Python, но она используется меньше.