[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 964

 
volshebnik :
Üçüncü yılın sonlarına doğru testçinin hızı neden düşüyor?


böyle bir sorun var - danışman yılda birçok işlem yapıyorsa bunu da yaşadım - belki nihai sonucu görüntülemek için çok fazla veri kaydedilir veya belki gösterge arabellekleri belleği tüketir

genel olarak, gördüm - bilmiyorum, sabırlı olun - genel resim için 10 yıllık bir test, ancak bir yıl için optimize etmek ve ardından en uygun parametreleri seçmek daha iyidir

 

Çeşitli çaprazları analiz etmek ve ardından başka bir çifte sipariş vermek istiyorum:

int magic = 428;//uzmanın sihirli numarası
harici çift hacim = 0.1;//yerleştirilen siparişin hacmi
dış int kayma = 3;//kayma
int OPB;//verilen satın alma siparişinin etiketi
int OPS;//verilecek satış emrinin etiketi
int Kar=1;//açık siparişlerin kar düzeyi
string comB = "Trend girişi satın al";//sipariş yorumu
string comS = "Satışta trend girişi";//sipariş yorumu
double StochasticCAD;//USDCAD'deki mevcut çubuk üzerindeki ana Stokastik çizgisinin konumu
çift StokastikAUD;//AUDUSD için mevcut çubukta ana Stokastik çizgisinin konumu

double SARCAD;//USDCAD göstergesinin mevcut konumu
çift SARCCAD;//gösterge konum çubuğu USDCAD'de geri döndü
double SARAUD;//AUDUSD için göstergenin mevcut konumu
çift SARСAUD;//gösterge konum çubuğu AUDUSD cinsinden geri döndü


int başlangıç()
{

//______________________________ değişken değerlerinin tanımı _________


StokastikCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0);
StokastikAUD = iStochastic("USDUSD",30,5,3,3,1,1,1,0);

SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
SARCCAD=iSAR("USDCAD",30,0.02,0.2,1);
SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);

double bidCAD =MarketInfo("USDCAD",MODE_BID);
double askCAD =MarketInfo("USDCAD",MODE_ASK);
çift teklifAUD =MarketInfo("AUDUSD",MODE_BID);
double askAUD =MarketInfo("AUDUSD",MODE_ASK);




//______________________________ siparişleri ara ve kapat _________________________


int i;
for(i=0; i<=SiparişToplam(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış)
break;// sipariş numarası i yoksa aramayı durdur

if (OrderSymbol() != "GBPUSD" || OrderMagicNumber() != magic) // eğer sipariş, Uzman Danışmanımızın üzerinde durduğu bu çiftten değilse
devam etmek; // onu atla ve ondan sonraki sıraya bak


//______ kapanış Satın al_______
if (OrderType() == OP_BUY && OrderProfit()>=Kar)
// sipariş satın alınırsa
{
OPB=1;
if(StochasticCAD==0 || StochasticAUD==100 || SARCAD<bidCAD || SARAUD>askAUD)//ve piyasa geri dönüşe yakın
{
OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Wheat); // eğer kâr ediyorsa kapat
OPB=0;
}
}
başka
{
//_______ kapanış Satış_______
if(OrderType() == OP_SELL && OrderProfit()>=Kar)// eğer bir satış emri ise
{OPS=1;
if(StochasticCAD==100 || StochasticAUD==0 || SARCAD>askCAD || SARAUD<bidAUD)//ve piyasa geri dönüşe yakın
{
OrderClose(OrderTicket(),OrderLots(),Ask,slippage,PaleTurquoise); // eğer kâr ediyorsa kapat
OPS=0;
}
}
}
}

//______________ sipariş verme __________________________________________________________


if (SARCAD>askCAD && SARCCAD<bidCAD && SARAUD<bidAUD && SARСAUD>askAUD && OPB<1)//koşulları tanımlayın

{ //_______Satın almak_______

if(!IsTradeAllowed())
{
Alert("Ticari iş parçacığı meşgul, tekrar satın almayı deneyin...");
dönüş(-1);
}
OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,comB,magic,0,Red); // sipariş ver

