API Streamster

Kandungan di bawah menerangkan cara pengunaan API Streamster untuk membuat aplikasi yang bersambung dengan platform dagangan Streamster. Aplikasi API Streamster  membolehkan pelbagai data diperolehi dari platform, melaksanakan dan mengubah suai pesanan dan posisi, dan melakukan pelbagai tindakan yang berkaitan.

Untuk membuka dan membaca bahagian tertentu, sila klik pada tajuknya.

1. Pengenalan kepada API Streamster ™

API Streamster mendedahkan fungsinya melalui protokol SOAP bertaraf industri. SOAP disokong secara meluas pada hampir setiap platform pengaturcaraan, termasuk PHP, Visual Basic, C #, C ++, Java dan banyak bahasa dan platform lain.

Untuk menggunakan API Streamster, aplikasi menghubungkan kepada perkhidmatan SOAP dibina dalam Streamster. Untuk pengaktifan perkhidmatan API Streamster dan SOAP Streamster, log masuk ke akaun anda dan klik butang Tetapan. Di bawah “Lanjutan”, tandakan kotak “Enable web service API” dan klik OK. Windows Firewall akan meminta anda untuk membenarkan Streamster menerima sambungan di port 8018 – klik butang “Keep Blocking”, yang akan menghalang komputer lain di internet atau rangkaian anda mengakses API Streamster.

Sebaik sahaja diaktifkan, API Streamster bersedia untuk menyampaikan sebarang permintaan yang datang dari komputer anda. Adalah sangat penting untuk ambil perhatian bahawa permintaan yang datang dari mana-mana komputer selain daripada anda akan sentiasa ditolak, walaupun anda membenarkan akses Windows Firewall ke port 8018 dari internet atau mana-mana komputer atau rangkaian lain. Ini adalah untuk menghalang orang lain di internet mengakses API Streamster di komputer dan akaun anda. Perhatikan bahawa tiada pilihan di Streamster yang membenarkan mengelakkan perlindungan ini.

Dengan API Streamster diaktifkan, anda boleh menggunakan bahasa seperti PHP dan Visual Basic untuk menjalankan sampel yang ditunjukkan dalam dokumen ini, atau dengan aplikasi anda sendiri. Untuk setiap fungsi API Streamster anda akan melihat sampel dalam PHP dan Visual Basic. Jika anda bercadang untuk menggunakan bahasa atau platform lain, penukaran kod sampel biasanya sangat mudah.

1.1. Menggunakan API dari PHP

PHP menyokong SOAP dan API Streamster dengan baik. Memasang PHP di komputer anda adalah mudah – muat turun dan pasang binari Windows dari laman PHP.net . PHP versi 5 atau ke atas diperlukan. Sesetengah versi PHP di Windows tidak mempunyai SOAP diaktifkan secara automatik – anda boleh mengaktifkan sambungan SOAP dengan mengedit fail PHP.INI dan “uncommenting” extension=php_soap.dll.

Untuk melakukan ujian PHP dengan mudah, buat satu fail PHP yang bernama “test.php” dan editnya di Windows Notepad. Tampal kod berikut ke dalamnya:

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$quote = $api -> GetQuote("EUR/USD");
echo $quote -> Last;

?>

Uji skrip PHP di atas dengan menjalankan “php test.php” dan ia semestinya akan memaparkan harga terakhir EUR / USD.

Untuk menguji kesilapan yang kritikal(contohnya, apabila Streamster tidak dimulakan sama sekali, apabila parameter kaedah tidak sah, dll), anda boleh menggunakan pengendalian pengecualian PHP standard.

 

1.2. Menggunakan API dari Visual Basic

Menggunakan API Streamster dari Visual Basic adalah mudah kerana ia menyokong perkhidmatan web SOAP secara meluas. Terdapat banyak cara untuk menggunakan perkhidmatan web dari Visual Basic, tetapi yang paling mudah adalah dengan menambah “Web Service Reference” ke projek Visual Basic anda. Alamat Perkhidmatan Web API Streamster adalah http://127.0.0.1:8018/service.wsdl dan inilah yang perlu ditentukan semasa menambah “Web Service Reference” ke projek Visual Basic anda.

Sebaik sahaja rujukan itu ditambahkan ke projek anda, penggunaan API Streamster adalah semudah seperti penggunaan pada sebarang objek Visual Basic yang lain. Sebagai contoh, cuba kod di bawah:

Dim api As StreamsterApi = New StreamsterApi
Dim q As Quote = api.GetQuote("EUR/USD")

Console.WriteLine ("Last = " & q.Last)

Jika projek Visual Basic anda adalah dalam bentuk aplikasi Windows, anda boleh menukar baris terakhir kepada Label1.Text = q.Last  atau yang serupa.

Bergantung kepada versi Visual Basic anda, anda perlu memastikan ” Web Service Reference” ditambahkan dan bukan dengan “Service Reference”. Jika anda menambah “Service Reference”, nama kelas API Streamster akan menjadi “StreamsterApiClientInterface” selain seharusnya dengan “StreamsterApi” sahaja di mana contoh yang ditunjukkan dalam dokumen ini perlu dikemaskini sewajarnya dalam kes ini.

Setelah “Web Service Reference” API Streamster ditambahkan ke projek Visual Basic anda, ada perlu juga untuk menambah “Web Service Reference” API Streamster ke dalam senarai “Imported Namespaces ” dalam projek Visual Basic anda. Ini diperlukan supaya anda tidak perlu memberi awalan setiap jenis API Streamster dengan nama “Web Service Reference”, di mana boleh membazirkan masa.

Untuk mengetahui cara menambah “Web Service Reference” ke senarai “Imported Namespaces” dalam projek anda, sila rujuk sistem bantuan Visual Basic.

2. Kaedah Pengambilan API Streamster ™

Apabila objek SOAP telah dibuat, API Streamster akan mendedahkan beberapa kaedah yang boleh anda gunakan untuk berkomunikasi dengan Streamster dari skrip atau aplikasi anda. Seksyen berikut meneroka kaedah pengambilan dan struktur yang berkaitan.

2.1. GetQuote

Kaedah GetQuote mengembalikan struktur “Quote” untuk nama instrumen yang diberikan. Struktur Quote mengandungi bidang bersamaan dengan lajur dalam tingkap Kadar(Rates) di Streamster. GetQuote hanya mengembalikan bidang yang terdapat di Streamster – jika anda ingin mendapatkan sebarang bidang yang tidak dipaparkan pada Streamster, anda perlu menambahkannya dengan mengklik butang Lajur(Columns).

Contoh – PHP: Contoh berikut mengambil sebut harga untuk EUR/USD, memaparkan bidang “Terakhir(Last)” dan kemudian menyenaraikan semua bidang yang tersedia.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$quote = $api -> GetQuote("EUR/USD");

echo $quote -> Last . "n";

foreach($quote as $field => $value) {
    echo $field . " = " . $value . "n";
}

?>

Contoh – Visual Basic: Contoh berikut mengambil sebut harga untuk EUR/USD, memaparkan bidang “Terakhir(Last)” dan kemudian memaparkan semua bidang lain.

Dim api As StreamsterApi = New StreamsterApi

Dim q As Quote
q = api.GetQuote("EUR/USD")

Console.WriteLine("Last: " & q.Last)
Console.WriteLine("Bid: " & q.Bid)
Console.WriteLine("Offer: " & q.Offer)
Console.WriteLine("Change: " & q.Change)
Console.WriteLine("High: " & q.High)
Console.WriteLine("Low: " & q.Low)
Console.WriteLine("Open: " & q.Open)
Console.WriteLine("Close: " & q.Close)
Console.WriteLine("Time: " & q.Time)
Console.WriteLine("Currency: " & q.Currency)
Console.WriteLine("Yield: " & q.Yield)
Console.WriteLine("Ask: " & q.Ask)
2.2. GetOrders
Kaedah GetOrders mengembalikan pelbagai struktur “Order”. Arahan ini sepadan secara langsung dengan tetingkap Pesanan(Order) di Streamster. Setiap struktur Pesanan dalam array yang dikembalikan mengandungi satu pesanan dengan bidang yang berkaitan seperti yang dipaparkan dalam Streamster. GetOrders mengembalikan struktur Pesanan yang mengandungi hanya bidang yang terdapat di Streamster – jika anda ingin mendapatkan sebarang bidang yang tidak dipaparkan pada tetingkap Pesanan Streamster, anda perlu menambahkannya dengan mengklik butang Lajur(Columns).

