币安链(BSC)打狗策略脚本详细教程
“打狗策略”在加密货币社区(尤其是中文社区)中,指的是在Binance Smart Chain(BSC,以前称Binance Chain)上狙击新推出的meme币(俗称“土狗”或“金狗”),特别是狗主题或高潜力meme币的交易策略。这种策略属于一级市场链上交易,核心是通过自动化脚本快速监控新流动性池(LP)创建,并在币价暴涨前买入,追求100x甚至更高回报。但请注意,这是一种高风险策略,涉及资金损失、合约漏洞和 rug pull(跑路)风险。DYOR(Do Your Own Research),本教程仅供学习参考,不构成投资建议。
本教程将从入门准备开始,逐步介绍中阶检查、高阶策略,最后提供一个基于Python的简单“打狗”脚本示例(使用web3.py库)。脚本实现监控PancakeSwap新pair并自动买入的逻辑。整个过程假设你有基本的Python编程知识和BSC钱包(如MetaMask)。
当前日期:2025年10月9日,BSC生态活跃,meme币热潮持续,但监管环境趋严,请确保合规操作。
第一步:入门准备(基础设置)
1.1 钱包和资金准备
- 创建/导入钱包:使用MetaMask或Trust Wallet,切换到BSC主网(Chain ID: 56,RPC: https://bsc-dataseed.binance.org/)。
- 获取BNB:在Binance交易所购买BNB(用于Gas费),转入钱包。建议准备0.1-1 BNB作为Gas,另准备1-10 BNB作为交易资金。
- 导入私钥:脚本需要你的私钥(危险!仅在安全环境中使用)。警告:私钥泄露将导致资金丢失,建议使用硬件钱包或测试环境。
1.2 安装开发环境
- Python环境:安装Python 3.10+。
- 依赖库:运行以下命令安装:
text
pip install web3 requests python-dotenv
- web3:与BSC交互。
- requests:API调用(如Dexscreener)。
- python-dotenv:管理环境变量(私钥)。
1.3 核心工具和API
- 监控工具:
- Dexscreener.com:实时监控新pair(过滤BSC链,搜索“new pairs”)。
- Honeypot.is:检查合约是否为honeypot(陷阱)。
- Rugcheck.xyz:检查流动性锁定和rug风险。
- 交易DEX:PancakeSwap(BSC上最大AMM)。
- API密钥:可选,Dexscreener API(免费,但限速)或Infura/Alchemy的BSC RPC(免费tier)。
提示:加入Telegram群或Twitter(如@PancakeSwap)监控新币信号。使用Debot或GMGN.ai作为信号源。
第二步:中阶心法(合约检查与风险评估)
在脚本买入前,必须手动或自动化检查合约。盲目打狗易中招。
2.1 基本检查清单
使用表格总结关键检查点:
检查项 | 工具/方法 | 阈值/标准 | 为什么重要? |
---|---|---|---|
流动性锁定 | Rugcheck.xyz | 锁定>6个月,比例>80% | 防止rug pull(开发者撤资)。 |
税费 | 合约代码或Honeypot.is | 买入/卖出税<10% | 高税费吃掉利润。 |
Honeypot | Honeypot.is | 无honeypot标记 | 防止无法卖出。 |
持有者分布 | BscScan.com (Holders tab) | 前10持有者<50% | 避免鲸鱼操控。 |
合约所有者 | BscScan (Contract tab) | 所有者已放弃(renounced) | 防止后门修改。 |
聪明钱追踪 | GMGN.ai 或 Arkham | 跟随聪明钱地址买入 | 提高胜率。 |
2.2 自动化检查脚本片段
在主脚本中集成简单API检查(示例使用Honeypot.is API):
import requests
def check_honeypot(token_address):
url = f"https://api.honeypot.is/v2/IsHoneypot?address={token_address}"
response = requests.get(url)
data = response.json()
if data['IsHoneypot']:
return False # 风险高,跳过
return True
实践:在Dexscreener搜索新BSC pair,复制合约地址,逐一检查。目标:只打“金狗”(潜力高、安全)。
第三步:高阶策略(信号来源与优化)
3.1 信号获取
- 手动:监控Twitter/X(搜索“BSC new meme”)或Dexscreener的“New Pairs”过滤器(排序by age <5min,volume >$10k)。
- 半自动:使用GMGN.ai导入聪明钱地址,追踪其买入。
- 全自动:脚本监听BSC事件(PairCreated)。
3.2 策略变体
- 保守型:等待流动性> $50k,买入0.1 BNB,止盈3x。
- 激进型:新pair <1min买入,目标100x,但Gas战激烈(需高Gas price)。
- 聪明钱跟单:脚本监控特定地址交易,复制买入。
优化提示:Gas费控制在5-20 Gwei;使用多钱包分散风险;设置止损(如果价格跌20%卖出)。
第四步:打狗脚本实现(核心代码)
以下是一个基础的Python脚本:监控PancakeSwap工厂合约的新pair事件,当检测到新狗币(简单过滤:名称含“dog”)时,自动检查并买入。
4.1 环境配置
创建.env文件:
PRIVATE_KEY=你的私钥(无0x)
WALLET_ADDRESS=你的钱包地址
RPC_URL=https://bsc-dataseed.binance.org/
PANCAKE_FACTORY=0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73 # PancakeSwap Factory
WETH=0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c # WBNB
BUY_AMOUNT=0.1 # BNB买入金额
SLIPPAGE=10 # 滑点容忍%
4.2 完整脚本代码
import os
import time
import json
from web3 import Web3
from dotenv import load_dotenv
from web3.middleware import geth_poa_middleware
import requests # 用于检查
load_dotenv()
# 配置
w3 = Web3(Web3.HTTPProvider(os.getenv('RPC_URL')))
w3.middleware_onion.inject(geth_poa_middleware, layer=0)
private_key = os.getenv('PRIVATE_KEY')
wallet_address = os.getenv('WALLET_ADDRESS')
factory_address = os.getenv('PANCAKE_FACTORY')
weth_address = os.getenv('WETH')
buy_amount_wei = w3.to_wei(float(os.getenv('BUY_AMOUNT')), 'ether')
slippage = int(os.getenv('SLIPPAGE'))
# Pancake Router ABI (简化版,用于swap)
router_abi = json.loads('[{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"}]')
router_address = '0x10ED43C718714eb63d5aA57B78B54704E256024E' # Pancake Router V2
router = w3.eth.contract(address=router_address, abi=router_abi)
# Factory ABI (监听PairCreated事件)
factory_abi = json.loads('[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"uint24","name":"fee","type":"uint24"},{"indexed":false,"internalType":"int24","name":"tickSpacing","type":"int24"},{"indexed":false,"internalType":"address","name":"pool","type":"address"}],"name":"PoolCreated","type":"event"}]') # 简化,实际用完整ABI
factory = w3.eth.contract(address=factory_address, abi=factory_abi)
def check_honeypot(token_address):
try:
url = f"https://api.honeypot.is/v2/IsHoneypot?address={token_address}"
response = requests.get(url)
data = response.json()
return not data.get('IsHoneypot', True) # 安全返回True
except:
return False # 出错跳过
def get_token_name(token_address):
# 简化:实际用BscScan API或合约调用
# 这里假设通过API获取,示例返回模拟
return "DOGE-MEME" # 占位,实际实现合约call
def buy_token(token_address):
if not check_honeypot(token_address):
print(f"Token {token_address} unsafe, skipping.")
return False
path = [weth_address, token_address]
amount_out_min = 0 # 实际计算基于slippage
deadline = int(time.time()) + 300 # 5min
tx = router.functions.swapExactETHForTokens(
amount_out_min, path, wallet_address, deadline
).build_transaction({
'from': wallet_address,
'value': buy_amount_wei,
'gas': 300000,
'gasPrice': w3.to_wei('10', 'gwei'),
'nonce': w3.eth.get_transaction_count(wallet_address),
})
signed_tx = w3.eth.account.sign_transaction(tx, private_key)
tx_hash = w3.eth.send_raw_transaction(signed_tx.rawTransaction)
print(f"Buy TX: {tx_hash.hex()}")
return True
# 事件监听
def handle_event(event):
args = event['args']
token0 = args['token0']
token1 = args['token1']
# 假设token1是新meme币
new_token = token1 if token0.lower() == weth_address.lower() else token0
token_name = get_token_name(new_token)
if 'dog' in token_name.lower(): # 简单过滤狗币
print(f"New dog token detected: {new_token}")
buy_token(new_token)
# 启动监听
filter = factory.events.PairCreated.create_filter(fromBlock='latest')
while True:
for event in filter.get_new_entries():
handle_event(event)
time.sleep(2) # 轮询间隔
4.3 脚本说明
- 逻辑:轮询Factory合约的PairCreated事件,过滤含“dog”的新token,检查honeypot后买入。
- 改进点:
- 集成Dexscreener API实时获取token name/volume。
- 添加止盈/止损:监控价格,调用swapTokensForExactETH卖出。
- 多线程:并行检查多个pair。
- 测试:先在BSC测试网运行(RPC: https://data-seed-prebsc-1-s1.binance.org:8545/)。
4.4 如何运行
- 保存代码为dog_sniper.py。
- 运行python dog_sniper.py。
- 监控控制台输出,确认TX在BscScan验证。
- 测试:用小额资金,模拟事件。
第五步:风险与注意事项
5.1 常见陷阱
- Rug Pull:开发者撤LP,脚本无法卖出。
- MEV Bot:你的TX被抢跑,需用Flashbots或高Gas。
- Gas战:热门新币Gas飙升,设置动态gas(w3.eth.gas_price)。
- 法律风险:meme币易涉诈骗,确保不洗钱。
5.2 高级提示
- 多链扩展:改RPC支持ETH/SOL。
- 社区资源:参考Binance Square的“打狗棒法”系列(入门/中阶/高阶),或GitHub搜索“BSC sniper bot”。
- 绩效追踪:用Excel记录胜率,目标>20%中100x。
通过这个教程,你可以从零起步实现自动化打狗。实践时从小额开始,持续优化脚本。祝好运,但记住:加密市场无常,投资需谨慎!如果需要代码调试或扩展,随时问我。