
如何使用 DeepSeek 和 Dexscreener 构建免费的 AI 加密交易机器人?
最后,您可以要求 DeepSeek 为您的机器人创建 UI。尽管由于流量太大,我无法显示它,但 DeepSeek 成功地为我的机器人创建了一个 UI,使其准备好进行交易和分析来自 Dexscreener 的数据。“避免使用虚假数量的硬币,通过你的算法检查它是否是假的,或者使用与 Dexscreener 兼容的 Pocket Universe API。构建的一个简单的 AI 加密交易机器人实现了这一
我使用DeepSeek AI和Dexscreener API构建的一个简单的 AI 加密交易机器人实现了这一目标。在本文中,我将逐步指导您如何构建像我一样的机器人。
DeepSeek 最近发布了R1,这是一种先进的 AI 模型。您可以将其视为 ChatGPT 的免费开源版本,但增加了一些功能。这使它成为构建 AI 驱动应用程序(包括交易机器人)的绝佳工具。Dexscreener 是一种用于跟踪去中心化交易所 (DEX) 的强大工具。它提供有关代币价格、流动性和交易量的实时数据,对加密货币交易者来说必不可少。
步骤 1:入门 首先,在此注册 DeepSeek AI 。
它可以免费使用,并允许您运行自定义提示来构建和部署机器人。 写下你的第一个提示 首先让 DeepSeek AI 充当一位经验丰富的程序员:
“你好。请假装你是一个专业程序员一个哈佛学位和10年的经验。
创造一个机器人到与 Dexscreener 交互。
我们需要到解析、保存和分析每一枚坚固/抽取/成为层的硬币1、上线CEX等到找到模式”。
这将为您的机器人生成初始代码。该机器人将与 Dexscreener API 交互以获取实时数据并进行分析。
第 2 步:添加过滤器和黑名单
加密货币交易存在风险。为了使机器人更安全,我们需要添加过滤器和黑名单。这些功能将:
- 过滤掉有风险的代币。
- 将与诈骗相关的开发商列入黑名单。
为了使机器人更加强大,我们需要添加过滤器和黑名单以避免有风险的令牌。使用以下提示:
“修改代码 以使用过滤器、硬币黑名单和开发者黑名单将开发人员列入黑名单。
并将所有这些设置放入配置文件中。”
步骤 3:避免虚假音量
具有虚假交易量的代币可能会欺骗您的机器人。要检测虚假交易量,请集成Pocket Universe API。
更新你的机器人
使用以下提示:
“避免使用虚假数量的硬币,通过你的算法检查它是否是假的,或者使用与 Dexscreener 兼容的 Pocket Universe API。”
这会为您的机器人添加一个验证步骤,确保它不会交易不可靠的代币。
步骤 4:防止地毯被拉扯
为了避免诈骗,请与RugCheck.xyz集成。此外,我们可以检测代币供应是否捆绑,这通常是一个危险信号。使用以下提示:
“检查 http://rugcheck.xyz 上的每个代币,并仅与标记为“良好”的合约进行交互。
另外,检查代币的供应是否未捆绑。
如果捆绑 - 黑名单+dev 黑名单。”
第 5 步:自动交易
对于自动交易,请集成BonkBot或Trojan等机器人。这些机器人可以根据您的机器人信号执行交易。 合并代码并添加通知 为了执行交易,我们可以集成现有的交易机器人,如BonkBot或Trojan。我们还将添加 Telegram 通知支持。使用以下提示:
“要交易选定的代币,请通过 Telegram 使用 BonkBot,同时添加 TG 支持以获取买入/卖出通知,并将所有 代码合并为一体。
另外,请写出如何启动此代码。”
第 6 步:启动你的机器人
启动机器人的方法如下: 克隆机器人的存储库(如果您还没有,请向 DeepSeek 索取代码)。 安装依赖项:
pip 安装 -r 要求.txt txt
config.json
使用您的过滤器和 API 密钥配置文件。
运行机器人:
python 交易机器人.py py
步骤 7:可选 — 添加 UI
最后,您可以要求 DeepSeek 为您的机器人创建 UI。尽管由于流量太大,我无法显示它,但 DeepSeek 成功地为我的机器人创建了一个 UI,使其准备好进行交易和分析来自 Dexscreener 的数据。 询问DeepSeek:
为我的机器人创建一个简单的 Web UI,其中包含过滤器、日志和交易仪表板。
完整代码也可以在这里找到
import requests
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
import psycopg2
from sqlalchemy import create_engine
from typing import Dict, List, Optional
# Enhanced Configuration
CONFIG = {
"DB": {
"dbname": "dexscreener",
"user": "admin",
"password": "your_password",
"host": "localhost",
"port": "5432"
},
"FILTERS": {
"min_liquidity": 5000, # USD
"min_age_days": 3,
"coin_blacklist": [
"0x123...def", # Known scam token address
"SUSPECTCOIN" # Blacklisted symbol
],
"dev_blacklist": [
"0x456...abc", # Known rug developer address
"0x789...fed" # Another scam developer
],
"chain_whitelist": ["ethereum", "binance-smart-chain"]
}
}
class EnhancedDexScreenerBot:
def __init__(self):
self.engine = create_engine(
f'postgresql+psycopg2://{CONFIG["DB"]["user"]}:{CONFIG["DB"]["password"]}'
f'@{CONFIG["DB"]["host"]}/{CONFIG["DB"]["dbname"]}'
)
self._init_db()
self.model = IsolationForest(n_estimators=100, contamination=0.01)
self.historical_data = self._load_historical_data()
def _init_db(self):
"""Initialize database with additional security tables"""
with self.engine.connect() as conn:
conn.execute("""
CREATE TABLE IF NOT EXISTS blacklist (
address VARCHAR(42) PRIMARY KEY,
type VARCHAR(20) CHECK (type IN ('coin', 'dev')),
reason TEXT,
listed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_blacklist_type ON blacklist(type);
""")
# Migrate config blacklists to database
self._seed_initial_blacklists()
def _seed_initial_blacklists(self):
"""Initialize blacklists from config"""
with self.engine.connect() as conn:
# Seed coin blacklist
for address in CONFIG["FILTERS"]["coin_blacklist"]:
conn.execute(
"""INSERT INTO blacklist (address, type)
VALUES (%s, 'coin')
ON CONFLICT (address) DO NOTHING""",
(address,)
)
# Seed dev blacklist
for address in CONFIG["FILTERS"]["dev_blacklist"]:
conn.execute(
"""INSERT INTO blacklist (address, type)
VALUES (%s, 'dev')
ON CONFLICT (address) DO NOTHING""",
(address,)
)
def apply_filters(self, df: pd.DataFrame) -> pd.DataFrame:
"""Apply all security and quality filters"""
# Chain whitelist filter
df = df[df['chain'].isin(CONFIG["FILTERS"]["chain_whitelist"])]
# Liquidity filter
df = df[df['liquidity'] >= CONFIG["FILTERS"]["min_liquidity"]]
# Age filter
min_age = datetime.utcnow() - timedelta(days=CONFIG["FILTERS"]["min_age_days"])
df = df[pd.to_datetime(df['created_at']) < min_age]
# Database blacklist check
blacklisted_coins = pd.read_sql(
"SELECT address FROM blacklist WHERE type = 'coin'",
self.engine
)['address'].tolist()
blacklisted_devs = pd.read_sql(
"SELECT address FROM blacklist WHERE type = 'dev'",
self.engine
)['address'].tolist()
# Address and symbol checks
df = df[
~df['pair_address'].isin(blacklisted_coins) &
~df['base_token_address'].isin(blacklisted_coins) &
~df['creator_address'].isin(blacklisted_devs) &
~df['base_token_name'].isin(CONFIG["FILTERS"]["coin_blacklist"])
]
return df
def process_data(self, raw_data: List[Dict]) -> pd.DataFrame:
"""Enhanced data processing with security fields"""
df = pd.DataFrame(raw_data)[[
'pairAddress', 'baseToken', 'quoteToken', 'priceUsd',
'liquidity', 'volume', 'chainId', 'dexId', 'createdAt'
]]
processed = pd.DataFrame({
'pair_address': df['pairAddress'],
'base_token_name': df['baseToken'].apply(lambda x: x['name']),
'base_token_address': df['baseToken'].apply(lambda x: x['address']),
'quote_token_address': df['quoteToken'].apply(lambda x: x['address']),
'price': pd.to_numeric(df['priceUsd']),
'liquidity': pd.to_numeric(df['liquidity']),
'volume_24h': pd.to_numeric(df['volume']['h24']),
'chain': df['chainId'],
'exchange': df['dexId'],
'created_at': pd.to_datetime(df['createdAt'], unit='ms'),
'timestamp': datetime.utcnow()
})
# Apply security filters
processed = self.apply_filters(processed)
return processed
def detect_anomalies(self, new_data: pd.DataFrame) -> pd.DataFrame:
"""Anomaly detection with blacklist awareness"""
if not new_data.empty:
features = new_data[['price', 'liquidity', 'volume_24h']]
features = np.log1p(features)
self.model.fit(self.historical_data)
anomalies = self.model.predict(features)
new_data['anomaly_score'] = self.model.decision_function(features)
return new_data[anomalies == -1]
return pd.DataFrame()
def analyze_market_events(self, anomalous_data: pd.DataFrame):
"""Enhanced analysis with blacklist monitoring"""
for _, row in anomalous_data.iterrows():
# Check for blacklist pattern matches
if self._detect_blacklist_pattern(row):
self._log_event(row, 'BLACKLIST_PATTERN')
# Existing detection logic
...
def _detect_blacklist_pattern(self, row: pd.Series) -> bool:
"""Detect patterns matching known blacklist characteristics"""
# Check for new addresses similar to blacklisted ones
similar_coins = pd.read_sql(f"""
SELECT COUNT(*) FROM blacklist
WHERE type = 'coin'
AND similarity(address, '{row['base_token_address']}') > 0.8
""", self.engine).scalar()
similar_devs = pd.read_sql(f"""
SELECT COUNT(*) FROM blacklist
WHERE type = 'dev'
AND similarity(address, '{row['creator_address']}') > 0.8
""", self.engine).scalar()
return similar_coins > 0 or similar_devs > 0
def add_to_blacklist(self, address: str, list_type: str, reason: str):
"""Programmatically add entries to blacklist"""
with self.engine.connect() as conn:
conn.execute(
"""INSERT INTO blacklist (address, type, reason)
VALUES (%s, %s, %s)
ON CONFLICT (address) DO UPDATE SET reason = EXCLUDED.reason""",
(address, list_type, reason)
)
def run(self):
"""Enhanced main loop with filtering"""
while True:
try:
raw_data = self.fetch_pair_data()
processed_data = self.process_data(raw_data)
if not processed_data.empty:
anomalies = self.detect_anomalies(processed_data)
self.analyze_market_events(anomalies)
processed_data.to_sql(
'pairs', self.engine,
if_exists='append', index=False
)
self.historical_data = pd.concat(
[self.historical_data, processed_data]
).tail(100000)
# Update blacklists periodically
self._refresh_blacklists()
time.sleep(60) # Add sleep between iterations
except Exception as e:
print(f"Runtime error: {e}")
def _refresh_blacklists(self):
"""Refresh blacklists from external sources"""
# Example: Sync with community-maintained blacklists
try:
response = requests.get("https://api.gopluslabs.io/api/v1/token_security/1")
data = response.json()
for token in data['tokens']:
if token['is_honeypot']:
self.add_to_blacklist(
token['contract_address'],
'coin',
'Automated honeypot detection'
)
except Exception as e:
print(f"Blacklist refresh failed: {e}")
# Example usage with blacklist management
if __name__ == "__main__":
bot = EnhancedDexScreenerBot()
# Manually add suspicious entry
bot.add_to_blacklist(
"0xNEW...SCAM",
"dev",
"Suspicious deployment pattern"
)
bot.run()
1
通过遵循这些步骤,您可以创建一个实时的加密货币交易机器人,该机器人可以:
足够聪明,可以避免诈骗。
能够有效地检测趋势和模式。
如果我能在一夜之间将100美元变成35,000美元,你也可以!试试看,祝你交易愉快!🚀
免责声明:加密货币交易涉及高风险。此机器人是协助您分析的工具,不是财务建议。请始终负责任地进行交易。
1
更多推荐
所有评论(0)