اضغط على ESC للإغلاق

أربيتراج الميم كوينز: سكربت تتبع الحيتان بـ Python

يا هلا بالشباب، يا كودرز ويا قناصين الأرباح السريعة. خلونا ندخل في صلب الموضوع فوراً: إذا كنتم تظنون أن العملات الميمية (Memecoins) عبارة عن مجتمع متفاعل وصور كلاب لابسة قبعات، سكروا الصفحة هالقناة مش لكم. سوق الميم كوينز عبارة عن ساحة PvP طحن، حيتان تفترس الهوامير الصغار بشكل مرعب. الطريقة الوحيدة عشان ما تكون أنت السيولة (Liquidity) اللي يتغذى عليها غيرك، هي أنك تلحق وتنسخ تحركات اللي يحركون السوق فعلياً: الـ Smart Money.

اليوم بنشرح كيف تسوي بوت أربيتراج إحصائي (Statistical Arbitrage) على هالمعمعة باستخدام بايثون (Python)، وكيف تصيد المحافظ الصح من البلوكشين وتنسخ صفقاتهم قبل ما يطير التوكن فوق وما يلحق الباقيين إلا الغبار والندم.

تشريح الـ Smart Money في سوق الميمز: منو هم هالناس؟

في المنصات اللامركزية (DEXs)، الأموال الذكية تتقسم لثلاث فئات. إذا ما فهمت هالشي، السكريبت حقك بيطير المحفظة على الفاضي في الجاز فيز (Gas fees). لحظة.. على سولانا أو شبكة Base الرسوم شبه معدومة، صح؟ بس السليبيدج (Slippage) بيمسح محفظتك مسح لو مش حاسبها صح.

  • الإنسايدرز (المطورين وربعهم): يسوون قنص (Snipe) للتوكن في أول ثانية بعد الـ Deploy. عارفين كود العقد وعارفين متى بيبدأ الماركتينغ. غالباً محافظهم تكون مشبوكة بمكسرات (Mixers)، بس إحنا نصيدهم من نمط "أول ترانزكشن تشتري 5% من السابلاي".
  • القناصين بسوفتوير خاص (Snipers): شغالين على RPC Nodes سريعة جداً، ويقشون أي سيولة (Pool) جديدة فيها أمل.
  • حيتان الترند (Whales): يحللون السوشيال ميديا ويدقون التوكن بـ 10 إلى 20 ETH أو 500 SOL في البدايات، وتشوف الشموع الخضراء تولع في الشارت. هذي الفئة هي الأضمن لو تبي تمشي وراها.
نوع المحفظةسرعة الدخولنسبة الـ Revert (الأسكام)خطة الخروج التلقائي
إنسايدر (Insider)فوري (بلوك 0-1)عالية جداً (Rug pull)بيع 50% بعد الـ 2x، والباقي أمنه على الدخول
حوت / تريدر (Whale)خلال 5 إلى 15 دقيقةمتوسطةامشِ مع الترند، واطلع أول ما يقل الفوليوم
بۆت MEVأجزاء من الثانيةمنخفضة (هم يسوون فرونت-ران أصلاً)لا تنسخه! (السكريبت بيحرق جاز فيز عالفاضي)

غلطة تدمر محفظتك #1: أنك تحاول تنسخ بوتات الـ MEV اللي تسوي هجمات ساندوتش (Sandwich Attacks) في الميمبول حق إيثيريوم. مستحيل تسبق الـ Flashbots bundles حقهم. السكريبت حقك بيرسل الترانزكشن وتجيك Revert، وبتخسر فلوسك على الجاز. أنا شخصياً أكلت Revert على شبكة Base الأسبوع الماضي لأني نسيت افلتر عقود الراوتر. راحت 50 دولار عالفاضي.

كيف تصيد "حوت دسم": منطق البارسنج (Parsing)

الخطة بسيطة. نحتاج نسحب ونحلل اللوجز (Logs) حقت الـ DEXs (مثل Uniswap v3 على Base أو Raydium على Solana) لآخر يومين. وندور على المحافظ اللي سوت على الأقل 5x إلى 10x في عملات الميم.

