-
Notifications
You must be signed in to change notification settings - Fork 3
/
order.php
124 lines (107 loc) · 3.1 KB
/
order.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
/**
* @author lin <[email protected]>
* */
use Lin\Coinbase\CoinbasePro;
require __DIR__ .'../../../vendor/autoload.php';
$key='7d57139517d145fb98143d38dbde9082';
$secret='kMpFBoM+EeseFSv8oQiZKHz5jO543mO+lMZ41EW2lshp9zAqHzd7ymNznNDhU94ftamj5pHZxZRvCYRYp5peNQ==';
$passphrase='vdwpkkxvtt';
//It is recommended to use the sandbox urls first https://api-public.sandbox.pro.coinbase.com
//Default address https://api.pro.coinbase.com
$host='https://api-public.sandbox.pro.coinbase.com';
$coinbase=new CoinbasePro($key,$secret,$passphrase,$host);
//You can set special needs
$coinbase->setOptions([
//Set the request timeout to 60 seconds by default
'timeout'=>10,
//If you are developing locally and need an agent, you can set this
//'proxy'=>true,
//More flexible Settings
/* 'proxy'=>[
'http' => 'http://127.0.0.1:12333',
'https' => 'http://127.0.0.1:12333',
'no' => ['.cn']
], */
//Close the certificate
//'verify'=>false,
]);
/*
client_oid [optional] Order ID selected by you to identify your order
type [optional] limit or market (default is limit)
side buy or sell
product_id A valid product id
stp [optional] Self-trade prevention flag
stop [optional] Either loss or entry. Requires stop_price to be defined.
stop_price [optional] Only if stop is defined. Sets trigger price for stop order.
LIMIT ORDER PARAMETERS
price Price per bitcoin
size Amount of base currency to buy or sell
time_in_force [optional] GTC, GTT, IOC, or FOK (default is GTC)
cancel_after [optional]* min, hour, day
post_only [optional]** Post only flag
MARKET ORDER PARAMETERS
size [optional]* Desired amount in base currency
funds [optional]* Desired amount of quote currency to use
One of size or funds is required.
*/
//****************************LIMIT
try {
$result=$coinbase->order()->post([
//'client_oid'=>'',
'type'=>'limit',
'side'=>'sell',
'product_id'=>'BTC-USD',
'price'=>'20000',
'size'=>'0.01'
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
sleep(1);
//track the order
try {
$result=$coinbase->order()->get([
'id'=>$result['id'],
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
sleep(1);
//cancellation of order
try {
$result=$coinbase->order()->delete([
'id'=>$result['id'],
//'id'=>'6bad6a7d-b01a-4a93-9e6e-e9934bcef4ef',
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
//****************************MARKET
try {
$result=$coinbase->order()->post([
//'client_oid'=>'',
'type'=>'market',
'side'=>'sell',
'product_id'=>'BTC-USD',
'size'=>'0.01',
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
sleep(1);
//track the order
try {
$result=$coinbase->order()->get([
'id'=>$result['id'],
//'client_oid'=>''
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
?>