Zıt sırayı aç - sayfa 3

 
RaptorUK :

MagicNumber'dan farklı bir Sihirli Numaraya sahip olması veya EA'nın üzerinde çalıştığı sembol dışında bir sembol için olması veya bir OP_SELLLIMIT veya OP_BUYLIMIT olması olabilir. . . ayrıca, OrderDelete() çağrılarınızdaki dönüş değerlerini de kontrol etmeniz gerekir. . .

Neden RefreshRates() öğesini çağırmanız gerekiyor? Onlardan kurtul demek istemiyorum ama neden RefreshRates()'i nerede aradığınızı açıklayabilir misiniz?


İşlev dönüş değerleri nelerdir? Onları nasıl kullanırım?


Merhaba RaptorUK.

Anladığım kadarıyla MagicNumber aynı ve OP_SELLSTOP ve OP_BUYSTOP.

OrderDelete() çağırıyor, korkarım ne demek istediğinizi anlamıyorum....

RefreshRates() Ben sadece o yakın problemden sonra oraya koydum.

Şimdi Lizbon'dayım (Portekiz).

Luis

 
luisneves :


Merhaba RaptorUK.

Anladığım kadarıyla MagicNumber aynı ve OP_SELLSTOP ve OP_BUYSTOP.

OrderDelete() çağırıyor, korkarım ne demek istediğinizi anlamıyorum....

OrderDelete() işlevini çağırdığınızda (OrderDelete() işlevini kullanarak) bir değer döndürür, bir bool değeri döndürür, değer true ise OrderDelete() çalıştı, false ise OrderDelete() başarısız oldu. . . bu nedenle dönüş değerini kontrol edin ve yanlışsa Print() kullanarak hatayı günlüğe bildirin veya Comment() veya Alert() kullanın , böylece bir sorununuz olduğunu anlayıp araştırabilirsiniz.

Kodunuza dayanarak bu değişiklikleri yapardım. . . . benim kodum olsaydı, bir hata durumunda daha fazla bilgi yazdırmak için ek değişiklikler yapardım, Bid, Ask, FreezeLevel, StopLevel, vb.

 void CloseAll()
   {
   int OrdType, GLError;
   
   RefreshRates();
                    
   for ( int OrderPos = OrdersTotal ()- 1 ; OrderPos >= 0 ; OrderPos--)
       if ( OrderSelect (OrderPos, SELECT_BY_POS, MODE_TRADES)
         && OrderMagicNumber() == MagicNumber 
         && OrderSymbol() == Symbol ())
         {
         OrdType = OrderType();
         if (OrdType == OP_BUY || OrdType==OP_SELL)
            {
             if (!OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), UseSlippage, Yellow))
               GLError = GetLastError ();
            }

         if (OrdType == OP_SELLSTOP || OrdType == OP_BUYSTOP || OrdType == OP_BUYLIMIT || OrdType == OP_SELLLIMIT)
            {
             if (!OrderDelete(OrderTicket())
               GLError = GetLastError ();
            }

         if (GLError > 0 ) Print ( "Error Closing/Deleting Order, error # " , GLError, " for ticket: " , OrderTicket());         
         }
   } 
 
RaptorUK :

OrderDelete() işlevini çağırdığınızda (OrderDelete() işlevini kullanarak) bir değer döndürür, bir bool değeri döndürür, değer true ise OrderDelete() çalıştı, false ise OrderDelete() başarısız oldu. . . bu nedenle dönüş değerini kontrol edin ve yanlışsa Print() kullanarak hatayı günlüğe bildirin veya Comment() veya Alert() kullanın, böylece bir sorununuz olduğunu anlayıp araştırabilirsiniz.

Kodunuza dayanarak bu değişiklikleri yapardım. . . . benim kodum olsaydı, bir hata durumunda daha fazla bilgi yazdırmak için ek değişiklikler yapardım, Bid, Ask, FreezeLevel, StopLevel, vb.


Merhaba RaptorUK,

Bekleyen emrin silinmemesinin nedeni, bu durumda 5 pip'in düşük olan kâr alma ile ilgisi var. 10 pips'e koyduğumda emri sildim. Kafa karışıklığım, stoploss, açık fiyat koymak ve donma bölgesinden kar almak için bir rutinim olsaydı neden bunun işe yaramadığı gerçeğinden kaynaklanıyor. Tamam ama şimdi çalışıyor.