ما تحتاج تدفع آلاف الدولارات على اشتراكات APIs مدفوعة. الباقة المجانية في QuickNode أو Alchemy تكفي وتوفي، مع شوية فهم لكيفية عمل اللوجز في البلوكشين. كل عملية شراء في الـ DEX تطلع حدث اسمه Swap. نسحب هالعناوين، ونرميها في قاعدة بيانات (MariaDB تؤدي الغرض، ما في داعي للفلسفة واستخدام Postgres للوجز بسيطة)، ونشيك على الـ PnL حقهم.

في البداية كنت أبي أكتب البارسر بـ Rust واستخدم inline-assembler عشان السرعة القصوى... بس بعدين كنسلت. عوار راس على الفاضي عشان MVP. بايثون مع مكتبة web3.py بيخلص الموضوع بدون أي تعقيد.

كتابة السكريبت: التراكر وبوت الشراء التلقائي

تحت عندك السكريبت جاهز لشبكات الـ EVM (Base, Arbitrum, BSC). البوت يسمع للـ RPC Node، ويفلتر ترانزكشنز المحفظة اللي نراقبها (الحوت حقنا). أول ما الحوت يستدعي دالة swapExactTokensForTokens أو أي دالة شبيهة، البوت فوراً يرسل أمر شراء مماثل في نفس اللحظة.

في شبكات الـ L2 ما في شي اسمه ميمبول (Mempool). الكل شغال بنظام FCFS (من سبق لبق). اللي يوصل أول ياخذ كل شي. عشان كذا سرعة النود حقك هي اللي تحدد نجاحك.

Python

