procedure
TForm1
.
Order();
var
url, sign, queryString, nonce:
string
;
ST: SystemTime;
DT: TDateTime;
uTime:
int64
;
sHour, sMin, sSec, sMili:
Word
;
stream, s_url:
string
;
Post: TStringList;
begin
api_key :=
'OPEN_KEY'
;
api_secret :=
'SECRET_KEY'
;
GetSystemTime(ST);
DT := EncodeDate(ST
.
wYear, ST
.
wMonth, ST
.
wDay) +
EncodeTime(ST
.
wHour, ST
.
wMinute, ST
.
wSecond, ST
.
wMilliseconds);
uTime := DateUtils
.
MilliSecondsBetween(DT, UnixDateDelta);
nonce:=inttostr(uTime);
queryString :=
'symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=0.12&price=0.008729&recvWindow=5000×tamp='
+nonce;
sign := THashSHA2
.
GetHMAC(queryString, api_secret, SHA256);
IdHTTP10 := TidHTTP
.
Create(
nil
);
IdHTTP10
.
HandleRedirects :=
True
;
IdHTTP10
.
Request
.
CustomHeaders
.
Add(
'X-MBX-APIKEY:'
+api_key);
Post:=TStringList
.
Create;
Post
.
Add(
'quantity=0.12&'
);
Post
.
Add(
'price=0.008729&'
);
Post
.
Add(
'recvWindow=5000&'
);
Post
.
Add(
'timestamp='
+nonce+
'&'
);
Post
.
Add(
'signature='
+sign);
s_url := url +
'?symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC'
;
try
stream:=IdHTTP10
.
POST(s_url, Post);
Memo3
.
Lines
.
Add(stream);
except
on
E: Exception
do
Memo1
.
Lines
.
Add(TimeToStr(time)+
' <---> [Order] error: '
+E
.
Message);
end
;
IdHTTP10
.
Free;
Post
.
Free;
end
;