if(OPB == -1)
{
Alert("GBPUSD", hata: satın al", GetLastError());
dönüş(-1);
}

eğer(OPB > 1)
Alert("GBPUSD","Sipariş verildi!");

}
başka
{//______Satmak_______

if (SARCCAD>askCAD && SARCAD<bidCAD && SARCAUD<bidAUD && SARAUD>askAUD && OPS<1)//koşulları tanımlayın

{

if(!IsTradeAllowed())
{
Alert("Ticari iş parçacığı meşgul, tekrar satmayı deneyelim...");
dönüş(-1);
}

OPS=OrderSend("GBPUSD",OP_SELL,volume,Teklif,slippage,0,0,comS,magic,0,Mavi); // sipariş ver


if(OPS == -1)
{
Alert("GBPUSD", hata: sat", GetLastError());
dönüş(-1);
}

eğer(OPS > 1)
Alert("GBPUSD","Satış emri verildi!");

}
}
dönüş (0);//çıkış
}


Test ederken hiçbir şey göstermiyor. Sonuç yok.

Günlük bir dizi hata içeriyor:

Bana neyin yanlış olduğunu söyle???

 
ViktorF :

Çeşitli çaprazları analiz etmek ve ardından başka bir çifte sipariş vermek istiyorum:

int magic = 428;//uzmanın sihirli numarası
harici çift hacim = 0.1;//yerleştirilen siparişin hacmi
dış int kayma = 3;//kayma
int OPB;//verilen satın alma siparişinin etiketi
int OPS;//verilecek satış emrinin etiketi
int Kar=1;//açık siparişlerin kar düzeyi
string comB = "Trend girişi satın al";//sipariş yorumu
string comS = "Satışta trend girişi";//sipariş yorumu
double StochasticCAD;//USDCAD'deki mevcut çubuk üzerindeki ana Stokastik çizgisinin konumu
çift StokastikAUD;//AUDUSD için mevcut çubukta ana Stokastik çizgisinin konumu

double SARCAD;//USDCAD göstergesinin mevcut konumu
çift SARCCAD;//gösterge konum çubuğu USDCAD'de geri döndü
double SARAUD;//AUDUSD için göstergenin mevcut konumu
çift SARСAUD;//gösterge konum çubuğu AUDUSD cinsinden geri döndü


int başlangıç()
{



//______________________________ değişken değerlerinin tanımı _________


StokastikCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0);
StokastikAUD = iStochastic("USDUSD",30,5,3,3,1,1,1,0);

SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
SARCCAD=iSAR("USDCAD",30,0.02,0.2,1);
SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);

double bidCAD =MarketInfo("USDCAD",MODE_BID);
double askCAD =MarketInfo("USDCAD",MODE_ASK);
çift teklifAUD =MarketInfo("AUDUSD",MODE_BID);
double askAUD =MarketInfo("AUDUSD",MODE_ASK);




//______________________________ siparişleri ara ve kapat _________________________


int i;
for(i=0; i<=SiparişToplam(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış)
break;// sipariş numarası i yoksa aramayı durdur

if (OrderSymbol() != "GBPUSD" || OrderMagicNumber() != magic) // eğer sipariş, Uzman Danışmanımızın üzerinde durduğu bu çiftten değilse
devam etmek; // onu atla ve ondan sonraki sıraya bak


//______ kapanış Satın al_______
if (OrderType() == OP_BUY && OrderProfit()>=Kar)
// sipariş satın alınırsa
{
OPB=1;
if(StochasticCAD==0 || StochasticAUD==100 || SARCAD<bidCAD || SARAUD>askAUD)//ve piyasa geri dönüşe yakın
{
OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Wheat); // eğer kâr ediyorsa kapat
OPB=0;
}
}
başka
{
//_______ kapanış Satış_______
if(OrderType() == OP_SELL && OrderProfit()>=Kar)// eğer bir satış emri ise
{OPS=1;
if(StochasticCAD==100 || StochasticAUD==0 || SARCAD>askCAD || SARAUD<bidAUD)//ve piyasa geri dönüşe yakın
{
OrderClose(OrderTicket(),OrderLots(),Ask,slippage,PaleTurquoise); // eğer kâr ediyorsa kapat
OPS=0;
}
}
}
}

//______________ sipariş verme __________________________________________________________


