Maison développement back-end Tutoriel Python Explication détaillée d'exemples de décorateurs, itérateurs et générateurs en Python

Explication détaillée d'exemples de décorateurs, itérateurs et générateurs en Python

Jul 26, 2017 pm 03:45 PM
python 迭代

L'éditeur suivant vous présentera un cliché sur les décorateurs, les itérateurs et les générateurs en Python. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'œil

Lors de l'apprentissage de python, les trois "outils célèbres" doivent être considérés comme une petite difficulté pour les personnes qui n'ont aucune expérience en programmation dans d'autres langages. Ce blog concerne le blogueur lui-même Decorators. , les itérateurs et la compréhension du générateur sont expliqués.

Pourquoi utiliser des décorateurs

Que sont les décorateurs ? « Décoration » signifie littéralement l'acte d'embellir un bâtiment spécifique selon une certaine idée et un certain style. Le soi-disant « décorateur » est un outil pour Python, un décorateur est une méthode qui peut être utilisée sans modifier le code original. de nouvelles fonctions. Par exemple, une fois qu'un logiciel est en ligne, nous devons ajouter périodiquement de nouvelles fonctions sans modifier le code source ni la façon dont il est appelé. En Python, nous pouvons utiliser des décorateurs pour y parvenir, également lors de l'écriture du code. nous devons également considérer l'évolutivité ultérieure. Examinons étape par étape les décorateurs de Python.

Un exemple simple présente un décorateur sans paramètre

Regardons d'abord quelques lignes de code simples. Le résultat du code est de dormir. pendant 2 secondes, puis imprimez "hello boy!" :


import time
def foo():
 """打印"""
 time.sleep(2)
 print("Hello boy!")
foo()
Copier après la connexion

Nous devons maintenant y ajouter une fonction de synchronisation du programme, mais le code d'origine ne peut pas être modifié :


import time
def timmer(func):
 def wrapper():
  """计时功能"""
  time_start=time.time()
  func()
  time_end=time.time()
  print("Run time is %f "%(time_end-time_start))
 return wrapper
def foo():
 """打印"""
 time.sleep(2)
 print("Hello boy!")
foo=timmer(foo)
foo()
#运行结果
Hello boy!
Run time is 2.000446
Copier après la connexion

Regardez ! Nous avons implémenté cette fonction sans modifier le code d'origine. Comme les fonctions sont aussi des objets, nous pouvons passer la fonction foo comme paramètre à la fonction timmer.

En python, il existe une manière plus concise de remplacer foo=timmer(foo), en utilisant @timmer, qui est appelé sucre syntaxique en python.


import time
def timmer(func):
 def wrapper():
  """计时功能"""
  time_start=time.time()
  func()
  time_end=time.time()
  print("Run time is %f "%(time_end-time_start))
 return wrapper
@timmer  #等于 foo=timmer(foo)
def foo():
 """打印"""
 time.sleep(2)
 print("Hello boy!")
foo()
Copier après la connexion

Analysons le processus d'exécution de la fonction étape par étape :

1. Importez le module horaire

<🎜. >

import time
Copier après la connexion
2. Définir la fonction timer La définition de la fonction n'exécutera pas le code dans la fonction


def timmer(func):
Copier après la connexion
Copier après la connexion
3. decorator, tout à fait Pour foo=timer(foo), la fonction foo est passée en paramètre à la fonction timmer


@timmer
Copier après la connexion
4. paramètre func=foo


def timmer(func):
Copier après la connexion
Copier après la connexion
5. Dans la fonction timmer, le wrapper de fonction est défini, le code à l'intérieur de la fonction wrapper n'est pas exécuté, puis le wrapper de fonction. est renvoyé comme valeur de retour


return wrapper
Copier après la connexion
6. Attribuez la valeur de retour à foo À l'étape 3, foo=timmer(foo), souvenez-vous-en

<. 🎜>