Contoh – PHP: Contoh berikut mengambil semua pesanan dan menyenaraikannya.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetOrders();
if(property_exists($r, "Order")) {
    foreach($r -> Order as $n => $OrderInfo) {
        echo "tOrder " . $n . "n";
        foreach($OrderInfo as $field => $value) {
            echo "ttField: " . $field . " = " . $value . "n";
        }
    }
}

?>

Contoh – Visual Basic: Contoh berikut mengambil semua pesanan dan menyenaraikannya.

Dim api As StreamsterApi = New StreamsterApi

Dim ao As Order()
Dim o As Order

ao = api.GetOrders()

For Each o In ao
    Console.WriteLine("")
    Console.WriteLine("Order:")

    Console.WriteLine("OrderID: " & o.OrderID)
    Console.WriteLine("Desk: " & o.Desk)
    Console.WriteLine("Instrument: " & o.Instrument)
    Console.WriteLine("Side: " & o.Side)
    Console.WriteLine("Phase: " & o.Phase)
    Console.WriteLine("PriceType: " & o.PriceType)
    Console.WriteLine("Price: " & o.Price)
    Console.WriteLine("ActiveQuantity: " & o.ActiveQuantity)
    Console.WriteLine("TradedQuantity: " & o.TradedQuantity)
    Console.WriteLine("ExitStopLoss: " & o.ExitStopLoss)
    Console.WriteLine("ExitTarget: " & o.ExitTarget)
    Console.WriteLine("Status: " & o.Status)
    Console.WriteLine("PositionID: " & o.PositionID)
    Console.WriteLine("Currency: " & o.Currency)
    Console.WriteLine("Duration: " & o.Duration)
    Console.WriteLine("DurationType: " & o.DurationType)
    Console.WriteLine("Quantity: " & o.Quantity)
    Console.WriteLine("QuantityType: " & o.QuantityType)
    Console.WriteLine("Text: " & o.Text)
    Console.WriteLine("Entered: " & o.Entered)
Next
2.3. GetTrades

Kaedah GetTrades mengembalikan pelbagai struktur “Perdagangan(Trade)”. Arahan ini sepadan secara langsung dengan tetingkap Trades di Streamster. Setiap struktur Perdagangan dalam array yang dikembalikan mengandungi satu perdagangan dengan bidang yang berkaitan seperti yang ditunjukkan dalam Streamster. GetTrades mengembalikan struktur Perdagangan yang mengandungi hanya bidang yang terdapat di Streamster – jika anda ingin mendapatkan sebarang bidang yang tidak dipaparkan pada tetingkap “Trades” di Streamster, anda perlu menambahkannya dengan mengklik butang Lajur(Columns)..

Contoh – PHP: Contoh berikut mengambil semua perdagangan dan menyenaraikannya.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetTrades();
if(property_exists($r, "Trade")) {
    foreach($r -> Trade as $n => $TradeInfo) {
        echo "tTrade " . $n . "n";
        foreach($TradeInfo as $field => $value) {
            echo "ttField: " . $field . " = " . $value . "n";
        }
    }
}

?>

Contoh – Visual Basic: Contoh berikut mengambil semua perdagangan dan menyenaraikannya.

Dim api As StreamsterApi = New StreamsterApi

Dim at As Trade()
Dim t As Trade

at = api.GetTrades()

For Each t In at
    Console.WriteLine("")
    Console.WriteLine("Trade:")

    Console.WriteLine("TradeID: " & t.TradeID)
    Console.WriteLine("Desk: " & t.Desk)
    Console.WriteLine("Instrument: " & t.Instrument)
    Console.WriteLine("Side: " & t.Side)
    Console.WriteLine("Phase: " & t.Phase)
    Console.WriteLine("Price: " & t.Price)
    Console.WriteLine("Quantity: " & t.Quantity)
    Console.WriteLine("Executed: " & t.Executed)
    Console.WriteLine("Status: " & t.Status)
    Console.WriteLine("Currency: " & t.Currency)
    Console.WriteLine("Text: " & t.Text)
    Console.WriteLine("OrderID: " & t.OrderID)
Next
2.4. GetPositions

Kaedah GetPositions mengembalikan pelbagai struktur “Posisi(Position)”. Arahan ini sepadan secara langsung dengan tetingkap Posisi(Position) di Streamster. Setiap struktur Posisi dalam array yang dikembalikan mengandungi satu posisi dengan bidang yang berkaitan seperti yang ditunjukkan dalam Streamster. GetPositions mengembalikan struktur Posisi yang mengandungi hanya bidang yang terdapat di Streamster – jika anda ingin mengambil sebarang bidang yang tidak ditunjukkan pada tetingkap “Position” di Streamster, anda perlu menambahkannya dengan mengklik butang Lajur(Columns).

Contoh – PHP: Contoh berikut mengambil semua posisi dan menyenaraikannya.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetPositions();
if(property_exists($r, "Position")) {
    foreach($r -> Position as $n => $PositionInfo) {
        echo "tPosition " . $n . "n";
        foreach($PositionInfo as $field => $value) {
            echo "ttField: " . $field . " = " . $value . "n";
        }
    }
}

?>

Contoh – Visual Basic: Contoh berikut mengambil semua posisi dan menyenaraikannya.

Dim api As StreamsterApi = New StreamsterApi

Dim ap As Position()
Dim p As Position

ap = api.GetPositions()

For Each p In ap
    Console.WriteLine("")
    Console.WriteLine("Position:")

    Console.WriteLine("PositionID: " & p.PositionID)
    Console.WriteLine("Desk: " & p.Desk)
    Console.WriteLine("Instrument: " & p.Instrument)
    Console.WriteLine("Side: " & p.Side)
    Console.WriteLine("OpenPrice: " & p.OpenPrice)
    Console.WriteLine("Currency: " & p.Currency)
    Console.WriteLine("Quantity: " & p.Quantity)
    Console.WriteLine("Points: " & p.Points)
    Console.WriteLine("Profit: " & p.Profit)
    Console.WriteLine("ExitStopLoss: " & p.ExitStopLoss)
    Console.WriteLine("ExitTarget: " & p.ExitTarget)
    Console.WriteLine("Entered: " & p.Entered)
    Console.WriteLine("Exited: " & p.Exited)
    Console.WriteLine("Status: " & p.Status)
    Console.WriteLine("Text: " & p.Text)
    Console.WriteLine("ClosePrice: " & p.ClosePrice)
    Console.WriteLine("Interest: " & p.Interest)
Next
2.5. GetDesks

Kaedah GetDesks mengembalikan pelbagai struktur “Meja(Desk)”. Setiap struktur Meja yang dikembalikan menerangkan satu meja pada akaun anda, termasuk nama meja, jumlah yang tersedia di meja, dan mata wang terhadap jumlah ini tersedia.

Contoh – PHP: Contoh berikut mengambil semua meja dan menyenaraikannya.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetDesks();
if(property_exists($r, "Desk")) {
    foreach($r -> Desk as $n => $Desk) {
        echo "Name: " . $Desk -> Name;
        echo ", Currency: " . $Desk -> Currency;
        echo ", Amount: " . $Desk -> Amount;
        echo "n";
    }
}

?>

Contoh – Visual Basic: Contoh berikut mengambil semua meja dan menyenaraikannya.

Dim api As StreamsterApi = New StreamsterApi

Dim ad As Desk()
Dim d As Desk

ad = api.GetDesks()

For Each d In ad
    Console.WriteLine("Name: " & d.Name & ", Currency: " & d.Currency &
        ", Amount: " & d.Amount)
Next
2.6. GetBars

Kaedah GetBars mengambil pelbagai bar untuk instrumen dan tempoh tertentu. Setiap bar yang dikembalikan mengandungi harga pada titik tertentu dalam masa.

NOTA: Hanya bar dari mana-mana tetingkap Carta(Charting) yang terbuka di Streamster boleh diambil. Jika anda ingin mendapatkan bar dari skrip anda untuk instrumen dan tempoh tertentu, anda perlu memastikan instrumen/ tempoh ditunjukkan dalam salah satu tetingkap Carta di Streamster.

Kaedah GetBars mempunyai tiga parameter: instrumen, tempoh dan bendera untuk pilihan.

Parameter pertama kaedah GetBars ialah rentetan yang menentukan instrumen untuk bar mana yang akan diambil. Parameter kedua, Tempoh, yang menentukan tempoh yang diperlukan seperti “5 Minit”, “15 Minit”, “30 Minit”, “Sejam”, “4 Jam”, “Harian”, “Mingguan”, atau “Bulanan”. Parameter ketiga adalah rentetan yang menentukan urutan di mana bar dikembalikan: rentetan kosong jika bar akan dikembalikan dalam urutan turun atau rentetan “f” (seperti dalam “flip”) untuk urutan naik.

