Les ressources ont été chargées... Je charge...

Instructions spéciales d'échange

  • Titres de Futu Il prend en charge FutuNN trading en direct et le trading de démonstration, vous devez téléchargerFutuOpenDUne application. Lors de l' utilisationFutuOpenDPour accéder au trading de démonstration, certains codes d'actions ne sont pas pris en charge, vous ne pouvez donc pas trader, mais l'application mobile FutuOpenD est capable de faire du trading de démonstration. Pour la configuration des objets d'échange, exécutésFutuOpenDlogiciels, etc. sur FMZ Quant, veuillez vous référer àDocument de description de la configuration des titres Futu.

    • Fréquence des appels d'interface PourGetOrder, GetOrders, GetPositions, GetAccountutilisation des fonctionsdonnées mises en cachepar défaut, donc il n'y a pas de limite à la fréquence des appels. Lorsque de nouvelles données sont disponibles,FutuOpenDmettra automatiquement à jour les données, etdonnées mises en cacheseront mises à jour en même temps.

      Leexchange.IO("refresh", true)fonction peut être appelée pour désactiver la mise en cache, sidésactiver le cachealors la fréquence des appels estmaximum de 10 requêtes par 30 secondes, le dépassement de la limite de fréquence signalera une erreur.

    • Code des actions Par exemple:600519.SH

      • Hong Kong
      • États-Unis
      • SH
      • SZ

      Le code de stratégie utilise leexchange.SetContractType()fonction permettant de définir le code boursier, par exemple:

      function main() {
          var info = exchange.SetContractType("600519.SH")    // Set to stock 600519.SH, namely Kweichow Moutai, and the account will be switched to the China mainland market
          Log(info)
          Log(exchange.GetAccount())                          // The currently set stock is Kweichow Moutai. At this time, call the GetAccount function to obtain the account assets, which are the account assets of the China mainland market
          Log(exchange.GetTicker())                           // Obtain the current price information of Kweichow Moutai stock
      }
      
      def main():
          info = exchange.SetContractType("600519.SH")
          Log(info)
          Log(exchange.GetAccount())
          Log(exchange.GetTicker())
      
      void main() {
          auto info = exchange.SetContractType("600519.SH");
          Log(info);
          Log(exchange.GetAccount());
          Log(exchange.GetTicker());
      }
      

      Fonctions permettant de définir la direction de la transactionexchange.SetDirection, des fonctions pour passer des ordresexchange.Buy/exchange.SellJe suis désolée. la fonction de retraitexchange.CancelOrderet la fonction d'ordre de requêteexchange.GetOrdersont utilisés de la même manière que sur le marché à terme.

    • Format des données relatives aux informations relatives au compte: Définir le marché en utilisantTrdMarketpour distinguerHong Kong Market, United States Market, etChina Mainland Market.

      Extrait de laFutu APIla documentation:

      const (
          TrdMarket_TrdMarket_Unknown TrdMarket = 0 //Unknown Trading Market
          TrdMarket_TrdMarket_HK      TrdMarket = 1 //Hong Kong Trading Market
          TrdMarket_TrdMarket_US      TrdMarket = 2 //United States Trading Market
          TrdMarket_TrdMarket_CN      TrdMarket = 3 //China Mainland Trading Market
          TrdMarket_TrdMarket_HKCC    TrdMarket = 4 //Hong Kong A-share Trading Market
          TrdMarket_TrdMarket_Futures TrdMarket = 5 //Futures Trading Market
      )
      

      Obtenez les données d'informations de compte,exchange.GetAccount()la fonction renvoie:

      {
          "Info": [{
              "Header": {
                  ...                 // omit
                  "TrdMarket": 1      // In the Info raw information, market ID, indicates that the account assets are used for trading in the Hong Kong market
              },
              "Funds": {              // Information on the account's assets in that market
                  ...
              }
          }, ...],
          "Stocks": 0,
          "FrozenStocks": 0,
          "Balance": 1000000,         // Asset values in the current market
          "FrozenBalance": 0
      }
      
    • FutuOpenDDistinguer par région en fonction desIntégration intellectuellel'adresse Il existe des restrictions d'accès aux données de marché pour les comptes connectés à partir d'adresses IP non continentales, qui peuvent être trouvées dans la documentation officielle deFutuOpenD.

  • Les contrats à terme avec Binance Il prend en charge le mode de double position des contrats à terme Binance; vous pouvez utiliserexchange.IOPour passer:

    function main() {
        var ret = exchange.IO("api", "POST", "/fapi/v1/positionSide/dual", "dualSidePosition=true")
        // ret : {"code":200,"msg":"success"}
        Log(ret)
    }
    
    def main():
        ret = exchange.IO("api", "POST", "/fapi/v1/positionSide/dual", "dualSidePosition=false")
        Log(ret)
    
    void main() {
        auto ret = exchange.IO("api", "POST", "/fapi/v1/positionSide/dual", "dualSidePosition=true");
        Log(ret);
    }
    

    Il prend en charge la commutation entre la position croisée et la position isolée:

    function main() {
        exchange.SetContractType("swap")
        exchange.IO("cross", true)    // Switch to crossed position
        exchange.IO("cross", false)   // Switch to isolated position
    }
    
    def main():
        exchange.SetContractType("swap")
        exchange.IO("cross", True)
        exchange.IO("cross", False)
    
    void main() {
        exchange.SetContractType("swap");
        exchange.IO("cross", true);
        exchange.IO("cross", false);
    }
    

    Il prend en charge le passage au mode de compte unifié Binance:

    function main() {
        exchange.IO("unified", true)   // Switch to unified account mode
        exchange.IO("unified", false)  // Switch to commom mode
    }
    
    def main():
        exchange.IO("unified", True)
        exchange.IO("unified", False)
    
    void main() {
        exchange.IO("unified", true);
        exchange.IO("unified", false);
    }
    

    Il prend en charge la configuration du mode STP pour les ordres Binance spot/futures:

    function main() {
        // "NONE" indicates that STP mode is disabled, other parameters are: "EXPIRE_TAKER", "EXPIRE_MAKER", "EXPIRE_BOTH"
        exchange.IO("selfTradePreventionMode", "NONE")
    }
    
    def main():
        exchange.IO("selfTradePreventionMode", "NONE")
    
    void main() {
        exchange.IO("selfTradePreventionMode", "NONE");
    }
    
  • Les contrats à terme

    • Adresse du commutateur: Il prend en charge la modification de l'adresse de Huobi Futures participant à la signature, qui n'est pas commuté par défaut.exchange.IO("signHost", "")pour définir une chaîne vide. Utilisationexchange.IO("signHost", "https://aaa.xxx.xxx")modifier l'adresse de base de Huobi Futures participant à la vérification de la signature. Utilisationexchange.IO("base", "https://bbb.xxx.xxx")ouexchange.SetBase("https://bbb.xxx.xxx")pour changer l'adresse de base de l'interface de la plateforme.
    • Commutateur entre position croisée/position isolée: Lorsque la paire de négociation est réglée surXXX_USDT, utilisez la fonctionexchange.SetContractType("swap")pour régler le code du contrat àswaple contrat perpétuel, en utilisantexchange.IO("cross", true)peut passer àUSDT- un contrat perpétuel à marge en mode position croisée.exchange.IO("cross", false)Le paramètre par défaut initial est le mode de position isolée.
    • Position de commutation unidirectionnelle/bidirectionnelle: Utilisationexchange.IO("dual", true)pour passer à une position bidirectionnelle et utiliserexchange.IO("dual", false)pour passer à une position unidirectionnelle.
  • Huobi est un joueur.

    • Échangez des paires spéciales: Il prend en charge les jetons Huobi au comptant, tels que:LINK*(-3); le code défini par la bourse est:link3susdt, qui est écrit lorsque la plateforme de négociation FMZ Quant détermine la paire de négociationLINK3S_USDTJe suis désolée. Il est également possible de changer de paire de négociation dans la stratégie:

      function main() {
          exchange.SetCurrency("LINK3S_USDT")
          Log(exchange.GetTicker())
      }
      
      def main():
          exchange.SetCurrency("LINK3S_USDT")
          Log(exchange.GetTicker())
      
      void main() {
          exchange.SetCurrency("LINK3S_USDT");
          Log(exchange.GetTicker());
      }
      
  • Les échanges de titres de titres de titres de titres de titres de titres de titres

    • Passez au bot de démonstration: L'interface des contrats à terme OKX peut basculer vers l'environnement de test de démo bot des contrats à terme OKX; en utilisantexchange.IO("simulate", true)Si vous souhaitez passer à l'environnement de trading réel, utilisezexchange.IO("simulate", false)La valeur par défaut initiale est l'environnement de trading en direct.
    • Commutateur entre position croisée/position isolée: Il prend en charge la commutation des modes de marge des comptes à terme; utiliseexchange.IO("cross", true)pour passer en mode position croisée et utiliserexchange.IO("cross", false)pour passer au mode de position isolée, la valeur par défaut initiale est le mode de position croisée.
    • Position de commutation unidirectionnelle/bidirectionnelle: Utilisationexchange.IO("dual", true)pour passer à une position bidirectionnelle et utiliserexchange.IO("dual", false)pour passer à une position unidirectionnelle.
  • Le montant de la dette est calculé à partir du montant de la dette.

    • Passez au bot de démonstration: Utilisationexchange.IO("simulate", true)Si vous voulez passer à l'environnement de trading en direct, utilisezexchange.IO("simulate", false)pour passer à la négociation en direct, l'environnement de négociation en direct est le paramètre par défaut initial.
  • Les échanges à terme

    • Commutateur entre position croisée/position isolée: Utilisationexchange.IO("cross", true)pour passer au mode position croisée et utiliserexchange.IO("cross", false)pour passer au mode de position isolée; le paramètre par défaut initial est le mode de position croisée.
    • Interface non prise en charge: L'échange ne prend pas en charge la requête des ordres en attente actuels et l'interface pour la requête des dossiers historiques de négociation du marché, de sorte que leGetOrdersetGetTradesles fonctions ne sont pas prises en charge.
  • Les contrats à terme

    • Commutateur entre position croisée/position isolée: Utilisationexchange.IO("cross", true)pour passer en mode position croisée et utiliserexchange.IO("cross", false)pour passer au mode de position isolée.
    • Position de commutation unidirectionnelle/bidirectionnelle: Utilisationexchange.IO("dual", true)pour passer à une position bidirectionnelle etexchange.IO("dual", false)pour passer à une position unidirectionnelle.
  • Les échanges à terme

    • Commutateur entre position croisée/position isolée: Utilisationexchange.IO("cross", true)pour passer en mode position croisée et utiliserexchange.IO("cross", false)pour passer au mode de position isolée.
  • Les contrats à terme

    • Commutateur entre position croisée/position isolée: Utilisationexchange.IO("cross", true)pour passer en mode position croisée et utiliserexchange.IO("cross", false)pour passer au mode de position isolée.
    • Position de commutation unidirectionnelle/bidirectionnelle: Utilisationexchange.IO("dual", true)pour passer à une position bidirectionnelle etexchange.IO("dual", false)pour passer à une position unidirectionnelle.
    • Changez le compte unifié: Utilisation des contrats à terme GateIOexchange.IO("unified", true)pour changer de compte unifié;exchange.IO("unified", false)de revenir à des comptes non unifiés.
  • La porte

    • Changez le compte unifié: Utilisations au comptant de GateIOexchange.IO("unified", true)pour changer de compte unifié; utiliseexchange.IO("unified", false)de revenir à des comptes non unifiés.
  • Les échanges à terme

    • Commutateur entre position croisée/position isolée: Utilisationexchange.IO("cross", true)pour passer au mode position croisée, utiliserexchange.IO("cross", false)pour passer en mode de position isolée.exchange.IO("unified", true)pour passer à l'interface de marge unifiée, utiliserexchange.IO("unified", false)pour revenir à l'interface contractuelle normale.
    • Passez à l'interface de marge unifiée: Utilisationexchange.IO("unified", true)de passer à l'interface de marge unifiée, etexchange.IO("unified", false)pour revenir à l'interface contractuelle commune.
    • Position de commutation unidirectionnelle/bidirectionnelle: Utilisationexchange.IO("dual", true)pour passer à une position bidirectionnelle etexchange.IO("dual", false)pour passer à une position unidirectionnelle.
  • Les contrats à terme

    • Commutateur entre position croisée/position isolée: Utilisationexchange.IO("cross", true)pour passer au mode position croisée, utiliserexchange.IO("cross", false)pour passer en mode de position isolée.exchange.IO("dual", true)pour passer à des positions bidirectionnelles etexchange.IO("dual", false)pour passer à des positions unidirectionnelles.
    • Position de commutation unidirectionnelle/bidirectionnelle: Utilisationexchange.IO("dual", true)pour passer à une position bidirectionnelle etexchange.IO("dual", false)pour passer à une position unidirectionnelle.
  • Les titres à terme

    • Commutateur entre position croisée/position isolée: Utilisationexchange.IO("cross", true)pour passer en mode position croisée et utiliserexchange.IO("cross", false)pour passer au mode de position isolée.
  • BitMEX

    • Ordre d'achat sur le marché Dans l'interface de placement des ordres de négociation au comptant de BitMEX, la quantité d'ordre pour un ordre d'achat sur le marché n'est pas le montant, mais le nombre de pièces négociées.
  • Bitfinex

    • Ordre d'achat sur le marché L'interface des ordres de négociation au comptant de BItfinex, la quantité d'ordre de l'ordre d'achat de l'ordre de marché n'est pas le montant, mais le nombre de pièces de négociation.
  • Les contrats à terme

    • Position de commutation unidirectionnelle/bidirectionnelle: Utilisationexchange.IO("dual", true)pour passer à une position bidirectionnelle etexchange.IO("dual", false)pour passer à une position unidirectionnelle.
    • Interface de ligne K L'interface d'échange K-line répond avec des données qui ne contiennent pas de données Bar actuelles.
    • Commutateur entre position croisée/position isolée: L'échange ne fournit pas d'interface permettant de basculer entre une position croisée et une position isolée, ce qui doit être mis en place sur l'échange.
  • Sac à dos Il prend en charge le réglage du mode STP pour les commandes au comptant Backpack:

    function main() {
        // "Allow" means to allow self-dealing, "RejectTaker" "RejectMaker" "RejectBoth" "Allow"
        exchange.IO("selfTradePreventionMode", "Allow")
    }
    
    def main():
        exchange.IO("selfTradePreventionMode", "Allow")
    
    void main() {
        exchange.IO("selfTradePreventionMode", "Allow");
    }
    
  • Les échanges à terme

    • Commutateur entre position croisée/position isolée: Utilisationexchange.IO("cross", true)pour passer en mode position croisée et utiliserexchange.IO("cross", false)pour passer au mode de position isolée.
  • Le montant de la garantie est calculé à partir du montant de la garantie

    • Lorsque vous passez une commande, vous devez passer le signingKey: Après vous être connecté à l'échange en utilisant un portefeuille, vous pouvez copier la clé privée signingKey sur la page de gestion APIKEY de l'échange. Par exemple, si la clé privée de signingKey estxxx, utiliserexchange.IO("signingKey", "xxx")Il faut noter que signingKey a une limite de temps.exchange.IOLa fonction renvoie la clé publique de signingKey.
  • Les contrats à terme

    • Commutateur entre position croisée/position isolée: Seulement lemulti-collateralLe contrat de bourse Futures_Kraken prend en charge les réglages de position croisée, de position isolée et de levier. Utilisationexchange.IO("cross", true)pour passer en mode position croisée et utiliserexchange.IO("cross", false)pour passer au mode de position isolée.
  • Les contrats à terme

    • RéglageaccountIdLe texte est le suivant: Utilisationexchange.IO("accountId", "xxx")Pour régler les comptes.
  • Gémeaux

    • Passez sous compte: Utilisationexchange.IO("subAccount", "xxx")pour changer de sous-compte.
  • Le montant de la garantie est calculé à partir du montant de la garantie

    • Les ordresIdDéfinition: L'ordre d'échangeIdIl s'agit de laIdL'heure et l'ordre réelIdLe but est de soutenir leexchange.GetOrder(Id)Depuis l'horodatage de commande dans les données renvoyées par l'échange changera avec l'état de commande, si vous avez besoin d'enregistrer l'ordreIdet autres informations localement, veuillez séparer la commande réelleId record.
  • Les échanges à terme

    • Passer au réseau d'essai: Interface dYdX futures, vous pouvez basculer vers l'environnement de réseau de test, utiliserexchange.IO("simulate", true)Si vous voulez passer à l'environnement de réseau principal, utilisezexchange.IO("simulate", false), le paramètre par défaut initial est l'environnement de réseau principal.
    • Fixer une limiteexchange.IO("limitFee", 0.001)Définissez le taux des frais.
    • Définir les secondes de validitéexchange.IO("secondsOfValidity", 60 * 60 * 24 * 28)La valeur par défaut est 60 * 60 * 24 * 28.
  • Les contrats à terme

    • Commutateur entre position croisée/position isolée: Utilisationexchange.IO("cross", true)pour passer en mode position croisée et utiliserexchange.IO("cross", false)pour passer au mode de position isolée.
    • Position de commutation unidirectionnelle/bidirectionnelle: Utilisationexchange.IO("dual", true)pour passer à une position bidirectionnelle et utiliserexchange.IO("dual", false)pour passer à une position unidirectionnelle.
  • Les contrats à terme

    • Commutateur entre position croisée/position isolée: Utilisationexchange.IO("cross", true)pour passer en mode position croisée et utiliserexchange.IO("cross", false)pour passer au mode de position isolée.
Causes courantes d'erreur de négociation en direct et de sortie anormale