7. Exécutez la fonction foo(), mais la fonction ici n'est plus celle d'origine. Vous pouvez imprimer foo Oui, car nous avons passé le wrapper à foo. valeur de retour avant, donc ici Exécuter foo exécute le wrapper Pour confirmer cela, vous pouvez également imprimer le wrapper Leurs adresses mémoire sont les mêmes, donc elles pointent toutes vers le même espace d'adressage :
@timmer #等于 foo=timmer(foo)
Copier après la connexion

.


8. Exécutez le wrapper de fonction, enregistrez l'heure de début et exécutez la fonction func. À l'étape 4, func se voit attribuer une valeur par foo. L'exécution de func exécute la fonction d'origine foo, dort pendant. 2 secondes, et imprime la chaîne ;
<function timmer.<locals>.wrapper at 0x00000180E0A8A950> #打印foo的结果
<function timmer.<locals>.wrapper at 0x000001F10AD8A950> #打印wrapper的结果
foo()
Copier après la connexion


9. Enregistrez l'heure de fin, imprimez la durée d'exécution et le programme se termine.
time_start=time.time()
 time.sleep(2)
 print("Hello boy!")
Copier après la connexion


Hello boy!
Run time is 2.000161
Copier après la connexion

Décorateur de paramètresDans l'exemple précédent, la fonction originale n'a pas de paramètres , Voyons comment modifier la fonction décorateur lorsque la fonction d'origine a des paramètres ?


Lorsque la fonction d'origine doit transmettre des paramètres, dans cet exemple, my_max a deux positions qui doivent être transmises. Il vous suffit d'ajouter deux paramètres à le wrapper. Paramètres formels, dans cet exemple il est également possible d'utiliser des paramètres variables (*args, **kwargs) Il s'agit de @timmer qui est égal à my_max(1,2)=timmer(my_max)
import time
def timmer(func):
 def wrapper(*args,**kwargs):
  """计时功能"""
  start_time=time.time()
  res=func(*args,**kwargs)
  end_time=time.time()
  print("Run time is %f"%(end_time-start_time))
  return res
 return wrapper
@timmer 
def my_max(x,y):
 """返回两个值的最大值"""
 res=x if x > y else y
 time.sleep(2)
 return res
res=my_max(1,2)
print(res)
#运行结果
Run time is 2.000175
Copier après la connexion
<🎜. > Faisons-le ensuite Regardez un

décorateur avec des paramètres :


Si le décorateur lui-même a des paramètres, un plus de fonctions intégrées dans la couche, analysons le processus d'exécution étape par étape :

def auth(filetype):
 def auth2(func):
  def wrapper(*args,**kwargs):
   if filetype == "file":
    username=input("Please input your username:")
    passwd=input("Please input your password:")
    if passwd == &#39;123456&#39; and username == &#39;Frank&#39;:
     print("Login successful")
     func()
    else:
     print("login error!")
   if filetype == &#39;SQL&#39;:
    print("No SQL")
  return wrapper
 return auth2
@auth(filetype=&#39;file&#39;) #先先返回一个auth2 ==》@auth2 ==》 index=auth2(index) ==》 index=wrapper
def index():
 print("Welcome to China")
index()
Copier après la connexion
1 Définissons la fonction auth


2. Exécutez d'abord la fonction auth(filetype='file')

def auth(filetype):
Copier après la connexion


3. Exécutez la fonction auth, définissez une fonction auth2 et renvoyez-la comme valeur de retour, alors ce @auth (filetype='file') est équivalent à @auth2, qui équivaut à index=auth2(index)

@auth(filetype=&#39;file&#39;)
Copier après la connexion



4. Exécution auth2(index), func=index, définissez le wrapper de fonction et renvoyez-le. À ce stade, index est en fait égal au wrapper

def auth(filetype):
 def auth2(func):
  def wrapper(*args,**kwargs):
  return wrapper
 return auth2
Copier après la connexion


5. Lors de l'exécution. index, c'est-à-dire exécuter le wrapper, exécuter la fonction Code interne, filetype=="file", invite l'utilisateur à afficher le nom d'utilisateur et le mot de passe et détermine si l'entrée est correcte. Si elle est correcte, la fonction func() est exécutée. , ce qui équivaut à exécuter l'index original et à imprimer

def wrapper(*args,**kwargs):
return wrapper
Copier après la connexion


Exécutez le test de résultat

if filetype == "file":
    username=input("Please input your username:")
    passwd=input("Please input your password:")
    if passwd == &#39;123456&#39; and username == &#39;Frank&#39;:
     print("Login successful")
     func()
Copier après la connexion

Please input your username:Frank
Please input your password:123456
Login successful
Welcome to China
Copier après la connexion

装饰器也是可以被叠加的:


import time
#
def timmer(func):
 def wrapper():
  """计时功能"""
  time_start=time.time()
  func()
  time_end=time.time()
  print("Run time is %f "%(time_end-time_start))
  # print("---",wrapper)
 return wrapper
def auth(filetype):
 def auth2(func):
  def wrapper(*args,**kwargs):
   if filetype == "file":
    username=input("Please input your username:")
    passwd=input("Please input your password:")
    if passwd == &#39;123456&#39; and username == &#39;Frank&#39;:
     print("Login successful")
     func()
    else:
     print("login error!")
   if filetype == 'SQL':
    print("No SQL")
  return wrapper
 return auth2
@timmer
@auth(filetype=&#39;file&#39;) #先先返回一个auth2 ==》@auth2 ==》 index=auth2() ==》 index=wrapper
def index():
 print("Welcome to China")
index()

#测试结果
Please input your username:Frank
Please input your password:123456
Login successful
Welcome to China
Run time is 7.966267
Copier après la connexion

注释优化


import time
def timmer(func):
 def wrapper():
  """计算程序运行时间"""
  start_time=time.time()
  func()
  end_time=time.time()
  print("Run time is %s:"%(end_time-start_time))
 return wrapper
@timmer
def my_index():
 """打印欢迎"""
 time.sleep(1)
 print("Welcome to China!")
my_index()
print(my_index.__doc__)

#运行结果
Welcome to China!
Run time is 1.0005640983581543:
计算程序运行时间
Copier après la connexion

当我们使用了装饰器的时候,虽然没有修改代码本身,但是在运行的时候,比如上面这个例子,运行my_index其实在运行wrapper了,如果我们打印my_index的注释信息,会打印wrapper()的注释信息,那么该怎么优化?

可以在模块functools中导入wraps,具体见以下:


import time
from functools import wraps
def timmer(func):
 @wraps(func)
 def wrapper():
  """计算程序运行时间"""
  start_time=time.time()
  func()
  end_time=time.time()
  print("Run time is %s:"%(end_time-start_time))
 return wrapper
@timmer
def my_index():
 """打印欢迎"""
 time.sleep(1)
 print("Welcome to China!")
my_index()
print(my_index.__doc__)
#运行结果
Welcome to China!
Run time is 1.0003223419189453:
打印欢迎
Copier après la connexion

这样,在表面看来,原函数没有发生任何变化。

为什么要用迭代器

从字面意思,迭代就是重复反馈过程的活动,其目的通常是为了比较所需目标或结果,在python中可以用迭代器来实现,先来描述一下迭代器的优缺点,如果看不懂可以先略过,等看完本博客再回头看,相信你会理解其中的意思:

优点:

迭代器在取值的时候是不依赖于索引的,这样就可以遍历那些没有索引的对象,比如字典和文件

迭代器与列表相比,迭代器是惰性计算,更节省内存

缺点:

无法获取迭代器的长度,没有列表灵活

只能往后取值,不能倒着取值

什么是迭代器

那么在python什么才算是迭代器呢?

只要对象有__iter__(),那么它就是可迭代的,迭代器可以使用函数next()来取值

下面我们来看一个简单的迭代器:


my_list=[1,2,3]
li=iter(my_list)  #li=my_list.__iter__()
print(li)
print(next(li))
print(next(li))
print(next(li))
#运行结果
<list_iterator object at 0x000002591652C470>
2
Copier après la connexion

可以看到,使用内置函数iter可以将列表转换成一个列表迭代器,使用next()获取值,一次值取一个值,当值取完了,再使用一次next()的时候,会报异常StopIteration,可以通过异常处理的方式来避免,try-except-else就是一个最常用的异常处理结构:


my_list=[1,2,3]
li=iter(my_list)
while True:
 try:
  print(next(li))
 except StopIteration:
  print("Over")
  break
 else:
  print("get!")
#运行结果
get!
get!
get!
Over
Copier après la connexion

查看可迭代对象和迭代器对象

使用Iterable模块可以判断对象是否是可迭代的:


from collections import Iterable
s="hello" #定义字符串
l=[1,2,3,4] #定义列表
t=(1,2,3) #定义元组
d={&#39;a&#39;:1} #定义字典
set1={1,2,3,4} #定义集合
f=open("a.txt") #定义文本
# 查看是否都是可迭代的
print(isinstance(s,Iterable))
print(isinstance(l,Iterable))
print(isinstance(t,Iterable))
print(isinstance(d,Iterable))
print(isinstance(set1,Iterable))
print(isinstance(f,Iterable))
#运行结果
True
True
True
True
True
True
Copier après la connexion

通过判断,可以确定我们所知道的常用的数据类型都是可以被迭代的。

使用Iterator模块可以判断对象是否是迭代器:


from collections import Iterable,Iterator
s="hello"
l=[1,2,3,4]
t=(1,2,3)
d={&#39;a&#39;:1}
set1={1,2,3,4}
f=open("a.txt")
# 查看是否都是可迭代的
print(isinstance(s,Iterator))
print(isinstance(l,Iterator))
print(isinstance(t,Iterator))
print(isinstance(d,Iterator))
print(isinstance(set1,Iterator))
print(isinstance(f,Iterator))
#运行结果
False
False
False
False
False
True
Copier après la connexion

可知只有文件是迭代器,所以可以直接使用next(),而不需要转换成迭代器。

什么是生成器

生产器就是一个是带有yield的函数

下面来看一个简单的生成器


def my_yield():
 print(&#39;first&#39;)
 yield 1
g=my_yield()
print(g)
#运行结果
<generator object my_yield at 0x0000024366D7E258>
Copier après la connexion

生成器也是一个迭代器


from collections import Iterator
def my_yield():
 print(&#39;first&#39;)
 yield 1
g=my_yield()
print(isinstance(g,Iterator))
#运行结果
True
Copier après la connexion

那就可以用next()来取值了


print(next(g))
#运行结果
first
1
Copier après la connexion

生成器的执行过程

我们来看以下下面这个例子,了解生产的执行流程


def my_yield():
 print(&#39;first&#39;)
 yield 1
 print(&#39;second&#39;)
 yield 2
 print(&#39;Third&#39;)
 yield 3
g=my_yield()
next(g)
next(g)
next(g)
#运行结果
first
second
Third
Copier après la connexion

1.定义生成器my_yield,并将其赋值给了g


def my_yield():
g=my_yield()
Copier après la connexion

2.开始第一次执行next(),开始执行生产器函数 ,打印第一语句,遇到yileld的时候暂停,并返回一个1,如果你想打印返回值的话,这里会显示1


 print(&#39;first&#39;)
 yield 1
Copier après la connexion

3.再执行2次,打印字符串(每执行一次都会暂停一下)


 print(&#39;second&#39;)
 yield 2
 print(&#39;Third&#39;)
 yield 3
Copier après la connexion

4.如果再加一次next()就会报出StopIteration异常了

生成器在每次暂停的时候,函数的状态将被保存下来,来看下面的例子:


def foo():
 i=0
 while True:
  yield i
  i+=1
g=foo()
for num in g:
 if num < 10:
  print(num)
 else:
  break
#运行结果
Copier après la connexion

for循环中隐含next(),每next一次,暂停一次,if语句判断一次,然后执行下一次next,可以看到我们的while循环并没有无限循环下去,而是状态被保存下来了。

协程函数

我们来看下面这个生成器和执行结果


def eater(name):
 print(&#39;%s start to eat food&#39;%name)
 while True:
  food=yield
  print(&#39;%s get %s ,to start eat&#39;%(name,food))
 print(&#39;done&#39;)
e=eater(&#39;Frank&#39;)
next(e)
e.send(&#39;egg&#39;) #给yield送一个值,并继续执行代码
e.send(&#39;tomato&#39;)
#运行结果
Frank start to eat food
Frank get egg ,to start eat
Frank get tomato ,to start eat
Copier après la connexion

send可直接以向yield传值,含有yield表达式的函数我们也称为协程函数,

这运行程序的时候,不可以直接send,必须先使用next()初始化生成器。

如果存在多个这样的函数,那么我们每次执行的时候都要去next()一下,为了防止忘记这一步操作,可以使用装饰器初始化:


def init(func):
 def wrapper(*args):
  res = func(*args)
  next(res)  # 在这里执行next
  return res
 return wrapper
@init
def eater(name):
 print(&#39;%s start to eat food&#39;%name)
 while True:
  food=yield
  print(&#39;%s get %s ,to start eat&#39;%(name,food))
 print(&#39;done&#39;)
e=eater(&#39;Frank&#39;)
e.send(&#39;egg&#39;) 
e.send(&#39;tomato&#39;)
Copier après la connexion

所以在程序中有更多的生成器需要初始化的时候,直接调用这个装饰器就可以了。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment programmer Deepseek Comment programmer Deepseek Feb 19, 2025 pm 05:36 PM

Deepseek n'est pas un langage de programmation, mais un concept de recherche profonde. La mise en œuvre de Deepseek nécessite une sélection en fonction des langues existantes. Pour différents scénarios d'application, il est nécessaire de choisir la langue et les algorithmes appropriés et de combiner la technologie d'apprentissage automatique. La qualité du code, la maintenabilité et les tests sont cruciaux. Ce n'est qu'en choisissant le bon langage de programmation, les algorithmes et les bons outils en fonction de vos besoins et de l'écriture de code de haute qualité que Deepseek peut être mis en œuvre avec succès.

Comment accéder à Deepseekapi - Deepseekapi Access Call Tutoriel Comment accéder à Deepseekapi - Deepseekapi Access Call Tutoriel Mar 12, 2025 pm 12:24 PM

Explication détaillée de Deepseekapi Access and Call: Quick Start Guide Cet article vous guidera en détail comment accéder et appeler Deepseekapi, vous aidant facilement à utiliser des modèles d'IA puissants. Étape 1: Obtenez la clé de l'API pour accéder au site officiel Deepseek et cliquez sur la "plate-forme ouverte" dans le coin supérieur droit. Vous obtiendrez un certain nombre de jetons gratuits (utilisés pour mesurer l'utilisation de l'API). Dans le menu de gauche, cliquez sur "Apikeys" puis cliquez sur "Créer Apikey". Nommez votre apikey (par exemple, "test") et copiez immédiatement la clé générée. Assurez-vous d'enregistrer correctement cette clé, car elle ne sera affichée qu'une seule fois

Mise à jour majeure de Pi Coin: PI Bank arrive! Mise à jour majeure de Pi Coin: PI Bank arrive! Mar 03, 2025 pm 06:18 PM

Pinetwork est sur le point de lancer Pibank, une plate-forme bancaire mobile révolutionnaire! Pinetwork a publié aujourd'hui une mise à jour majeure sur Elmahrosa (face) Pimisrbank, appelée Pibank, qui intègre parfaitement les services bancaires traditionnels avec des fonctions de crypto-monnaie de pignon (prend en charge l'échange entre les Fiat Currency tels que le Dollar, l'Euro, Usdt, Usdc, Ripiah avec des crypto-monnaies. Quel est le charme de Pibank? Découvrons! Les principales fonctions de Pibank: gestion unique des comptes bancaires et des actifs de crypto-monnaie. Soutenez les transactions en temps réel et adoptez les biospécies

Logiciel de trading de devises quantitatifs Logiciel de trading de devises quantitatifs Mar 19, 2025 pm 04:06 PM

Cet article explore les fonctions de trading quantitatives des trois principaux échanges, Binance, Okx et Gate.io, visant à aider les commerçants quantitatifs à choisir la bonne plate-forme. L'article introduit d'abord les concepts, les avantages et les défis du trading quantitatif, et explique les fonctions qu'un excellent logiciel de trading quantitatif devrait avoir, tels que le support API, les sources de données, les outils de backtesting et les fonctions de contrôle des risques. Par la suite, les fonctions de trading quantitatives des trois échanges ont été comparées et analysées en détail, soulignant respectivement leurs avantages et leurs inconvénients, et enfin en donnant des suggestions de sélection de plate-forme pour les commerçants quantitatifs de différents niveaux d'expérience, et soulignant l'importance de l'évaluation des risques et du back-test stratégique. Que vous soyez un commerçant quantitatif novice ou expérimenté, cet article vous fournira une référence précieuse

Deepseek Comment déployer le modèle R1 localement - Deepseek installez localement le tutoriel du modèle R1 Deepseek Comment déployer le modèle R1 localement - Deepseek installez localement le tutoriel du modèle R1 Mar 12, 2025 pm 12:15 PM

Guide de déploiement local du modèle DeepseEKR1: Le déverrouillage de l'analyse des données et du potentiel de prédiction Deepseek est un puissant outil d'analyse et de prédiction des données, et son modèle R1 peut fournir un support de modèle efficace et précis pour divers scénarios d'application. Ce guide vous fournira des instructions détaillées sur la façon de déployer le modèle Deepseekr1 dans votre environnement local pour vous aider à démarrer rapidement et à profiter de sa puissance. Exigences du système pour l'étape de préparation des étapes de déploiement locale du modèle Deepseekr1: Veuillez vous assurer que votre machine locale répond aux exigences de configuration du système minimum de Deepseek (pour des exigences spécifiques, veuillez vous référer au document officiel Deepseek). Installation du logiciel: Téléchargez et installez le package d'installation fourni par Deepseek et suivez le guide d'installation

Comment implémenter les appels avec Python - Guide de méthode d'appel Deepseek Python Comment implémenter les appels avec Python - Guide de méthode d'appel Deepseek Python Mar 12, 2025 pm 12:51 PM

Bibliothèque DeepSeek Deep Learning Python Call Guide Deepseek est une puissante bibliothèque d'apprentissage en profondeur qui peut être utilisée pour construire et former divers modèles de réseau neuronal. Cet article présentera en détail comment utiliser Python pour appeler Deepseek pour le développement de l'apprentissage en profondeur. Étapes pour appeler Deepseek avec Python 1. Installez Deepseek assurez-vous que l'environnement Python et les outils PIP sont installés. Installez Deepseek avec la commande suivante: pipinstalldeepseek2.

Qu'est-ce que Binance Alpha Qu'est-ce que Binance Alpha Mar 25, 2025 pm 03:39 PM

ANBI Alpha est une plate-forme d'agrégation d'outils et de services pour les commerçants et investisseurs professionnels sur la plate-forme Binance. Ses fonctions principales incluent: 1. Strategy Square, qui rassemble différentes stratégies de trading; 2. Builder de stratégie, qui autorise les stratégies de trading personnalisées; 3. Analyse avancée des données, fournissant des outils d'analyse de marché; 4. Services de niveau institutionnel pour répondre aux besoins des investisseurs professionnels.

Quels échanges peuvent envoyer des instructions de couverture d'option via le côté trading Quels échanges peuvent envoyer des instructions de couverture d'option via le côté trading Mar 28, 2025 pm 03:27 PM

En 2024, les échanges de crypto-monnaie traditionnels qui prennent en charge l'envoi directement des instructions de couverture des options via les terminaux de trading: 1. Déribit prend en charge des stratégies avancées telles que la couverture de Delta et le scalping gamma, et fournissent une couverture Web / API en un clic; 2. OKX prend en charge les outils de combinaison de couverture et de stratégie de volatilité et un panneau de couverture intégré sur le Web / l'application; 3. Binance prend en charge la couverture protectrice, nécessitant des positions manuelles ou API; 4. CME, offrant des options standard, nécessitant un accès via les courtiers; 5. Ledgerx, fournissant des outils de couverture de niveau professionnel, nécessitant une certification institutionnelle.

See all articles