Setiap bar yang dikembalikan mempunyai bidang berikut: BarDateTime, Open, High, Low, Close dan Volume.

Contoh – PHP: Kod berikut mengambil bar EUR/USD 5 minit dan menyenaraikan kesemuanya.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetBars("EUR/USD", "5 minutes", "f");

if(property_exists($r, "Bar")) {
    foreach($r -> Bar as $n => $Bar) {
        echo $Bar -> BarDateTime . " " . $Bar -> Open . " " . $Bar -> High .
            " " . $Bar -> Low . " " . $Bar -> Close . "n";
    }
}

?>

Contoh – Visual Basic: Kod berikut mengambil bar EUR/USD 5 minit dan menyenaraikan kesemuanya.

Dim api As StreamsterApi = New StreamsterApi

Dim ab As Bar()
Dim b As Bar

ab = api.GetBars("EUR/USD", "5 minutes", "")

For Each b In ab
    Console.WriteLine(b.BarDateTime & " " & b.Open & " " & b.High &
        " " & b.Low & " " & b.Close)
Next
2.7. GetLastMessage

GetLastMessage mendapatkan kesilapan terakhir atau mesej amaran yang dipaparkan di Streamster, jika ada. Kaedah GetLastMessage mengembalikan rentetan kosong jika tiada mesej selepas GetLastMessage dikembalikan sebelumnya.

Contoh – PHP: Kod berikut menunjukkan kesilapan terakhir atau mesej amaran.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$r = $api -> GetLastMessage();

if($r != "") {
    echo($r);
}

?>

Contoh – Visual Basic: Kod berikut menunjukkan kesilapan terakhir atau mesej amaran.

Dim api As StreamsterApi = New StreamsterApi

Dim s As String

s = api.GetLastMessage()

If s <> "" Then Console.WriteLine(s)

3. Kaedah Dagangan API Streamster ™

Apabila objek SOAP telah dibuat, API Streamster akan mendedahkan beberapa kaedah yang boleh anda gunakan untuk berkomunikasi dengan Streamster dari skrip atau aplikasi anda. Seksyen berikut meneroka kaedah pengambilan dan struktur yang berkaitan.

3.1. SendOrder

Kaedah SendOrder menghantar pesanan baru. Ia bersamaan dengan mengklik butang Baru(New) di tetingkap Pesanan(Order) di Streamster dan kemudian mengisi butiran dan mengklik OK. Kaedah SendOrder mempunyai satu parameter, struktur “Order” yang mengandungi butiran pesanan baru. Maklumat dalam bidang struktur Pesanan adalah sama seperti dalam Kirim Pesanan(Send Order) di Streamster.

Bidang berikut dalam struktur Pesanan adalah sah dan digunakan apabila kaedah SendOrder dipanggil:

Instrument: Nama instrumen (contohnya EUR/USD), bidang yang diperlukan
Side: BUY(BELI) (Default) atau SELL(JUAL)
PriceType: MARKET (Default), LIMIT atau STOP
Price: Bidang yang diperlukan apabila parameter PriceType ditetapkan kepada LIMIT atau STOP
DurationType: GTC (Default), GTD atau IOC
Duration: Diperlukan apabila parameter DurationType ditetapkan kepada GTD (Good Till Date)
Quantity: Bidang yang diperlukan
QuantityType: FULL (Default) atau PARTIAL
ExitStopLoss: Boleh diisi atau dikosongkan
ExitTarget: Boleh diisi atau dikosongkan
Desk: Nama meja yang digunakan untuk pesanan, bidang yang diperlukan
Currency: Diperlukan jika terdapat lebih daripada satu mata wang di meja tersebut
Text: Boleh diisi atau dikosongkan

Kaedah SendOrder tidak mempunyai nilai pulangan – jika pesanan berjaya, ia biasanya akan dimuncul di tetingkap Pesanan. Jika mana-mana parameter tidak sah, pengecualian akan diberitahu (seperti dalam semua kaedah API Streamster yang lain).

Contoh – PHP: Kod berikut menghantar pesanan asas.

 SOAP_SINGLE_ELEMENT_ARRAYS));

$api -> SendOrder(array(
    "Instrument" => "EUR/USD",
    "Desk" => "Virtual Forex",
    "Quantity" => 10
));

?>

Kod berikut mencipta pembolehubah pesanan yang mengisikan kebanyakan bidang dalam pesanan dan menghantar pesanan.

 SOAP_SINGLE_ELEMENT_ARRAYS));

$order -> Instrument = "Dow Jones";
$order -> Side = "BUY";
$order -> Price = 8756.24;
$order -> PriceType = "LIMIT";
$order -> ExitTarget = 8770;
$order -> Desk = "Testing";
$order -> Currency = "EUR";
$order -> Quantity = 10;
$order -> DurationType = "GTD";
$order -> Duration = date("c", time() + 3600);
$order -> Text = "test order from my script";

$api -> SendOrder($order);

?>

Contoh – Visual Basic: Kod berikut menghantar pesanan asas.

Dim api As StreamsterApi = New StreamsterApi

Dim o As Order = New Order

o.Instrument = "EUR/USD"
o.Desk = "Virtual Forex"
o.Quantity = 10
o.QuantitySpecified = True

api.SendOrder(o)

Kod berikut menghantar pesanan dengan banyak parameter pilihan.

Dim api As StreamsterApi = New StreamsterApi

Dim o As Order = New Order

o.Instrument = "Dow Jones"
o.Side = "BUY"
o.Price = 8756.24
o.PriceSpecified = True
o.PriceType = "LIMIT"
o.ExitTarget = 8770
o.ExitTargetSpecified = True
o.Desk = "Testing"
o.Currency = "EUR"
o.Quantity = 10
o.QuantitySpecified = True
o.DurationType = "GTD"
o.Duration = DateAdd("d", 1, Now())
o.DurationSpecified = True
o.Text = "test order from my script"

api.SendOrder(o)
3.2. ChangeOrder

ChangeOrder mengubah parameter tertentu pada pesanan tertunda. Kaedah ChangeOrder mempunyai satu parameter, struktur “Perintah(Order)”, yang menentukan ID pesanan yang akan ditukar dan parameter baru pesanan itu.

Bidang berikut dalam struktur Pesanan adalah sah dan digunakan semasa memanggil kaedah ChangeOrder:

OrderID: Mengandungi ID pesanan yang hendak ditukar
PriceType: MARKET (Default), LIMIT atau STOP
Price: Bidang yang diperlukan apabila parameter PriceType ditetapkan kepada LIMIT atau STOP
DurationType: GTC (Default), GTD atau IOC
Duration: Diperlukan apabila parameter DurationType ditetapkan kepada GTD (Good Till Date)
Quantity: Bidang yang diperlukan.
QuantityType: FULL (Default) atau PARTIAL
ExitStopLoss: Pilihan; apabila kosong, parameter Stop Loss akan direset semula
ExitTarget: Pilihan; apabila kosong, parameter Exit Target akan direset semula
Text: Menetapkan parameter catatan nota pada posisi

Semua bidang lain dalam struktur Pesanan akan diabaikan apabila kaedah ChangeOrder dipanggil.

NOTA: Jika mana-mana bidang di atas dibiarkan kosong, nilai default akan diandaikan, bukan nilai sebelumnya yang berkaitan dengan pesanan. Contohnya, jika ChangeOrder dipanggil dengan bidang ExitStopLoss kosong, nilai Exit Stop Loss akan direset semula – ia tidak akan mempunyai nilai seperti sebelum panggilan ChangeOrder.

Contoh – PHP: Kod berikut mengubah pesanan.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$order -> OrderID = "CR82JA01D";
$order -> Price = 8756.24;
$order -> PriceType = "LIMIT";
$order -> ExitTarget = 8765;
$order -> Quantity = 10;
$order -> DurationType = "GTD";
$order -> Duration = date("c", time() + 3600);
$order -> Text = "test order from my script";

$api -> ChangeOrder($order);

?>

Contoh – Visual Basic: Kod berikut mengubah pesanan.

Dim api As StreamsterApi = New StreamsterApi

Dim o As Order = New Order

o.OrderID = "K82LVC9DR"
o.Price = 8756.24
o.PriceSpecified = True
o.PriceType = "LIMIT"
o.ExitTarget = 8765
o.ExitTargetSpecified = True
o.Quantity = 10
o.QuantitySpecified = True
o.DurationType = "GTD"
o.Duration = DateAdd("d", 1, Now())
o.DurationSpecified = True
o.Text = "test order from my script"

api.ChangeOrder(o)
3.3. CancelOrder

CancelOrder membatalkan pesanan dengan ID Perintah yang diberikan. Kaedah CancelOrder mempunyai satu parameter, rentetan “OrderID” yang menentukan perintah yang akan dibatalkan. Kaedah CancelOrder tidak mempunyai nilai pulangan.

Contoh – PHP: Kod berikut membatalkan pesanan.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$api -> CancelOrder("Z4AEVG7Z0");

?>

Contoh – Visual Basic: Kod berikut membatalkan pesanan.

Dim api As StreamsterApi = New StreamsterApi

api.CancelOrder("Z4AEVG7Z0")
3.4. ChangePosition

ChangePosition mengubah parameter tertentu bagi posisi terbuka. Kaedah ChangePosition mempunyai satu parameter, struktur “Position”, yang menentukan posisi ID yang akan ditukar dan parameter baru bagi posisi..

Bidang berikut dalam struktur Posisi adalah sah dan digunakan semasa kaedah ChangePosition dipanggil:

PositionID: Mengandungi ID posisi yang akan diubah
ExitStopLoss: Menetapkan parameter Exist Stop Loss; apabila kosong, parameter Exit Stop Loss akan direset semula untuk posisi itu
ExitTarget: Menetapkan parameter Exist Target; apabila kosong, parameter Exit Target akan direset semula untuk posisi itu
Text: Menetapkan parameter catatan nota pada posisi

Semua bidang lain dalam struktur Posisi akan diabaikan apabila kaedah ChangePosition dipanggil.

NOTA: Jika mana-mana bidang di atas dibiarkan kosong, nilai default akan diandaikan, bukan nilai sebelumnya yang berkaitan dengan pesanan. Contohnya, jika ChangePosition dipanggil dengan bidang ExitStopLoss kosong, nilai Exit Stop Loss akan direset semula – ia tidak akan mempunyai nilai seperti sebelum panggilan ChangePosition.

Contoh – PHP: Kod berikut mengubah parameter posisi.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$position -> PositionID = "B2HN72VL3";
$position -> ExitStopLoss = 3.20;
$position -> ExitTarget = 3.50;
$position -> Text = "hello world";

$api -> ChangePosition($position);

?>

Contoh – Visual Basic: Kod berikut mengubah parameter posisi.

Dim api As StreamsterApi = New StreamsterApi

Dim p As Position = New Position

p.PositionID = "B2HN72VL3"
p.ExitStopLoss = 3.20
p.ExitStopLossSpecified = True
p.ExitTarget = 3.50
p.ExitTargetSpecified = True
p.Text = "hello world"

api.ChangePosition(p)
3.5. ClosePosition

ClosePosition menutup posisi dengan ID Posisi yang diberikan. Kaedah ClosePosition mempunyai satu parameter, rentetan “PositionID” yang menyatakan posisi ditutup. Kaedah ClosePosition tidak mempunyai nilai pulangan.

Contoh – PHP: Kod berikut menutupkan posisi.

<?php

$api = new SoapClient ("http://127.0.0.1:8018/service.wsdl",
    array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$api -> ClosePosition("B2HN72VL3");

?>

Contoh – Visual Basic: Kod berikut menutupkan posisi.

Dim api As StreamsterApi = New StreamsterApi

api.ClosePosition("B2HN72VL3")

Hantarkan komen dan cadangan anda tentang API Streamster.

We look forward to receiving your input and improving content on this page to help you utilize the API to its full extent.

Sertai komuniti pedagang yang berpengetahuan

Ia hanya memerlukan masa 30 saat.

Pendedahan risiko

Dagangan instrumen kewangan melibatkan risiko yang ketara, termasuk kemungkinan mengalamai kerugian atas modal dan kerugian lain dan tidak sesuai untuk semua orang awam.

Anda perlu membuat penilaian bebas sama ada perdagangan sesuai untuk anda memandangkan keadaan kewangan anda, pengalaman pelaburan, toleransi risiko, dan faktor lain yang berkaitan.

 


© 2018 Agea

Pin It on Pinterest