if (SARCAD>askCAD && SARCCAD<bidCAD && SARAUD<bidAUD && SARСAUD>askAUD && OPB<1)//koşulları tanımlayın

{ //_______Satın almak_______

if(!IsTradeAllowed())
{
Alert("Ticari iş parçacığı meşgul, tekrar satın almayı deneyin...");
dönüş(-1);
}
OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,comB,magic,0,Red); // sipariş ver

if(OPB == -1)
{
Alert("GBPUSD", hata: satın al", GetLastError());
dönüş(-1);
}

eğer(OPB > 1)
Alert("GBPUSD","Sipariş verildi!");

}
başka
{//______Satmak_______

if (SARCCAD>askCAD && SARCAD<bidCAD && SARCAUD<bidAUD && SARAUD>askAUD && OPS<1)//koşulları tanımlayın

{

if(!IsTradeAllowed())
{
Alert("Ticari iş parçacığı meşgul, tekrar satmayı deneyelim...");
dönüş(-1);
}

OPS=OrderSend("GBPUSD",OP_SELL,volume,Teklif,slippage,0,0,comS,magic,0,Mavi); // sipariş ver


if(OPS == -1)
{
Alert("GBPUSD", hata: sat", GetLastError());
dönüş(-1);
}

eğer(OPS > 1)
Alert("GBPUSD","Satış emri verildi!");

}
}
dönüş (0);//çıkış
}


Test ederken hiçbir şey göstermiyor. Sonuç yok.

Günlük bir dizi hata içeriyor:

Bana neyin yanlış olduğunu söyle???


Başlamak için, gezinmek ve insanlara tavsiyelerde bulunmak için "Control + Alt + M" tuşlarına aynı anda basarak kodu pencereye nasıl yapıştıracağınızı öğrenin.

Ayrıca, günlükteki ilgili hata mesajına çift tıklamayı deneyin - size bazı fikirler verebilir...

 
Roman. :


Başlamak için, "Control + Alt + M" tuşlarına aynı anda basarak kodu pencereye nasıl yapıştıracağınızı öğrenin, böylece insanlar sizin saçmalıklarınızda gezinebilir ve önerilerde bulunabilir.

Ayrıca, günlükteki ilgili hata mesajına çift tıklamayı deneyin - size bazı fikirler verebilir...


Derleyicinin değil, test edenin günlüğündeki hatalar... (önce bakıp yorum yaparsanız aslında şekilde görebilirsiniz...). Çift tıklama hiçbir şey yapmıyor ...

 
int magic = 428;//магический номер эксперта
extern double volume = 0.1;//объем выставляемого ордера
extern int slippage = 3;//проскальзывание
int OPB;//метка выставляемого ордера на покупку
int OPS;//метка выставляемого ордера на продажу
int Profit=1;//уровень профита открытых ордеров
string comB = "Вход по тренду на Buy";//комментарий ордера
string comS = "Вход по тренду на Sell";//комментарий ордера
double StochasticCAD;//положение основной линии Стохастики на текущем баре по USDCAD
double StochasticAUD;//положение основной линии Стохастики на текущем баре по AUDUSD

double SARCAD;//текущее положение индикатора по USDCAD
double SARСCAD;//положение индикатора бар назад по USDCAD
double SARAUD;//текущее положение индикатора по AUDUSD
double SARСAUD;//положение индикатора бар назад по AUDUSD

double bidCAD;
double askCAD;
double bidAUD;
double askAUD;

int start()
  {
  
//______________________________определение значений переменных_______________________ 


      StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0); 
      StochasticAUD = iStochastic("AUDUSD",30,5,3,3,1,1,1,0);
      
      SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
      SARСCAD=iSAR("USDCAD",30,0.02,0.2,1);
      SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
      SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);
      
      bidCAD   =MarketInfo("USDCAD",MODE_BID);
      askCAD   =MarketInfo("USDCAD",MODE_ASK);
      bidAUD   =MarketInfo("AUDUSD",MODE_BID);
      askAUD   =MarketInfo("AUDUSD",MODE_ASK);


      

