전략 소개
이 글은 이쪽의 글입니다.https://www.fmz.com/strategy/1088이 전략은 가상화폐를 만든 이래로 내가 만든 주요 전략이며, 이후 계속 개선 및 수정, 복잡하게 많은, 하지만 주요 아이디어는 변경되지 않았습니다. 공유 된 버전은 명백한 버그가없는 초기 버전이며, 가장 간단하고 명확하고, 포지션 관리가 없으며, 모든 거래는 포지션이 가득하고, 카드가 죽은 후 다시 시작되지 않습니다. 이 전략은 2014년 8월부터 올해 초에 거래소가 수수료를 부과할 때까지 운영되었다. 이 기간 동안 운영이 잘 되어 손실이 거의 없었다. 자금은 초기 200원에서 80비트코인으로 급격히 증가했다. 구체적인 과정을 살펴볼 수 있다.작은 풀의 신바 블로그리가상화폐 자동화 거래의 길이 글은
왜 이 전략을 공유해야 할까요?
1. 거래소가 수수료를 부과하면 거의 모든 하이프레크 전략이 죽고, 나 또한 예외가 아닙니다. 하지만 전략 변경은 여전히 유용할 수도 있습니다. 2. 오랫동안 공유하지 않았는데 이 글을 쓰고 싶었습니다. 3. 모든 사람들과 함께 교류하고 배우십시오.
전략의 원리
이 전략의 원리는 매우 간단하며, 거의 높은 빈도의 시장 전략으로 이해할 수 있습니다. 당신은 그것을보고 나면 사람을 때리고 싶어 할 수 있습니다. 그것은 돈을 벌 수 있습니다. 그 당시 거의 모든 사람이 그것을 쓸 수있었습니다. 나는 그것이 그렇게 효과적일 것이라고 예상하지 못했습니다. 모든 고주파 전략과 마찬가지로, 이 전략은 주문책에 기반합니다. 아래 그림은 전형적인 비트코인 거래소의 주문 분포입니다.왼쪽은 지불서이며, 다른 가격의 주문을 표시하고 오른쪽은 판매서이다. 만약 사람이 비트코인을 사려고 한다면, 주문을 기다리지 않으려면 주문을 선택할 수 있다고 상상할 수 있다. 만약 그의 주문이 더 많다면, 많은 거래가 이루어질 것이고, 가격에 충격을 줄 것이다. 그러나 이러한 충동은 일반적으로 계속되고 있으며, 어떤 사람들은 단서를 사려고 하지 않으며, 가격이 매우 짧은 시간에 회복될 가능성이 높으며, 반대로 어떤 사람들은 같은 것을 판매해야한다는 것을 이해한다. 이 그림의 한계 예로, 5개의 동전을 직접 구매하면 가격이 10,377에 도달하고, 5개의 동전을 직접 판매하면 가격이 10,348에 도달합니다. 이 공간은 수익 공간입니다. 전략은 10,377보다 약간 낮은 가격, 예를 들어, 10,376.99에 등록하고, 10,348보다 약간 높은 가격, 예를 들어, 10,348.01에 구매합니다. 현재 전략의 매개 변수로 구체적인 동작을 설명하자면, 이 매개 변수는 물론 사용할 수 없다. 단지 설명하기 위해서이다. 그것은 상향으로 누적 판매열차 8개 동의 가격을 찾게 된다. 여기서는 10377이다. 그러면 이 때 판매 가격은 이 가격 빼기 0.01이다. (무엇을 빼면 무작위일 수 있다.) 같은 방식으로 아래로 누적 구매열차 8개 동의 가격을 찾게 된다. 여기서는 10348이다. 그러면 이 때 판매 가격은 10348.01이다. 이 때 구매열차의 차이는 10376.99-10348.01=28.98이다.
더 자세한 설명
코드 설명
전체 코드는 www.fmz.com에서 나눌 수 있습니다. 여기서 핵심 논리 함수만 설명합니다. Botvs의 모형 디스크는 변경되지 않고도 완전히 정상적으로 작동합니다. 우선 구매 가격 함수 GetPrice (GetPrice) 를 얻는 것, 주문 깊이 정보를 얻는 것, 다른 플랫폼의 주문 깊이 정보 길이가 다르다는 점, 그리고 모든 주문을 가로질러도 여전히 필요한 양이 없는 상황 (후기 많은 0.01의 네트워크 열거 목록이 이러한 상황을 초래할 경우), GetPrice (GetPrice) 를 호출하는 것은 구매 가격 (GetPrice) 이다.
function GetPrice(Type) {
//_C()是平台的容错函数
var depth=_C(exchange.GetDepth);
var amountBids=0;
var amountAsks=0;
//计算买价,获取累计深度达到预设的价格
if(Type=="Buy"){
for(var i=0;i<20;i++){
amountBids+=depth.Bids[i].Amount;
//参数floatamountbuy是预设的累计深度
if (amountBids>floatamountbuy){
//稍微加0.01,使得订单排在前面
return depth.Bids[i].Price+0.01;}
}
}
//同理计算卖价
if(Type=="Sell"){
for(var j=0; j<20; j++){
amountAsks+=depth.Asks[j].Amount;
if (amountAsks>floatamountsell){
return depth.Asks[j].Price-0.01;}
}
}
//遍历了全部深度仍未满足需求,就返回一个价格,以免出现bug
return depth.Asks[0].Price
}
각 루프의 메인 함수 onTick ((), 여기서 주어진 루프 시간은 3.5s이며, 각 루프마다 원래의 단자를 취소하고 다시 올릴 수 있으며, 더 간단하면 버그가 발생하지 않습니다.
function onTick() {
var buyPrice = GetPrice("Buy");
var sellPrice= GetPrice("Sell");
//diffprice是预设差价,买卖价差如果小于预设差价,就会挂一个相对更深的价格
if ((sellPrice - buyPrice) <= diffprice){
buyPrice-=10;
sellPrice+=10;}
//把原有的单子全部撤销,实际上经常出现新的价格和已挂单价格相同的情况,此时不需要撤销
CancelPendingOrders()
//获取账户信息,确定目前账户存在多少钱和多少币
var account=_C(exchange.GetAccount);
//可买的比特币量,_N()是平台的精度函数
var amountBuy = _N((account.Balance / buyPrice-0.1),2);
//可卖的比特币量,注意到没有仓位的限制,有多少就买卖多少,因为我当时的钱很少
var amountSell = _N((account.Stocks),2);
if (amountSell > 0.02) {
exchange.Sell(sellPrice,amountSell);}
if (amountBuy > 0.02) {
exchange.Buy(buyPrice, amountBuy);}
//休眠,进入下一轮循环
Sleep(sleeptime);
}
꼬리
전체 프로세스는 40줄 이상으로 매우 간단해 보였지만, 당시에도 1주일 이상 걸렸는데, 이는 botvs 플랫폼의 경우였다. 가장 큰 장점은 아직 일찍 시작하는 것이었고, 2014년 시장은 이동통신, 격자 및 횡령 접시의 높은 빈도가 많지 않아 전략이 물고기와 같은 물을 얻을 수 있었다. 그 후 경쟁은 필연적으로 점점 더 격렬해졌다. 그러나 고주파량 측정 전략이 필요하지 않은 경우 많은 공간이 있습니다.
/* 就是我刚开始编写机器人的源代码,几乎没有改动,参数也是原来的参数。这个版本的程序有许多 需要改进的地方,但即使如此,它也当时表现除了惊人的盈利能力,在我本金不多时,不加杠杆平 均每天盈利在5%左右。当然无论从哪一方面,它都不适应今天的市场。 我同时也发了一篇文章在社区,大家可以看看。 by 小草 */ //稍微改了一下,用了平台的容错函数_C(),和精度函数_N(). //取消全部订单 function CancelPendingOrders() { var orders = _C(exchange.GetOrders); for (var j = 0; j < orders.length; j++) { exchange.CancelOrder(orders[j].Id, orders[j]);} } //计算将要下单的价格 function GetPrice(Type,depth) { var amountBids=0; var amountAsks=0; //计算买价,获取累计深度达到预设的价格 if(Type=="Buy"){ for(var i=0;i<20;i++){ amountBids+=depth.Bids[i].Amount; //floatamountbuy就是预设的累计买单深度 if (amountBids>floatamountbuy){ //稍微加0.01,使得订单排在前面 return depth.Bids[i].Price+0.01;} } } //同理计算卖价 if(Type=="Sell"){ for(var j=0; j<20; j++){ amountAsks+=depth.Asks[j].Amount; if (amountAsks>floatamountsell){ return depth.Asks[j].Price-0.01;} } } //遍历了全部深度仍未满足需求,就返回一个价格,以免出现bug return depth.Asks[0].Price } function onTick() { var depth=_C(exchange.GetDepth); var buyPrice = GetPrice("Buy",depth); var sellPrice= GetPrice("Sell",depth); //买卖价差如果小于预设值diffprice,就会挂一个相对更深的价格 if ((sellPrice - buyPrice) <= diffprice){ buyPrice-=10; sellPrice+=10;} //把原有的单子全部撤销,实际上经常出现新的价格和已挂单价格相同的情况,此时不需要撤销 CancelPendingOrders() //获取账户信息,确定目前账户存在多少钱和多少币 var account=_C(exchange.GetAccount); //可买的比特币量 var amountBuy = _N((account.Balance / buyPrice-0.1),2); //可卖的比特币量,注意到没有仓位的限制,有多少就买卖多少,因为我当时的钱很少 var amountSell = _N((account.Stocks),2); if (amountSell > 0.02) { exchange.Sell(sellPrice,amountSell);} if (amountBuy > 0.02) { exchange.Buy(buyPrice, amountBuy);} //休眠,进入下一轮循环 Sleep(sleeptime); } function main() { while (true) { onTick(); } }
구호와이것은 현금 전략이 아니죠? 지금은 일부 거래소가 일부 화폐를 수수료 없이 거래하는 것처럼 보입니다.
a624587332비안의 BTC 현금 거래는 수수료 없이 진행될 수 있을까?
abcdsfasdfhzw유나이티드 거래? 프로그램에서 구매한 후에 코드를 팔지 않고, 판매한 후에 구매하지 않은 것을 봤습니다.
비자수오이 글은 한 번 더 읽어보겠습니다.
킨러그이 글을 공유해 주셔서 대단히 감사합니다. 이런 깊이 있는 생각의 교환을 더 많이 기대합니다. 감사합니다. 감사합니다.
로가어서