İlk kod denemesi, başaramadım MQL5

 
Herkese merhaba,
İlk kez mq5l denememde aşağıdaki kriterler ile kodu oluşturmaya çalıştım ancak demo denemelerde hiç bir işlem gerçekleşmiyor. Bir yerde mantık hatası var sanırım destekleriniz icin şimdiden çok teşekkürler!





O andaki piyasa alis fiyatı,


bir onceki mumun kapanis fiyatının 5 pip ya da daha fazla üstündeyse,




O andaki piyasa alis fiyatindan iki onceki mumun kapanis fiyati, O andaki piyasa alis fiyatindan bir onceki mumun kapanis fiyatindan en fazla 1 en az 500 pip dusukse

Alim islemi gerceklestir

100 pip yükselirse kar al

30 pip duserse zarar durdur.



 void OnTick()
{
    double currentBid = SymbolInfoDouble(_Symbol, SYMBOL_BID); // O andaki piyasa alış fiyatı
    double prevClose = iClose(_Symbol, PERIOD_CURRENT, 1); // Bir önceki mumun kapanış fiyatı
    double prev2Close = iClose(_Symbol, PERIOD_CURRENT, 2); // İki önceki mumun kapanış fiyatı

    double pipSize = SymbolInfoDouble(_Symbol, SYMBOL_POINT); // Pips büyüklüğü

    if (currentBid > (prevClose + 5 * pipSize))
    {
        double diff1 = currentBid - prev2Close; // O andaki fiyat ile iki önceki mumun kapanış fiyatı arasındaki fark
        double diff2 = currentBid - prevClose; // O andaki fiyat ile bir önceki mumun kapanış fiyatı arasındaki fark

        if (diff1 >= -500 * pipSize && diff1 <= -1 * pipSize && diff2 >= -500 * pipSize && diff2 <= -1 * pipSize)
        {
            double takeProfit = currentBid + 100 * pipSize; // Kar alma seviyesi (100 pip yukarıda)
            double stopLoss = currentBid - 30 * pipSize; // Zarar durdurma seviyesi (30 pip aşağıda)

            MqlTradeRequest request;
            MqlTradeResult result;

            request.action = TRADE_ACTION_DEAL;
            request.type = ORDER_TYPE_BUY;
            request.symbol = _Symbol;
            request.volume = 0.01;
            request.price = currentBid;
            request.sl = stopLoss;
            request.tp = takeProfit;
            request.deviation = 3;
            request.magic = 123456; // İstediğiniz bir değer kullanabilirsiniz

            if (OrderSend(request, result))
            {
                // Başarıyla alım emri gönderildi
            }
            else
            {
                // Alım emri gönderimi başarısız oldu
                Print("Alım emri gönderilemedi! Hata:", GetLastError());
            }
        }
    }
}
 
Ben de mt4 teki robotlarımı, mt5 dilinde yazmaya çalışıyorum, 3-4 gün sonra vazgeçtim mt4 e devam :)))
 
BookClub #:
Ben de mt4 teki robotlarımı, mt5 dilinde yazmaya çalışıyorum, 3-4 gün sonra vazgeçtim mt4 e devam :)))
Ben yolun çok baskındayım 4 de bilmiyorum. 
Bu kod da hata vermiyor fakat işlem de yapmıyor. Sanırım bir mantık hatası var ama bulamadım. 
Paylaşmamın sebebi bu aslında belki bir uzman fark eder, düzeltmeye yardımcı olur.  teşekkürler! 
Neden: