Skip to content

Instantly share code, notes, and snippets.

@ekam230
Created April 22, 2018 16:00
Show Gist options
  • Save ekam230/bb125163fd19bc8873a963a4e2fa933c to your computer and use it in GitHub Desktop.
Save ekam230/bb125163fd19bc8873a963a4e2fa933c to your computer and use it in GitHub Desktop.
//проверяю открытые позиции
$openpos=$bitmex2->getOpenPositions();
if ($openpos != Array()) {
message("You have open position. I try close it. Wait...");
//если бай то закрываюсь селом
if ($openpos[0]["liquidationPrice"] < 1000){
message("You have Buy Open Position");
$orderNow = array();
while ($orderNow != TRUE)
{point_zero1:
while ($orderNow != TRUE) {
$priceNow = False;
while ($priceNow != TRUE){
$priceNow=$bitmex2->getTicker("XBTUSD");usleep(510);
}
message("Get price");
$orderNow=$bitmex2->createOrder("Limit","Sell",$priceNow["ask"],$quantityusd);
message("Try Get Order");usleep(510);}
message("Order Recieve");
$getOrder=array();
while ($getOrder != TRUE) {
$getOrder=$bitmex2->getOrder($orderNow["orderID"]);
usleep(510);
}
message ("Order status ".$getOrder["ordStatus"]);
if ($getOrder["ordStatus"] == "Filled" or $getOrder["ordStatus"] =="PartiallyFilled"){
message("Order Filled");
}
// elseif ($getOrder["ordStatus"] == "Canceled") {
// message("Order Cancel. Retry create order");
// $orderNow = array();
// usleep(510);
// goto point_zero1;
// }
elseif ($getOrder["ordStatus"] == "New") {
sleep(10);
message("Check order status");
$getOrder=array();
while ($getOrder != TRUE) {
$getOrder=$bitmex2->getOrder($orderNow["orderID"]);
usleep(510);
}
message ("Order status ".$getOrder["ordStatus"]);
if ($getOrder["ordStatus"] == "New"){
while ($cancelorder !=TRUE){
message("Try Cancel Order");
$cancelorder = $bitmex2->cancelAllOpenOrders();
usleep(505);
$i++;
if ($i == 3){
$openpos=$bitmex2->getOpenPositions();
usleep(505);
echo "Order slipped to Open Position! Stop Cancel Order.";
if ($openpos == False) $cancelorder = TRUE;
else $i=0;
}
}
message("Cancel Order OK");
$orderNow = array();
usleep(510);
goto point_zero1;
}
}
}
}
//если селл то закрываюсь баем
elseif ($openpos[0]["liquidationPrice"] > 90000000){
$i=0;
message("You have Sell Open Position");
$orderNow = array();
while ($orderNow != TRUE)
{point_zero2:
while ($orderNow != TRUE) {
$priceNow = False;
while ($priceNow != TRUE){
$priceNow=$bitmex2->getTicker("XBTUSD");usleep(510);
}
message("Get price");
$orderNow=$bitmex2->createOrder("Limit","Buy",$priceNow["bid"],$quantityusd);
message("Try Get Order");usleep(510);}
message("Order Recieve");
$getOrder=array();
while ($getOrder != TRUE) {
$getOrder=$bitmex2->getOrder($orderNow["orderID"]);
usleep(510);
}
message ("Order status ".$getOrder["ordStatus"]);
if ($getOrder["ordStatus"] == "Filled" or $getOrder["ordStatus"] =="PartiallyFilled"){
message("Order Filled");
}
elseif ($getOrder["ordStatus"] == "Canceled") {
message("Order Cancel. Retry create order");
$orderNow = array();
usleep(510);
goto point_zero2;
}
elseif ($getOrder["ordStatus"] == "New") {
sleep(10);
message("Check order status");
$getOrder=array();
while ($getOrder != TRUE) {
$getOrder=$bitmex2->getOrder($orderNow["orderID"]);
usleep(510);
}
message ("Order status ".$getOrder["ordStatus"]);
if ($getOrder["ordStatus"] == "New"){
while ($cancelorder !=TRUE){
message("Try Cancel Order");
$cancelorder = $bitmex2->cancelAllOpenOrders();
usleep(505);
$i++;
if ($i == 3){
$openpos=$bitmex2->getOpenPositions();
usleep(505);
echo "Order slipped to Open Position! Stop Cancel Order.";
if ($openpos == False) $cancelorder = TRUE;
else $i=0;
}
}
message("Cancel Order OK");
$orderNow = array();
usleep(510);
goto point_zero2;
}
}
}
}
OrderMessage($orderNow);
$i=0;
message ("Open Position Closed. Lets Trade.");
}
//no open position lets trade
else message("No Open position - Lets Trade");
sleep(1);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment