“打狗策略”在加密货币社区(尤其是中文社区)中,指的是在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):

python
 
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文件:

text
 
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 完整脚本代码

python
 
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后买入。
  • 改进点

4.4 如何运行

  1. 保存代码为dog_sniper.py。
  2. 运行python dog_sniper.py。
  3. 监控控制台输出,确认TX在BscScan验证。
  4. 测试:用小额资金,模拟事件。

第五步:风险与注意事项

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。

通过这个教程,你可以从零起步实现自动化打狗。实践时从小额开始,持续优化脚本。祝好运,但记住:加密市场无常,投资需谨慎!如果需要代码调试或扩展,随时问我。