avatar of 发明者量化-小小梦 发明者量化-小小梦
Suivre Messages privés
4
Suivre
1271
Abonnés

2.3 Passer un ordre de marché

Créé le: 2016-11-08 11:05:52, Mis à jour le: 2019-08-01 09:26:02
comments   6
hits   5569

Liste de vente au détail


Test de retour et test de disque dur choisissent l’échange en direct OKCoin

  • ### Le prix de vente au détail

Voir la documentation de l’API

Buy(Price, Amount)	下买单, Price为买单价格,Amount为数量, 返回一个订单ID
可以跟多余的参数做为附加消息显示到日志, 如exchange.Buy(1000,0.1, "OK", 123)
支持现货(火币/BitVC/OKCoin/OKCoin国际/OKCoin期货/BTCChina/BitYes)市价单, 市价单价格指定为-1
exchange.Buy(1000), 指买市价1000元的币, BTCChina例外exchange.Buy(0.3)指市价买0.3个币

Voici le code source du test:

function main() { 
    var ticker = null;    // 用于获取ticker 行情。
    Log("initAccount:", exchange.GetAccount());   // 获取初始账户信息。
    Log("ticker:", ticker = exchange.GetTicker());  // 获取并打印行情
    Log("3000元 预计买到 Amount:", 3000 / ticker.Last);   // 计算下 Amount 传入 3000 预计按照当前的行情可以买入的数量。
    exchange.Buy(-1, 3000);           // 使用市价单, 在参数 Price 传入 -1 , 第二个参数 Amount 回测系统中为 法币。
    Log("nowAccount:", exchange.GetAccount()); // 显示当前账户信息,用于对比 实际买入的数量。
}

Voici le résultat: 2.3 Passer un ordre de marché Remarque: le paramètre Amount utilisé lors de la détection est le franc.

  • ### Buy ((()) Liste de prix en baisse Test sur disque dur

2.3 Passer un ordre de marché On peut voir que l’inventeur quantifie le disque analogique qui n’est pas pris en charge par le prix du marché.

function main() { 
    var ticker = null;
    Log("OKCoin 允许的BTC最小交易量:", 0.01); //  显示一下 OKCoin 允许的最小交易量
    // GetMinStock 函数已经废除, 需要使用一个 变量代替 最小交易币数(或者设置成 界面参数)
    Log("initAccount:", exchange.GetAccount());  
    Log("ticker:", ticker = exchange.GetTicker());
    
    exchange.Buy(-1, 200);  
    Log("nowAccount:", exchange.GetAccount());
}

2.3 Passer un ordre de marché

On peut voir que l’Amount est passé à 200 dollars parce que le compte n’avait pas assez de dollars. Donc, est-ce que le paramètre Amount est le nombre de pièces échangées ?

exchange.Buy(-1, 0.5); // 这句的 第二个参数 原来是200 改为 0.5 2.3 Passer un ordre de marché

Comme vous pouvez le voir ici, le 0.5 n’est pas 0.5 pièces, mais 0.5 francs (le montant en RMB) qui est envoyé, c’est pourquoi l’erreur ci-dessus est affichée.

  • ### Vente au détail

Cette fois, c’est un peu différent.

  function main() { 
    var ticker = null;
    Log("OKCoin 允许的BTC最小交易量:", 0.01);
    // GetMinStock 函数已经废除, 需要使用一个 变量代替 最小交易币数(或者设置成 界面参数)
    Log("initAccount:", exchange.GetAccount());
    Log("ticker:", ticker = exchange.GetTicker());
    
    exchange.Sell(-1, 0.5);   //  注意这里 传入Amount 的值  0.5
    Log("nowAccount:", exchange.GetAccount());
}

Résultats des backtests : 2.3 Passer un ordre de marché On peut voir que le paramètre Amount entré lors de l’utilisation de Sell est le nombre de Bitcoins à échanger, plutôt que le montant en dollars, et que l’appel Buy est différent.

  • ### Vente au détail Test de disque dur

Cette fois-ci, je me suis précipité pour tester un peu de l’argent.

function main() { 
    var ticker = null;
    Log("OKCoin 允许的BTC最小交易量:", 0.01);
    Log("initAccount:", exchange.GetAccount());
    // GetMinStock 函数已经废除, 需要使用一个 变量代替 最小交易币数(或者设置成 界面参数)
    Log("ticker:", ticker = exchange.GetTicker());
    
    exchange.Sell(-1, 0.011);    // 我实盘 冲进去了一点钱,  看看效果。
    Sleep(5000);
    Log("nowAccount:", exchange.GetAccount());
}

Résultats de l’opération : 2.3 Passer un ordre de marché On peut voir que le second paramètre de Sell, Amount, est le nombre de pièces à échanger.