Bu arada diğeri tetiklendikten sonra ters sırayı kapatmak istiyorum.Bunun için fazladan bir kod koydum ama(gülmeye başlayabilirsiniz...) ama hiçbir şey yok....

Burada herhangi bir yardım var mı?

 while (IsTradeContextBusy()) Sleep ( 10 );
                   RefreshRates();
         Ticket= OrderSend ( Symbol (),OP_BUYSTOP,LotSize,BuyLevel,UseSlippage,BuyStopLoss,BuyTakeProfit, "Buy Stop Order" ,MagicNumber, 0 ,Green);
         if (Ticket> 0 )
         
           int o=OrderType();
           if (o==OP_BUY)
          OrderDelete(OrderTicket());        
           {
             if ( OrderSelect (Ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "BUY Stop Order Opened : " ,OrderOpenPrice());
           }
         //else Print("Error opening BUY Stop Order : ",GetLastError());
 
luisneves :


Merhaba RaptorUK,

1. Bekleyen emrin silinmemesinin nedeni, bu durumda 5 pip'in düşük olan kâr alma ile ilgisi var. 10 pips'e koyduğumda emri sildim. Kafa karışıklığım, stoploss, açık fiyat koymak ve donma bölgesinden kar almak için bir rutinim olsaydı neden bunun işe yaramadığı gerçeğinden kaynaklanıyor. Tamam ama şimdi çalışıyor.

2. Bu arada, diğeri tetiklendiğinde tam tersi sırayı kapatmak istiyorum. Bunun için bu ekstra kodu koydum ama(gülmeye başlayabilirsiniz...) ama hiçbir şey yok....

Burada herhangi bir yardım var mı?


1. Ah, işte bu yüzden iade değerlerini kontrol etmeniz ve hata kodlarını yazdırmanız vb. gerekiyor. Herhangi bir Siparişteki herhangi bir ticari işlemin buradaki bilgilerle uyumlu olduğundan emin olmalısınız: İşlem Yapmada Gereksinimler ve Sınırlamalar

2. Siparişin OP_BUYSTOP'tan OP_BUY'a değişmesi için beklemeniz gerekiyor, biraz zaman alabilir, bu yüzden kontrol etmeye devam etmeniz gerekir. . . OP_BUY'a dönüştüğünde, karşıt Emri kapatabilirsiniz ve bunu yapmak için kapatmak için doğru Sırayı bulmanız gerekecek. WhooDoo22 ile yaptığım son konuşmamı okumalısınız, bu konuşma benzer bir konuyu kapsar.

 

Merhaba RaptorUk,

Sağladığınız bağlantıyı takip ettim, ancak yine de ilginç olan tema, o kadar çok farklı fikirle uzun zamandır ki kendimi onlarda kaybettim.

bu yüzden, tam tersini kapatmak için bir kod ekledim ve yine hiçbir şey yok ve dergide herhangi bir yardım sağlayan hiçbir şey göremiyorum..... burada neyi özlüyorum ......

herhangi bir ışık için teşekkürler .....

Luis

 //Sell Pending Stop Loss & Take Profit Calculation     
     
   if (StopLoss> 0 )SellStopLoss=PendingSellPrice+(StopLoss*pt);
   if (TakeProfit> 0 )SellTakeProfit=PendingSellPrice-(TakeProfit*pt);
   
//Place Sell Pending Order
        
         while (IsTradeContextBusy()) Sleep ( 10 );
                   RefreshRates();       
         Ticket= OrderSend ( Symbol (),OP_SELLSTOP,LotSize,SellLevel,UseSlippage,SellStopLoss,SellTakeProfit, "Sell Stop Order" ,MagicNumber, 0 ,Red);
         if (Ticket> 0 )OppositePendindDel();          
           {
             if ( OrderSelect (Ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "SELL Stop Order Opened : " ,OrderOpenPrice());
           }
         //else Print("Error opening SELL Stop Order : ",GetLastError());
         } 
//+---------------------------------------------------------------------------+
int OppositePendindDel()
{
 int c,d,GLError;
 int e= OrdersTotal ();
 
 for (c=e- 1 ;c>= 0 ;c--)
 {  
   OrderSelect (c,SELECT_BY_POS,MODE_TRADES);
   if (OrderType()==OP_BUY||OrderType()==OP_SELL)
   {
     for (d=e- 1 ;d>= 0 ;d--)
    {
     OrderSelect (d,SELECT_BY_POS,MODE_TRADES);
     
       if (OrderType()==OP_SELLSTOP)
     {
       if (!OrderDelete(OrderTicket()))
            GLError = GetLastError ();
      
       return ( 1 );
      }
       if (OrderType()==OP_BUYSTOP)
      {
       if (!OrderDelete(OrderTicket()))
             GLError = GetLastError ();
       }
       if (GLError > 0 ) Print ( "Error Closing/Deleting Order, error # " , GLError, " for ticket: " , OrderTicket());
       return ( 1 );
       }
      }
     }
    }
 
luisneves :

Merhaba RaptorUk,

Sağladığınız bağlantıyı takip ettim, ancak yine de ilginç olan tema, o kadar çok farklı fikirle uzun zamandır ki kendimi onlarda kaybettim.

bu yüzden, tam tersini kapatmak için bir kod ekledim ve yine hiçbir şey yok ve dergide herhangi bir yardım sağlayan hiçbir şey göremiyorum..... burada neyi özlüyorum ......

Raptorİngiltere :

2. Siparişin tipinin OP_BUYSTOP'tan OP_BUY'a değişmesini beklemeniz gerekiyor, biraz zaman alabilir, bu yüzden kontrol etmeye devam etmeniz gerekir . . . OP_BUY'a dönüştüğünde, karşıt Emri kapatabilirsiniz ve bunu yapmak için kapatmak için doğru Sırayı bulmanız gerekecek.

 
RaptorUK :



Merhaba RaptorUK,

Tamam, şimdi bu, bekleyen bir emir tetiklendikten sonra karşı bekleyen emrin silinmesi gibi görünüyor., ancak şimdi bazı emirler iki katına çıkıyor, yani, aynı anda bir satış ve satın al ve lot büyüklüğü, iki emir için aynı anda aynı. bir zaman sipariş vermelidir. delirmeye başladım.....

Burada herhangi bir yardım, lütfen !!!!

Dosyalar:
 
luisneves :


Merhaba RaptorUK,

Tamam, şimdi bu, bekleyen bir emir tetiklendikten sonra karşı bekleyen emrin silinmesi gibi görünüyor., ancak şimdi bazı emirler iki katına çıkıyor, yani, bir adet aynı anda bir sat ve al koy ve lot büyüklüğü iki emir için aynı anda aynı. bir zaman sipariş vermelidir. delirmeye başladım.....

Burada herhangi bir yardım, lütfen !!!!

Kodunuza baktığımda, yapmaya çalıştığınız şeyi takip etmekte çok zorlanıyorum, bana yardımcı olacak çok az yorum görüyorum, start() işleviniz bana her tikte ne yapmaya çalıştığınızı göstermiyor, tutarlılığınız yok girinti düzeni.

GoToClose() işlevi ne anlama geliyor? fonksiyonun başında ne yapması gerektiğini açıklayan bazı yorumlar yaptıysanız, o zaman gerçekten yapması gerekeni yapıp yapmadığını görebilirdim, şu anda yaptığı şey bir fonksiyon çağırmak, CloseAll(); Sembol ve Sihirli Numaranızla eşleşen herhangi bir işlem herhangi bir miktarda kâr sağlıyorsa veya herhangi bir sembol ve Sihirli Numara için 7'den fazla işleminiz varsa. CloseAll() yalnızca Sembol ve Sihirli Numaranız için işlemleri kapatır, bu nedenle farklı bir Sembol veya Sihirli Numara için 7 işleminiz varsa GoToClose(), CloseAll()'ı aramaya devam eder ve başka hiçbir şey olmaz.


Demo hesabınıza manuel bir ticaret yerleştirdiyseniz ve ardından EA'nızı çalıştırırsanız, hiçbir şey yapmaz. . . ticareti görür ama görmezden gelmez, sayar ve sonuç olarak kendi ticaretini yapmaz ve bu açık ticareti kapatmaz. EA'nız bu durumda ne yapmalıdır? Ya başka bir EA tarafından farklı bir Magic Number ile yapılan bir ticaret olsaydı?

Yapmaya çalıştığınız şeyin net bir resmini elde etmeniz, akış ve sürecin net olması için start() işlevinizi yorumlamanız, her işlevi yorumlamanız, böylece her birinin ne yapmak istediğini netleştirmeniz gerekir. Bunu yaptığınızda, probleminizin nerede olduğunu çok iyi anlayabilirsiniz. . .

 
RaptorUK :

Kodunuza baktığımda, yapmaya çalıştığınız şeyi takip etmekte çok zorlanıyorum, bana yardımcı olacak çok az yorum görüyorum, start() işleviniz bana her tikte ne yapmaya çalıştığınızı göstermiyor, tutarlılığınız yok girinti düzeni.

GoToClose() işlevi ne anlama geliyor? fonksiyonun başında ne yapması gerektiğini açıklayan bazı yorumlar yaptıysanız, o zaman gerçekten yapması gerekeni yapıp yapmadığını görebilirdim, şu anda yaptığı şey bir fonksiyon çağırmak, CloseAll(); Sembol ve Sihirli Numaranızla eşleşen herhangi bir işlem herhangi bir miktarda kâr sağlıyorsa veya herhangi bir sembol ve Sihirli Numara için 7'den fazla işleminiz varsa. CloseAll() yalnızca Sembol ve Sihirli Numaranız için işlemleri kapatır, bu nedenle farklı bir Sembol veya Sihirli Numara için 7 işleminiz varsa GoToClose(), CloseAll()'ı aramaya devam eder ve başka hiçbir şey olmaz.


Demo hesabınıza manuel bir ticaret yerleştirdiyseniz ve ardından EA'nızı çalıştırırsanız, hiçbir şey yapmaz. . . ticareti görür ama görmezden gelmez, sayar ve sonuç olarak kendi ticaretini yapmaz ve bu açık ticareti kapatmaz. EA'nız bu durumda ne yapmalıdır? Ya başka bir EA tarafından farklı bir Magic Number ile yapılan bir ticaret olsaydı?

Yapmaya çalıştığınız şeyin net bir resmini elde etmeniz, akış ve sürecin net olması için start() işlevinizi yorumlamanız, her işlevi yorumlamanız, böylece her birinin ne yapmak istediğini netleştirmeniz gerekir. Bunu yaptığınızda, probleminizin nerede olduğunu çok iyi anlayabilirsiniz. . .


Merhaba RaptorUK,

Karışıklık için üzgünüm. Şu ana kadar EA, bu konu dışında kendisinden bekleneni yapıyor gibi görünüyor;

EA, bir önceki siparişin TakeProfit'i lot büyüklüğü artışıyla ve aynı TakeProfit tutarıyla almadığı her seferinde ters bir emir açmalıdır ve bunu yapar. Sorun şu ki, her seferinde sadece bir sipariş vermesi gerekir ve koyar. birden fazla. Rapora bir göz attığınızda, 6. ve 7. siparişin hem satış hem de 7. siparişin alım olması gerektiğini görebilirsiniz.

Şimdi kodu fonksiyona göre koydum. Tüm bu geçersiz çağrılara sahip olmamın nedeni, tam olarak çalışan bağımsız bloklara sahip olmak istemem ve burada bunu düzenlemekte sorun yaşadığımı biliyorum. Açık emirler var, ilkler açılıyor, kapanmıyorlarsa (bunun üzerinde çalışmam gereken bir karışıklık...) Sembol ve sihirli sayıyı, her birimin kendi emirleri olduğunu garanti etmek için kullanıyorum.

Ana strateji (ve bloklar bu sıraya göredir);

1- Bekleyen iki emir, fiyatın üstünde ve altında. Fiyat bunlardan birini tetiklediğinde, bekleyen tersi silinir. Bu çalışıyor.

2- Fiyat TakeProfit'i seçerse, emir kapanır ve EA yeniden bekleyen iki emir vermeye devam eder ve süreç yeniden başlar. bu çalışıyor

2- Eğer fiyat TakeProfit'i seçmiyorsa ve TakeProfit miktarını aşağı çektiğinde (Satın alma emirleri için) geri dönerse, o zaman aynı TakeProfit miktarıyla ve öncekinden daha büyük lot büyüklüğü ile zıt bir Satış emri açılmalıdır. Bu, birden fazla emir vermesi dışında çalışıyor ve Rapordan 6 ve 7 emirlerinin her ikisinin de Satış emri olduğu ve sadece bir tane olması gerektiği ve 7'nin bir Alış olması gerektiği görülüyor.

3- Son emir kar aldığında tüm açık emirler kapanmalıdır. Ve süreç kazanmaya başlar. Bu işe yarıyor.

4- Bu ping pong'da bir siparişin en fazla 7 defa TakeProfit'i seçmesi beklenmelidir, aksi takdirde bu siparişler kapanır.

5-Kar artışı için fırsat açmak için bir başabaş veya minimum kar takip eden stop kullanılmalıdır. örneğin TakeProfit 2 pip istiyorsak fiyatın 3 pip'e ulaşmasını bekleriz ve sonra bu fonksiyonlardan biri (başa baş veya minimum kar izleyen stop) 2 pip seviyesinde bir stop çizgisi koyar. Eğer fiyat yükselirse (Satın Al için) stop çizgisi de onunla birlikte gider ve fiyat 1 pip geri döndüğünde emir kapanır ve kârı olduğu için tüm açık emirler kapanır. Burada bunun düzgün çalışıp çalışmayacağından emin değilim.

teşekkürler

Luis

Dosyalar:
 
luisneves :


Merhaba RaptorUK,

Karışıklık için üzgünüm. Şu ana kadar EA, bu konu dışında kendisinden bekleneni yapıyor gibi görünüyor;

EA, bir önceki siparişin TakeProfit'i lot büyüklüğü artışıyla ve aynı TakeProfit tutarıyla almadığı her seferinde ters bir emir açmalıdır ve bunu yapar. Sorun şu ki, her seferinde sadece bir sipariş vermesi gerekir ve koyar. birden fazla. Rapora bir göz attığınızda, 6. ve 7. siparişin hem satış hem de 7. siparişin alım olması gerektiğini görebilirsiniz.

Şimdi kodu fonksiyona göre koydum. Tüm bu geçersiz çağrılara sahip olmamın nedeni, tam olarak çalışan bağımsız bloklara sahip olmak istemem ve burada bunu düzenlemekte sorun yaşadığımı biliyorum. Açık emirler var, ilkler açılıyor, kapanmıyorlarsa (bunun üzerinde çalışmam gereken bir karışıklık...) Sembol ve sihirli sayıyı, her birimin kendi emirleri olduğunu garanti etmek için kullanıyorum.

Ana strateji (ve bloklar bu sıraya göredir);

1- Bekleyen iki emir, fiyatın üstünde ve altında. Fiyat bunlardan birini tetiklediğinde, bekleyen tersi silinir. Bu çalışıyor.

2- Fiyat TakeProfit'i seçerse, emir kapanır ve EA yeniden bekleyen iki emir vermeye devam eder ve süreç yeniden başlar. bu çalışıyor

2- Eğer fiyat TakeProfit'i seçmiyorsa ve TakeProfit miktarını aşağı çektiğinde (Satın alma emirleri için) geri dönerse, o zaman aynı TakeProfit miktarıyla ve öncekinden daha büyük lot büyüklüğü ile zıt bir Satış emri açılmalıdır. Bu, birden fazla emir vermesi dışında çalışıyor ve Rapordan 6 ve 7 emirlerinin her ikisinin de Satış emri olduğu ve sadece bir tane olması gerektiği ve 7'nin bir Alış olması gerektiği görülüyor.

3- Son emir kar aldığında tüm açık emirler kapanmalıdır. Ve süreç kazanmaya başlar. Bu işe yarıyor.

4- Bu ping pong'da bir siparişin en fazla 7 defa TakeProfit'i alması beklenmelidir, aksi takdirde bu siparişler kapanır.

5-Kar artışı için fırsat açmak için bir başabaş veya minimum kar takip eden stop kullanılmalıdır. örneğin TakeProfit 2 pip istiyorsak fiyatın 3 pip'e ulaşmasını bekleriz ve sonra bu fonksiyonlardan biri (başa baş veya minimum kar izleyen stop) 2 pip seviyesinde bir stop çizgisi koyar. Eğer fiyat yükselirse (Satın Al için) stop çizgisi de onunla birlikte gider ve fiyat 1 pip geri döndüğünde emir kapanır ve kârı olduğu için tüm açık emirler kapanır. Burada bunun düzgün çalışıp çalışmayacağından emin değilim.

teşekkürler

Luis

Tamam, birkaç siparişin açılmasında neyin yanlış olduğunu bulduğunu düşünün. Bunları koda dahil etmem gerekiyordu (Negrito Italic);

Open Opposite Order
 
   double   MartingaleBuyPrice = Ask+StopLevel;
   if (MartingaleBuyPrice<UpperStopLevel)MartingaleBuyPrice=UpperStopLevel+MinStop*pt;
   
   double MartingaleSellPrice= Bid-StopLevel;
   if (MartingaleSellPrice>LowerStopLevel)MartingaleSellPrice=LowerStopLevel-MinStop*pt;
   
   int Op;  
   
   for ( int Counter = OrdersTotal ()- 1 ; Counter >= 0 ; Counter--)
      {
       if ( OrderSelect (Counter,SELECT_BY_POS,MODE_TRADES))  
         {
         if (OrderSymbol() == Symbol ()&& OrderMagicNumber() == MagicNumber)
            {
            Op = OrderType();

             if (Op == OP_BUY && ((OrderOpenPrice()-OrderClosePrice())/pt)> ReturnDist && SellTicket== 0 )
               {                
               Sell Ticket = OrderSend ( Symbol (), OP_SELL, mlots, MartingaleSellPrice, UseSlippage, 0 , 0 , "Sell Order" , MagicNumber, 0 , Red);
               if ( Sell Ticket > 0 ) 
                  {
                   Print ( "Opposite Sell order placed # " , SellTicket);
                  AddLimitsSell();
                  }
               else
                  {
                   Print ( "Order Send failed, error # " , GetLastError () );
                  }
               }
               
             if (Op == OP_SELL && (OrderClosePrice()-OrderOpenPrice()/pt)> ReturnDist && BuyTicket== 0 )
               {               
               Buy Ticket = OrderSend ( Symbol (), OP_BUY, mlots, MartingaleBuyPrice, UseSlippage, 0 , 0 , "Buy Order" , MagicNumber, 0 , Green);
               if ( Buy Ticket > 0 )
                  {
                   Print ( "Opposite Buy order placed # " , BuyTicket);
                  AddLimitsBuy();
                  }
               else
                  {  
                   Print ( "Order Send failed, error # " , GetLastError ());
                  }   
               }
            }
         }
      }
   }
//+------------------------------------------------------------------+  
void AddLimitsBuy()
                  {
                   OrderSelect ( Buy Ticket,SELECT_BY_TICKET);
                  OpenPrice = OrderOpenPrice();
                  StopLevel = MarketInfo( Symbol (),MODE_STOPLEVEL)* Point ;
                                       RefreshRates();  
                                      UpperStopLevel = Ask + StopLevel;
                                      LowerStopLevel = Bid - StopLevel;
                                      
                                      
                                       if (StopLoss > 0 ) BuyStopLoss   = OpenPrice - (StopLoss * pt);
                   if (TakeProfit > 0 )BuyTakeProfit = OpenPrice + (TakeProfit * pt);
                                      
                                       if (BuyStopLoss > 0 && BuyStopLoss > LowerStopLevel) 
                                              {                                 
                                                    BuyStopLoss = LowerStopLevel - MinStop*pt;
                                              }
                                      
                                       if (BuyTakeProfit > 0 && BuyTakeProfit < UpperStopLevel) 
                                              {
                                                     BuyTakeProfit = UpperStopLevel + MinStop*pt;
                                              }

                                       if (IsTradeContextBusy()) Sleep ( 10 );        

                   if (BuyStopLoss > 0 || BuyTakeProfit > 0 ) 
                     {          
                      OrderModify(Ticket,OP_BUY,BuyStopLoss,BuyTakeProfit, 0 );                            
                     }
                    } 
//+------------------------------------------------------------------+
void AddLimitsSell()
                  {
                   OrderSelect ( Sell Ticket,SELECT_BY_TICKET);                 
                  OpenPrice = OrderOpenPrice();
                  StopLevel = MarketInfo( Symbol (),MODE_STOPLEVEL)* Point ;
                                      RefreshRates();   
                                      UpperStopLevel = Ask + StopLevel;
                                      LowerStopLevel = Bid - StopLevel;
                                      
                                      
                                       if (StopLoss > 0 ) SellStopLoss = OpenPrice + (StopLoss*pt);
                                       if (TakeProfit > 0 ) SellTakeProfit = OpenPrice - (TakeProfit*pt);
                                    
                                       if (SellStopLoss > 0 && SellStopLoss < UpperStopLevel) 
                                              {                                 
                                                    SellStopLoss = UpperStopLevel + MinStop*pt;
                                              }
                                       if (SellTakeProfit> 0 && SellTakeProfit > LowerStopLevel) 
                                              {
                                                    SellTakeProfit = LowerStopLevel - MinStop*pt;
                                              }
                                            
                                       if (IsTradeContextBusy()) Sleep ( 10 );       

                   if (SellStopLoss > 0 || SellTakeProfit > 0 ) 
                    {           
                      OrderModify(Ticket,OP_SELL,SellStopLoss,SellTakeProfit, 0 );
                    }                    
                   }  


Eksik Rapor dosyası
Neden: