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

 
sibemol >> :

Cevap için teşekkürler deneyip sonuçları yazacağım.

hazırlıksız eklenen trochs - bir fikir olarak.


//+------------------------------------------------------------------+
//| CopyBars.mq4 |
//| Copyright © 2009, Sorento |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Sibemol & Sorento" // :)
#property link "http://www.metaquotes.net"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 White
//---- input parameters
extern int Max_Length=9;
double v1[];int pos, hFile;datetime CurentT;
string O="CB", strng, F=";", Filler="0000000000000000";
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
string Name_File;
Name_File=StringConcatenate(O,Symbol(),TimeYear(Time[0]),"_",TimeMonth(
Time[0]),"_",TimeDay(Time[0]),"x",TimeHour(iTime(NULL,1,0)),"_",
TimeMinute(iTime(NULL,1,0)),".CSV");
Print ("Bars in ",Name_File," start!");
hFile=FileOpen(Name_File,FILE_CSV |FILE_WRITE,F);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,v1);
strng=StringConcatenate("<ticker>",F,"<per>",F,"<date>",F,"<time>",F,"<open>",F,"<high>");
strng=StringConcatenate(strng,F,"<low>",F,"<close>",F,"<volume>",F,"<oi>",F);
pos=pos+StringLen(strng);
FileWrite(hFile,strng);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
FileClose(hFile);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted(), limit;
//----- первый вызов
if (counted_bars==0)
{CurentT=Time[0];// при записи может закрыться текущий бар и появится новый
limit=Bars-1;
CurentT =FilesWR(limit,1);
//----
return(0);
}
//---- последующие
if (counted_bars>0)
if (CurentT<Time[0])
{// мог быть обрыв связи - нужно найти последний и может еще не обновлённый бар
limit=iBarShift(NULL,Period(),CurentT,false);
CurentT=Time[0];// при записи может закрыться текущий бар и появится новый
FilesWR(limit+1,0);
}
else FilesWR(1,0); //бар еще текущий
//-----
return(0);
}
//+------------------------------------------------------------------+
datetime FilesWR(int startBar,int code){

int codec=code;

for(int i=startBar; i>=0; i--)
{
v1[i]=Close[i];
int _Year=TimeYear(Time[i]),
_Month=TimeMonth(Time[i]),
_Day=TimeDay(Time[i]),
_Hour=TimeHour(Time[i]),
_Minute=TimeMinute(Time[i]);

string Y, M, D, H, Mi, Date, _Time;

if(_Month<10) M="0"+DoubleToStr(_Month, 0); else M=DoubleToStr(_Month, 0);
if(_Day<10) D="0"+DoubleToStr(_Day, 0); else D=DoubleToStr(_Day, 0);
if(_Hour<1) H="00";
else if(_Hour<10 ) H="0"+DoubleToStr(_Hour, 0);
else H=DoubleToStr(_Hour, 0);
if(_Minute<1)Mi="00";
else if(_Minute<10) Mi="0"+DoubleToStr(_Minute, 0);
else Mi=DoubleToStr(_Minute, 0);
Date=DoubleToStr(_Year, 0)+M+D;
_Time=H+Mi;

strng=StringConcatenate(Symbol(),F, Period(),F, Date,F, _Time,F,
DS(Open[i]),F,DS(High[i]),F, DS(Low[i]),F,DS( Close[i]),F,IS( Volume[i],10),F);
pos=+StringLen(strng);// можно заранее просчитать длину и использовать предопределённую константу
if (codec==0)
{//обновим предпоследний бар тоже
FileSeek(hFile,pos-StringLen(strng),SEEK_SET);
codec=+1;
}

FileWrite(hFile,strng);// при записи может закрыться текущий бар и появится новый
if ( CurentT<Time[0]) i=+1;// сместим индексы

}
CurentT=Time[0];
FileFlush(hFile);
return ;
}
//----------Быстрая коричневая сука----------
//----------12345678901234567890----------!!!
string DS(double value)
{
string strng=DoubleToStr(value,Digits);
int k=StringLen(strng);
int l=StringFind(strng,".")+Digits+1;
if (l<k)
{ strng=StringConcatenate(strng,StringSubstr(Filler,0,k-l));k=2*k-l;}
int i=Max_Length-k;// add char
return (StringConcatenate(StringSubstr(Filler,0,i+1),strng));
}
string IS(int iValue, int Max_Length)
{
string strng=DoubleToStr(iValue,0);
int k=StringLen(strng);
int i=Max_Length-k;// add 0
return (StringConcatenate(StringSubstr(Filler,0,i+1),strng));
}
 

Optimizasyon aşağıdaki mesajla sona erdi:

There were 60 passes done during optimization
optimization stopped, 140 cache records were used, 140 cache records rejected

ayarlar penceresindeyken:

200 / 1 280 (200)


1. Biri bu sayıların ne anlama geldiğini ve nasıl elde edilebileceğini açıklayabilir mi? (60, 140, 200, 1280)

2. Diyelim ki, iki parametre optimize edilseydi ve olası kombinasyonların sayısı sırasıyla 15 ve 20 olsaydı - bunlar nerede görünür olurdu (bu sayılar arasında)?

3. Optimizasyon döngülerinin sayısında herhangi bir kısıtlama var mı? (Tüm kombinasyonların dikkate alınacağı garanti ediliyor mu?)

Teşekkür ederim!

 

Koddaki özelliklerden erişilebilen fibo nesnelerinin düzeylerinin açıklaması nasıl yapılır? Koddaki değerlerinin nasıl ayarlanacağı açıktır:

       ObjectSet ( "fibo" , OBJPROP_FIBOLEVELS , 8 ) ;
       ObjectSet ( "fibo" , OBJPROP_FIRSTLEVEL + 0 , 0.0 ) ;
       ObjectSet ( "fibo" , OBJPROP_FIRSTLEVEL + 1 , 0.382 ) ;
       ObjectSet ( "fibo" , OBJPROP_FIRSTLEVEL + 2 , 0.618 ) ;
       ObjectSet ( "fibo" , OBJPROP_FIRSTLEVEL + 3 , 1.0 ) ;
       ObjectSet ( "fibo" , OBJPROP_FIRSTLEVEL + 4 , 1.382 ) ;
       ObjectSet ( "fibo" , OBJPROP_FIRSTLEVEL + 5 , 1.618 ) ;
       ObjectSet ( "fibo" , OBJPROP_FIRSTLEVEL + 6 , 2.0 ) ;
       ObjectSet ( "fibo" , OBJPROP_FIRSTLEVEL + 7 , 2.618 ) ;

Ve açıklama? Yoksa koddan mevcut değil mi?

 

Sorento, büyük merci! Hafta sonu biter bitmez, sürümünüzü ve alsu'yu mutlaka kontrol edeceğim.

2alsu: Alanları körleştirdim, satır olarak saydım))).

 
sibemol >> :
Sorento, büyük merhamet! Hafta sonu biter bitmez mutlaka versiyonunuzu ve alsu'yu kontrol edeceğim.

piyasa hareketi olmadan, şimdi kontrol edin. bu, yalnızca iki durumda hata ayıklamaya odaklanmanıza olanak tanır.

bar eski

ve yenisi var.

yenisi göründüğünde, tam olarak oluşturulmuş olanı güncellemek gerekir.

optimize edilecek bir şey var.

ve iletişimi atlamak ve tarihin bir parçasını yapay olarak kaybetmek için algoritmayı kontrol edin.


Yolculuğunda iyi şanslar.


not. Muhtemelen iki uzunluk geri gitmeniz gerekir. Düşünmek.

 
Sorento, sabit bir piyasada hiçbir şeyi değiştirmeden kodu kontrol etti. Çizgiler şöyle görünür: EURUSD;15;20091224;1830;0001.43580;0001.43625;0001.43566;0001.43611;00000000163; EURUSD;15;20091224;1845;0001.43612;0001.43612;0001.43536;0001.43538;00000000180; ve son iki çubuk dosyanın başına yazılır (kopyalanır). Bunun taşınması gerekecek. Kodunuzu inceleyeceğim. Teşekkür ederim.
 

uzunluk sabitliği için DoubleToStr(value, Digits ) sıfırlarından sonra satır başı ve doldurma gereklidir - bu, yakalamaydı. daha da yok et.

Ayrıca sondan bir pozisyon arayabilirsiniz. ;)

Keşfinizde iyi şanslar.

 

2Sorento:

kodunuzda

 int start ( )
{
int counted_bars = IndicatorCounted ( ) , limit ;
//----- первый вызов
if ( counted_bars = = 0 )
{ CurentT = Time [ 0 ] ; // при записи может закрыться текущий бар и появится новый
limit = Bars - 1 ;
CurentT = FilesWR ( limit , 1 ) ;
//----
//return(0);

iade (0) kaldırıldı, bundan sonra dosya olması gerektiği gibi kaydedildi, tüm kayıtlarda yalnızca 0 içeren son alan <oi> için hiçbir değer yok, ancak bunlar önemsiz şeyler, çözeceğim. Şimdi hareketi kontrol etmemiz gerekiyor. Tekrar teşekkürler.

Tehdit Ve kurşunu kaldıramazsınız. fiyat ile alanlarda sıfırlar? Uzunluğu etkilemiyor gibi görünüyor.

 
Svinozavr >> :

Koddaki özelliklerden erişilebilen fibo nesnelerinin düzeylerinin açıklaması nasıl yapılır? Koddaki değerlerinin nasıl ayarlanacağı açıktır:

Ve açıklama? Yoksa koddan mevcut değil mi?


Teşekkürler Sorento - önerilen ObjectSetFiboDescription.

Soru kaldırıldı.

 
sibemol >> :

2Sorento:

kodunuzda

iade (0) kaldırıldı, bundan sonra dosya olması gerektiği gibi kaydedildi, tüm kayıtlarda yalnızca 0 içeren son alan <oi> için hiçbir değer yok, ancak bunlar önemsiz şeyler, çözeceğim. Şimdi hareketi kontrol etmemiz gerekiyor. Tekrar teşekkürler.

Tehdit Ve kurşunu kaldıramazsınız. fiyat ile alanlarda sıfırlar? Uzunluğu etkilemiyor gibi görünüyor.

altınları kovala. 1140 ve 980

kayıt uzunluğu değişir.

ve <oi> Gereksiz olarak kaldırdım ;)