//______________________________поиск и закрытие ордеров_______________________________________   
    

    int i;
    for(i=0; i<=OrdersTotal(); i++)
    {
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
     break;// если ордер номер i не существует, прекращаем перебор
  
        if (OrderSymbol() != "GBPUSD" || OrderMagicNumber() != magic) // если ордер не с этой пары, на которой стоит наш эксперт
        continue; // пропускаем его и смотрим на следующий за ним ордер
        

      //_______закрытие Buy_______       
        if (OrderType() == OP_BUY && OrderProfit()>=Profit) 
        // если ордер бай 
        {
         OPB=1;
         if(StochasticCAD==0 || StochasticAUD==100 || SARCAD<bidCAD || SARAUD>askAUD)//и рынок близок к развороту
          {
           OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Wheat); // закроем его, если он в профите
           OPB=0;
          }
        }
        else  
        {
      //_______закрытие Sell_______ 
         if(OrderType() == OP_SELL && OrderProfit()>=Profit)// если ордер селл
          {OPS=1;
           if(StochasticCAD==100 || StochasticAUD==0 || SARCAD>askCAD || SARAUD<bidAUD)//и рынок близок к развороту
            {
             OrderClose(OrderTicket(),OrderLots(),Ask,slippage,PaleTurquoise); // закроем его, если он в профите
             OPS=0;
            }
          }
        }
    }
        
//______________выставление ордеров______________________________________________________________________
    
  
    if (SARCAD>askCAD && SARСCAD<bidCAD && SARAUD<bidAUD && SARСAUD>askAUD && OPB<1)//определим условия
     
     {  //_______Buy_______ 

          if(!IsTradeAllowed())
               {
                  Alert("занят торговый поток, повторим попытку бай...");
                  return(-1);
               }
          OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,comB,magic,0,Red); //выставим ордер
            
            if(OPB == -1)
              {
                 Alert("GBPUSD"," ошибка: бай", GetLastError());
                 return(-1);
              }
         
            if(OPB > 1)
            Alert ("GBPUSD","Выставили ордер на покупку!");

     }
      else
     {//_______Sell_______
  
         if (SARСCAD>askCAD && SARCAD<bidCAD && SARСAUD<bidAUD && SARAUD>askAUD && OPS<1)//определим условия
     
         {
          
           if(!IsTradeAllowed())
                {
                   Alert("занят торговый поток, повторим попытку селл...");
                   return(-1);
                }
        
           OPS=OrderSend("GBPUSD",OP_SELL,volume,Bid,slippage,0,0,comS,magic,0,Blue); //выставим ордер


             if(OPS == -1)
               {
                  Alert("GBPUSD"," ошибка: селл", GetLastError());
                  return(-1);
               }
         
             if(OPS > 1)
             Alert ("GBPUSD","Выставили ордер на продажу!");

         }
     }    
   return(0);//выход
  }

 
ViktorF :


Tüm keneler üzerinde test? Tarihle ilgili sorunlar
 
Vinin :

Tüm keneler üzerinde test? Tarihle ilgili sorunlar

Onlar. analize dahil olan tüm çiftler için geçmişi yeniden yüklemeniz mi gerekiyor?
 
ViktorF :

Onlar. analize dahil olan tüm çiftler için geçmişi yeniden yüklemeniz mi gerekiyor?


Belki. DC destekliyorsa tabi.

Test cihazında mevcut enstrümanda pozisyon açabileceğinizi ve diğer enstrümanlarda bir takım kısıtlamalar olduğunu unutmayın.

 
Vinin :


Belki. DC destekliyorsa tabi.

Test cihazında mevcut enstrümanda pozisyon açabileceğinizi ve diğer enstrümanlarda bir takım kısıtlamalar olduğunu unutmayın.


DC nedir? Ve diğer enstrümanlardaki kısıtlamalar nelerdir?
 
ViktorF :

DC nedir? Ve diğer enstrümanlardaki kısıtlamalar nelerdir?


DC - İşlem merkezi

Diğer enstrümanlar için test cihazında, sadece sıfır çubuğundaki açılış fiyatını alabilirsiniz, diğer enstrümanlar için keneler modellenmez, piyasa ortamına pratik olarak erişilemez.

Diğer enstrümanlarda işlem açılmaz.

Çoklu para birimi analizini doğru bir şekilde yapmanız gerekiyorsa, MT5 kullanmak daha iyidir. Çoklu para birimi test cihazı var.