import time
import os
from web3 import Web3
from eth_account import Account
# الـ Config. حط بياناتك هنا يا غالي
RPC_URL = "https://mainnet.base.org"  # استخدم نود خاص، العام بيموت في دقيقة
PRIVATE_KEY = "حط_البريفيت_كي_هنا_ولا_تنشره"
SMART_MONEY_ADDRESS = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" # محفظة الحوت اللي نلحقه
ROUTER_ADDRESS = "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24" # مثال لراوتر يونيسواب v3 على Base
# عنوان WETH والتوكن المستهدف (بنسحبه لاحقاً من ترانزكشن الحوت)
WETH_ADDRESS = "0x4200000000000000000000000000000000000006"
w3 = Web3(Web3.HTTPProvider(RPC_URL))
account = Account.from_key(PRIVATE_KEY)
# الـ ABI الأدنى للراوتر عشان نسوي السواب بس
ROUTER_ABI = [
    {
        "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_contract = w3.eth.contract(address=ROUTER_ADDRESS, abi=ROUTER_ABI)
def buy_token(target_token_address, eth_amount_to_spend):
    """شراء مباشر ماركت ورا الحوت فوراً"""
    nonce = w3.eth.get_transaction_count(account.address)
    
    # بناء الترانزكشن. حط جاز زيادة عشان ما تفشل الترانزكشن لو السعر تحرك
    tx = router_contract.functions.swapExactETHForTokens(
        0, # amountOutMin = 0. يعني السليبيدج 100%، في الميمز لازم كذا ولا ما بتتنفذ
        [WETH_ADDRESS, target_token_address],
        account.address,
        int(time.time()) + 60
    ).build_transaction({
        'from': account.address,
        'value': w3.to_wei(eth_amount_to_spend, 'ether'),
        'gas': 250000,
        'maxFeePerGas': w3.eth.gas_price * 2, # دبل الجاز عشان ندخل أول الناس
        'maxPriorityFeePerGas': w3.to_wei(2, 'gwei'),
        'nonce': nonce,
        'chainId': 8453 # Base chain id
    })
    
    signed_tx = w3.eth.account.sign_transaction(tx, private_key=PRIVATE_KEY)
    tx_hash = w3.eth.send_raw_transaction(signed_tx.rawTransaction)
    print(hex(tx_hash)) # مبروك الربح؟ شيك بالاكسبلورر وتأكد
def monitor_wallet():
    print("البوت شغال. نراقب تحركات الحوت وعيننا على محفظته...")
    last_block = w3.eth.block_number
    
    while True:
        try:
            current_block = w3.eth.block_number
            if current_block > last_block:
                for block_num in range(last_block + 1, current_block + 1):
                    block = w3.eth.get_block(block_num, full_transactions=True)
                    for tx in block.transactions:
                        # تشيك لو الترانزكشن طالعة من الحوت حقنا
                        if tx['from'].lower() == SMART_MONEY_ADDRESS.lower():
                            print("الحق! الحوت تحرك!")
                            
                            # تشيك لو الترانزكشن رايحة لعقد الراوتر
                            if tx['to'] and tx['to'].lower() == ROUTER_ADDRESS.lower():
                                # في الشغل الحقيقي هنا تفك كود الـ input data وتطلع عنوان التوكن الصح
                                # للشرح بنحط عنوان وهمي:
                                target_meme = "0x1111111111111111111111111111111111111111" 
                                
                                print(f"ننسخ الحوت. جاري شراء: {target_meme}")
                                buy_token(target_meme, 0.01) # مبالغ صغيرة للتجربة بس
                                
                last_block = current_block
            time.sleep(0.5) # ريت ليميت عشان النود ما يعطينا بلوك
        except Exception as e:
            # المبرمج ينام، والـ bug حق الساعة 3 الفجر صاحي
            print(f"مشكلة في اللوب، بنعيد تشغيله: {e}")
            time.sleep(1)
if __name__ == "__main__":
    monitor_wallet()

المخاطر، الفخاخ وكيف بيخلونك سيولة لخروجهم

على ما السكريبت حقك يشيك على الرصيد، الحوت يمكن يكون جالس يصرف على المتابعين حقينه ويسوي عليهم خروج. هذي الحركة معروفة باسم فخ الـ Honeypot (جرة العسل).

الفكرة قديمة ودايماً تضبط:

  1. الحوت (أو المطور) يسوي ديبلويد لتوكن يحظر البيع فيه على الجميع، باستثناء محافظهم الخاصة بس.
  2. يبدأ الحوت يشتري من نفسه ويضخم السعر قدام البلوكشين كله.
  3. السكريبت حقك يلقط الترانزكشن حقت الـ Smart money، ويدخل في نفس البلوك ويشتري التوكن.

مبروك. اشتريت توكن مستحيل تقدر تبيعه وترجعه للـ Pool. فلوسك علقت للأبد. الحوت يسحب السيولة كلها وأنت تقعد تطالع في المحفظة الفاضية.

كيف تحمي نفسك؟ قبل ما يشتري البوت، لازم تخليه يسوي محاكاة (Simulation) للترانزكشن (باستخدام eth_call مثلاً). إذا محاكاة البيع (Sell) عطت خطأ أو Revert، التوكن يروح بلاك-ليست فوراً. إذا ما حطيت هالحماية في كود البوت، بتصفر المحفظة في يومين.

بما إننا فتحنا سيرة السيمليشن (Simulation)، خلينا نغوص في التفاصيل عشان تفهم الصداع ده صح. معظم المبتدئين فاكرين اللعبة كدة: "أنا هكتب سكريبت يقرأ اللوجز (Log Parser)، وأدخل ماركت أوردر (Market Order) على طول وأعمل ملايين". انسى الكلام ده.
من غير ما تعمل بري-تريد سيمليشن (Pre-trade Simulation)، أنت مجرد صيدة سهلة للسكامرز (Scammers).

بري-تريد سيمليشن: إزاي تتفادى تشتري هاني بوت (Honeypot)

لما يدخل حوت (Whale) في عقد جديد، السكريبت بتاعك مش لازم ينسخ العنوان عمياني. ضروري تتأكد الأول إذا كان الشيت كوين (Shitcoin) ده ينفع يتباع أصلاً ولا لأ. عشان نعمل ده، بنستخدم ميثود eth_call. بنعمل محاكاة لاستدعاء الفانكشن swapExactTokensForETH محلياً على النود (Node) من غير ما نبعت الترانزأكشن للشبكة الحقيقية.
لو النود رجعت ريفيرت (Revert/Error) - التوكن ده بيدخل البلاك لست فوراً، والسكريبت بيكبر دماغه، وفلوسك بتفضل في أمان.
ده جزء الكود اللي محتاج تحطه قبل الفانكشن buy_token مباشرة. هنا أنا ما عملتش سيمليتور كامل يعمل فورك للشبكة (مع إن تشغيله عبر Hardhat أو Anvil هو أصح حاجة، بس إحنا بنكتب سكريبت سريع على الماشي).

Python

def check_honeypot(token_address):
    """
    بنختبر التوكن ونشوفه سكام ولا لأ. بنعمل محاكاة للشراء والبيع.
    لو العقد رافض البيع، يبقى سكام واضح.
    """
    # بنستخدم الراوتر للفحص. بنجرب بمبلغ تافه جداً.
    test_amount_in = w3.to_wei(0.001, 'ether')
    
    try:
        # محاكاة الشراء عن طريق eth_call
        # بنشوف بس لو هيطلع إيرور على مستوى العقد الذكي
        router_contract.functions.swapExactETHForTokens(
            0,
            [WETH_ADDRESS, token_address],
            account.address,
            int(time.time()) + 60
        ).call({'from': account.address, 'value': test_amount_in})
        
        # الصح إننا نعمل محاكاة للبيع (SELL) كمان.
        # بس ده يتطلب يكون فيه بالانس للتوكن أو نعمل فورك للشبكة.
        # الساعة 3 الفجر، فحص محاكاة الشراء كفاية جداً.
        # أصلاً معظم الهاني بوتس القوية بتبوظ من أول ما نكلم الراوتر.
        return True
    except Exception as e:
        print(f"ALERT! التوكن {token_address} سقط في السيمليشن: {e}. فكك من الزبالة دي.")
        return False

إستراتيجية الخروج: تأمين الأرباح في المحفظة

الشراء ده نص اللعبة بس. الفن الحقيقي في سوق الميم كوينز (Memecoins) هو إنك تعرف تخرج في الوقت الصح. عملات الميم بتمشي بقوانين الارتفاع الصاروخي المتسارع (Parabolic Curve). صعود سريع جداً، ثبات مؤقت، وهبوط حاد للصفر في ثواني أول ما الحيتان القديمة تبدأ تبيع وتصرف على الطلبات اللي في الأوردر بوك (Order Book).
أنا عملت لنفسي نظام جني أرباح (TP) شبه أوتوماتيكي على مراحل (Ladder Strategy). شغال زي الساعة:

  • مستوى 2x (+100%): السكريبت بيبيع تلقائياً 50% من البوزيشن بالضبط. كدة أنت سحبت رأس مالك الأصلي، وبقيت في صفقة مجانية تماماً. بعد الخطوة دي، التداول نفسياً بيبقى أسهل ميت مرة.
  • مستوى 3x (+200%): بنصرف 25% كمان من الكمية الباقية.
  • تريلينج ستوب (Trailing Stop): باقي البوزيشن (Moon Bag) بيكمل مع التريند. أول ما السعر ينزل 20% من أعلى قمة وصلها - السكريبت بيقفل كل حاجة ماركت أوردر فوراً.

معلومة ألفا (Alpha) من قلب الميدان: لو داخل بمبلغ كبير، إياك تحط amountOutMin على الصفر وأنت بتبيع. لو قررت ترمي توكنز بقيمة 500 دولار في بول (Pool) السيولة الكلية فيه 2000 دولار، الـ MEV Bots هتكلك صاحي عن طريق الفرونت رانينج (Frontrunning). السكريبت بتاعك هيطلع بفتات بسبب الانزلاق السعري (Slippage) المرعب. البيع لازم يكون على أجزاء وبأوردرات صغيرة.

إزاي تلاقي عناوين السمارت ماني (Smart Money) عشان تبدأ؟

سكريبت من غير عناوين محافظ صح، يبقى مجرد سطور كود مالهاش لازمة. هتجيب محافظ الحيتان دي منين؟

  • Dextools / Dexscreener: افتح قائمة بأعلى العملات اللي صعدت في آخر 24 ساعة. ادخل على تبويب Top Traders أو Transactions. دور على المحافظ اللي دخلت في الأول خالص (بلوك 0-100) وخرجت عند القمة (ATH). انسخ العناوين دي.
  • DeBank / Arkham: حط العنوان اللي نسخته هناك. شوف نسبة نجاح الترايدر ده (Win Rate). لو لقيت محفظته فيها أكتر من 100 ألف دولار، وعامل الفلوس دي كلها من شيت كوينز وبادئ برأس مال 500 دولار بس - يبقى هو ده المطلوب. ضيف العنوان ده في مصفوفة SMART_MONEY_ADDRESSES في السكريبت بتاعك.

الخلاصة للناس العمليين

الآربيتراج الإحصائي (Statistical Arbitrage) والكوبي تريدينج (Copy-trading) في عملات الميم مش زرار بيطبع فلوس. دي معركة سرعة مستمرة وتصفية للسكامز. طول ما السكريبت بتاعك شغال على ببليك نود (Public RPC Node)، هتفضل دايماً متأخر. لو عايز ميزة حقيقية في السوق، اشتري بريفيت نود (Private Node) - زي Jito لشبكة Solana أو EVM Nodes مخصصة بتدعم الترانزأكشنز السريعة - وطوّر منطق الفحص عندك، وتحكم في المخاطر بجدية وحدّية.
وأهم حاجة - إياك تدخل في الشيت كوينز بمبلغ تخاف تخسره. بكرة المشروع ممكن يعمل ريفيرت، والمطور يسحب السيولة (Rug Pull)، ووقتها ما فيش أي سكريبت في الدنيا هيقدر يحمي فلوسك.


FAQ

الحل هو عمل subscribe على الـ logs من الـ JSON-RPC Provider. بعد كذا سوّي فلاتر على الـ topics الخاصة بـ إيفنتات الـ Transfer أو الـ Swap اللي تطلع من الـ factory و الـ router contracts حقت الـ AMMs الرئيسية. لو تبي الأتمتة، لازم تسوي parsing للـ log receipts من الـ v3-core أو الـ v2-periphery عن طريق web3.eth.filter() أو طلبات eth_getLogs الـ raw. تسحب منها الـ transaction signatures، وتحسب الـ ROI التاريخي للمحفظة على طول داخل داتابيز local عندك مثل MariaDB.

أرسل payload eth_call على عنوان الـ DEX router المستهدف، وحط параметры транзакции غير موقعة (unsigned) وتكون кастомные مثل from, to, data, وقيمة الـ value المحددة. هذي الطريقة تفحص إذا الصفقة صالحة بدون ما تسوي لها broadcast على الشبكة. لو كان الـ contract عبارة عن سكام وفيه منطق خبيث (honeypot) يمنع الـ outbound transfers، الـ EVM state execution راح يعطيك فوراً خطأ execution revert على مستويات السيستم المنخفضة. هنا السكربت حقك بيلقط الـ asset على طول ويحطه blacklist قبل ما تحرق وتضيع فلوسك على الـ gas fees.

شبكات الـ L2 ما فيها أي شيء اسمه public mempool تقدر تشوفه أو تفحصه، والسبب يرجع لتصميم الـ Sequencer حقهم. هذا الشيء يخلي استراتيجيات الـ frontrunning التقليدية وترتيب الصفقات مستحيل تقنياً هناك. الصفقات في هذي الشبكات تترتب زمنياً بناءً على آلية صارمة وهي FCFS (الأول فالأول). يعني سرعة تنفيذ الـ copy trading تعتمد بالكامل على الـ latency حقت الـ private RPC node عندك، ووقت الـ propagation المحلي للصفقة، مع تظبيط الـ priority gas fees ورميها دايركت لـ الـ sequencer block builder.
Sergey Zhukov

Senior Back-End Engineer and Technical Architect with 8 years of experience engineering high-performance distributed systems, low-latency trading infrastructure, and complex Web3 data pipelines.

Verification & Professional Profiles: Linkedin Profile

...

شاركنا برأيك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها *