Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 756

 
ssn1 :
Kendi arşivleme sistemime alışkınım.
Depolama ile zaten başarılı bir şekilde hayatta kaldım: PC'deki bir sabit sürücünün imhası, bir dizüstü bilgisayarın arızası. Ve aynı zamanda, kodunun tek bir baytını kaybetmedi. Depolama uygundur.
 

Tünaydın.

Bir egzersiz programı yazdı. Nedense çalışmıyor.

29 Eylül - 15 Ekim tarihleri arasında strateji test cihazında test edilmiştir.

Program şu şekilde çalışmalıdır: bir satın alma yapılır. Fiyat 0.010 düştüğünde, zararla satış gerçekleşmelidir.

Satın alma işlemi devam ediyor. Satış gerçekleşmez. Görselleştirmeyi açıyorum, fiyatın sadece 0,010 değil, aynı zamanda çok daha düşük göründüğünü görüyorum. Garip.

// -------- değişkenler --- Başlangıç -----
dış çift L1=0.01; // satın almak için parti büyüklüğü
dış çift L1n=0.01; // satın almak için parti büyüklüğü (normalleştirilmiş parti)
harici çift AktualAsk=0.0; // geçerli satın alma fiyatı
harici çift AktualBid=0.0; // gerçek satış fiyatı
extern int ticketlackmus=1; // sipariş açma başarısının göstergesi
harici int bilet1=0; // bilet
harici bool PozOtk1=true;
// -------- değişkenler --- Bitiş -----
int init()
{
dönüş(0);
}


int başlangıç()
{
if (PozOtk1==doğru)
{
// Pozisyon açma
bilet bolluğu=1;
while (ticketlackmus>0)
{
Uyarı ("İlk pozisyonun açılması");
Yeniler(); // Veriyi güncelle
AktualAsk=NormalizeÇift(Sor, Rakamlar); //fiyat için
L1n=NormalizeÇift(L1,2); // parti için.
bilet1=OrderSend("GBPUSD", OP_BUY, L1n, AktualAsk, 5, 0, 0, 0, 0, CLR_NONE );
if (ticket1>0) ticketlackmus=-1;
{
Alert("SİPARİŞ AÇIK", bilet1, "", biletsiz);
}
}
PozOtk1=yanlış;
Alert("PozOtk1", PozOtk1);
}

Yeniler(); // Veriyi güncelle
AktualBid=NormalizeDouble(Teklif,Rakamlar); //fiyat için
if (AktualBid<=AktualAsk-0.010 && PozOtk1==yanlış)
{
Yeniler(); // Veriyi güncelle
OrderSelect(bilet1, SELECT_BY_TICKET);
L1n=NormalizeÇift(L1,2); // lot için
SiparişKapat(bilet1, L1n, AktualBid, 5);
PozOtk1=doğru;
}

dönüş(0);
}

int tanım()
{
dönüş(0);
}


Göl.

 

Lütfen kodu yapıştırırken sihirli SRC düğmesini kullanın:

Kodu foruma doğru şekilde yapıştırın

 
// -------- переменные --- Н -----
extern double L1=0.01;            // размер лота для покупки 
extern double L1n=0.01;           // размер лота для покупки 
extern double AktualAsk=0.0;
extern double AktualBid=0.0;
extern int ticketlackmus=1;       // "лакмусовая бумажка" успешности откарытия ордера
extern int ticket1=0;             // тикет 
extern bool PozOtk1=true;
// -------- переменные --- К ----- 
int init() 
   {
      return(0);
   }


int start()    
   {
      if (PozOtk1==true) 
         {     
// Открытие позиции
             ticketlackmus=1;
             while (ticketlackmus>0)
                {
     Alert (" Открытие первой позиции ");
                   RefreshRates();                                        // Обновление данных 
                   AktualAsk=NormalizeDouble(Ask,Digits); //для цены
                   L1n=NormalizeDouble(L1,2); //для лота.
                   ticket1=OrderSend ("GBPUSD", OP_BUY, L1n, AktualAsk, 5, 0, 0, 0, 0, CLR_NONE);    
                   if (ticket1>0) ticketlackmus=-1;
                   {
                   Alert (" ОРДЕР ОТКРЫТ ", ticket1, "  ", ticketlackmus);
                   }
                }
             PozOtk1=false; 
             Alert (" PozOtk1 ", PozOtk1);
          }

      RefreshRates();                                        // Обновление данных 
      AktualBid=NormalizeDouble(Bid,Digits); //для цены
           if (AktualBid<=AktualAsk-0.010 && PozOtk1==false)
       {                              
                     RefreshRates();    // Обновление данных 
                     OrderSelect(ticket1, SELECT_BY_TICKET);   
                     L1n=NormalizeDouble(L1,2); //для лота
                     OrderClose (ticket1, L1n, AktualBid, 5);
                     PozOtk1=true; 
       }

return(0);
   }



int deinit()                                   
   {
      return(0);
   } 

 

Belirli bir sembol üzerinde bir pozisyon açılırsa (bu durumda, "GBPUSD"), o zaman bu sembol için tüm verilerin pazarlama bilgileri yoluyla alınması arzu edilir, yani sadece AktualAsk=NormalizeDouble(Ask, Digits ); a AktualAsk=MarketInfo( "GBPUSD" ,MODE_ASK);

Ve bundan kaçınmak için herhangi bir piyasa verisi almalısınız.

 
// -------- переменные --- Н -----
extern double L1= 0.01 ;             // размер лота для покупки 
extern double L1n= 0.01 ;           // размер лота для покупки 
extern double AktualAsk= 0.0 ;
extern double AktualBid= 0.0 ;
extern int ticketlackmus= 1 ;       // "лакмусовая бумажка" успешности откарытия ордера
extern int ticket1= 0 ;             // тикет 
extern bool PozOtk1= true ;
// -------- переменные --- К ----- 
int init() 
   {
       return ( 0 );
   }


int start()    
   {
       if (PozOtk1== true ) 
         {     
// Открытие позиции
             ticketlackmus= 1 ;
             while (ticketlackmus> 0 )
                {
     Alert ( " Открытие первой позиции " );
                   RefreshRates();                                         // Обновление данных 
                   //AktualAsk=NormalizeDouble(Ask,Digits); //для цены
                   AktualAsk=MarketInfo( "GBPUSD" ,MODE_ASK);
                   L1n= NormalizeDouble (L1, 2 ); //для лота.
                   ticket1= OrderSend ( "GBPUSD" , OP_BUY, L1n, AktualAsk, 5 , 0 , 0 , 0 , 0 , CLR_NONE);    
                   if (ticket1> 0 ) ticketlackmus=- 1 ;
                   {
                   Alert ( " ОРДЕР ОТКРЫТ " , ticket1, "  " , ticketlackmus);
                   }
                }
             PozOtk1= false ; 
             Alert ( " PozOtk1 " , PozOtk1);
          }

      RefreshRates();                                         // Обновление данных 
      AktualBid= NormalizeDouble (Bid, Digits ); //для цены
           if (AktualBid>=AktualAsk+ 0.010 && PozOtk1== false )
       {                              
                     RefreshRates();     // Обновление данных 
                     OrderSelect (ticket1, SELECT_BY_TICKET);   
                     L1n= NormalizeDouble (L1, 2 ); //для лота
                     OrderClose (ticket1, L1n, AktualBid, 5 );
                     PozOtk1= true ; 
       }

return ( 0 );
   }



int deinit()                                   
   {
       return ( 0 );
   } 
evillive :

Belirli bir sembol üzerinde bir pozisyon açılırsa (bu durumda, "GBPUSD"), o zaman bu sembol için tüm verilerin pazarlama bilgileri yoluyla alınması tavsiye edilir, yani sadece AktualAsk=NormalizeDouble(Ask,Digits); a AktualAsk=MarketInfo( "GBPUSD" ,MODE_ASK);

Ve bundan kaçınmak için herhangi bir piyasa verisi almalısınız.

Teşekkürler Evilive!

Değişiklikler yaptı. Ama satın alma devam etti. Değişikliklerden sonra satış gerçekleşmez. M15'i 30 Eylül 2014'ten Ekim ortasına kadar test edin.

 
Ozero :

Teşekkürler Evilive!

Değişiklikler yaptı. Ama satın alma devam etti. Değişikliklerden sonra satış gerçekleşmez. M15'i 30 Eylül 2014'ten Ekim ortasına kadar test edin.



Verilen kodda nerede bir satış olabileceğini bulun
 
OrderClose (ticket1, L1n, AktualBid, 5);
 
Ozero :
Bu siparişin kapanışıdır. Bir satış emrinin açılışı nerede. Aşağıdaki kodda yok.
 
Sipariş kapanmadı demek istedim :( Kusura bakmayın öyle söylemedim, henüz acemiyim.