[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 613

 
Satırın sonunda // yorum - iki eğik çizginin arkasındaki her şey veya derleyicinin bunları nasıl okumadığı.
 
Dimka-novitsek :

1. Terimin geçmişinde emir yoksa yürütülür ve bu durumda döngüye devam etmenin bir anlamı yoktur.

Teşekkürler!!! Köpeğin gömülü olduğu yer .. Vay canına! Nasıl modifiye edildi?

2. Al karda özel olarak tetiklenen bir emir bulmak için, TP değerini emir kapanış fiyatının değeri ile karşılaştırmanız gerekir.

Önce tarih döngüsünde belirli bir sıra seçiyorum ve sonra, öyle görünüyor ki, bu şekilde karşılaştırıyorum.


Belirli bir sipariş varsa, yani bilet numarasını biliyorsunuz, döngüye ihtiyacınız yok, sadece OrderSelect'i seçin (bilet, SELECT_BY_TICKET, MODE_HISTORY)
 
Teşekkürler!! Şimdi deneyeceğim!
 
Dimka-novitsek :

(!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) devam ederse; Bu benim döngümde böyle - eğer terimin tarihinde herhangi bir düzen yoksa ve bu durumda döngüye devam etmenin bir anlamı yoksa, devam edin!

Her şey yolunda mı?

Vay, bir gizem!!!


Sonra kırın veya geri dönün . devam etmek; -- döngü devam operatörü.
 
ilunga :

Neden aynı şeyi tekrar tekrar karşılaştırıyorsun?

Peki nasıl karşılaştırırsınız?
 
Dimka-novitsek :

if(Stoch_1>Stoch_2) { flag1=1 ; Yazdır(bayrak1,bayrak2,bayrak3,bayrak4); }


if(Stoch_1<Stoch_2 && flag1==1) flag2=1; Yazdır(bayrak1,bayrak2,bayrak3,bayrak4); }

if ((Stoch_1>Stoch_2) && flag1==1 && flag2==1) {flag3=1; Print(bayrak1,bayrak2,bayrak3,bayrak4);PlaySound("alert.wav");}


if(Stoch_1<Stoch_2 && flag1==1 && flag2==1 && flag3==1) flag4=1;
{Yazdır(bayrak1,bayrak2,bayrak3,bayrak4);}
if(Stoch_1>Stoch_2 && bayrak1==1 && bayrak2==1 && bayrak3==1 && bayrak4==1)
{ OrderSend (Symbol( ), OP_SELL, 0.01 ,Bid, 0, 0, 0, NULL, 450, 0, CLR_NONE);
Çıktı");}



bayrak1=0;
bayrak2=0;
bayrak3=0;
bayrak4=0;

Öğreneceğini anlayarak ve öğrenmek için en azından bir şeyler yaz... Hatta parantezleri de rol oynayacak şekilde düzenledim sana. Bence.


ve derleyicide kodunuz 24 hata üretmiş olsa da !!! neyse, dikkatsiz yardımın için bile teşekkürler.... fikir için... (şimdi işe yarıyor - temelde bunu yapmaya çalışsam da noktalama işaretleri başarısız oldu)
 

yine pozisyon indeksinin ne olduğunu merak ediyorum. Bu, geçmişteki pozisyonun seri numarasıysa, bu fonksiyon ne işe yarar?

GetIndexLastPos Son açık pozisyonun indeksi veya -1 ???

son açıklığın indeksi her zaman 1'dir çünkü en sondur !!

Açıkçası INDEX'i yanlış anlıyorum ...

söyle kim bilir

 
lottamer :

Peki, nasıl karşılaştırırsınız?

Hadi başlayalım:

1. if (Stoch_1>Stoch_2) flag1= 1 ise; , o zaman onu takip eden koşul (Stoch_1<Stoch_2 && flag1== 1 ) prensipte doğru olamaz, çünkü eğer Stoch_1<Stoch_2 flag1==0 ve eğer flag1== 1 ise, o zaman Stoch_1>Stoch_2. bu fonksiyondaki sonraki tüm koşullar için aynıdır, bu nedenle yalnızca bayrak 1 değeri değiştirebilir.Yani, programınız ilk iki satırı yürütür, üçüncü satırı yürütür , dördüncüyü yürütür, beşinciyi atlar, altıncıyı yürütür, yedinci satırı yürütür , ve geri kalanını atlayın.


	          
 
xant :

tarasbi,

Var1 adlı ve benimki gibi diğerleri, fGet_MineGV() bloğunu init içine ve fSave_MineGV() bloğunu staft içine yerleştirdi.

Derlerken, EA bir sürü hata üretti.

Tek tek denedim. İlk başta init'e eklenir, derlenir. Hatalar 0, bir not: referans alınmaz ve exp dosyasından kaldırılır. Burada benim için açık, dosyayı bulamıyor çünkü henüz mevcut değil. Kadroya kaydolması gerekiyor.

Yani ikinci bloğu staft içine yazmaya çalıştığımda çok fazla hata veriyor.

Yapısal algoritma:

 int init()
{
    fGet_MineGV();
}
int start()
{
    fSave_MineGV();
}
double Var1, Var2, Var3, Var4;   // 4-ре переменных для сохранения (у Вас они свои !!!)
void fSave_MineGV ( string fs_PrefName = "" )     // префикс имени переменной
{
     static datetime ldt_NewBar;
     datetime ldaTBeginBar = iTime ( Symbol (), 1 , 0 );
// ----
     //---- Сохраняемся в начале каждой минуты
     if (ldt_NewBar == ldaTBeginBar) return ;
    ldt_NewBar = ldaTBeginBar;
     //---- Сохраняем поочереди значения каждой переменной
     string ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_1" );
     GlobalVariableSet (ls_Name, Var1);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_2" );
     GlobalVariableSet (ls_Name, Var2);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_3" );
     GlobalVariableSet (ls_Name, Var3);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_4" );
     GlobalVariableSet (ls_Name, Var4);
//----
}
// в init()
void fGet_MineGV ( string fs_PrefName = "" )     // префикс имени переменной
{
     string ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_1" );
//----
     //---- Восстанавливаем значения переменных
     if ( GlobalVariableCheck (ls_Name)) Var1 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_2" );
     if ( GlobalVariableCheck (ls_Name)) Var2 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_3" );
     if ( GlobalVariableCheck (ls_Name)) Var3 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol (), "_N_4" );
     if ( GlobalVariableCheck (ls_Name)) Var4 = GlobalVariableGet (ls_Name);
//----
}

tabiki sen yaptın??? Ve derleme yapmıyor???

 
lottamer :

yine pozisyon indeksinin ne olduğunu merak ediyorum. Bu, geçmişteki pozisyonun seri numarasıysa, bu fonksiyon ne işe yarar?

GetIndexLastPos Son açık pozisyonun indeksi veya -1 ???

son açıklığın indeksi her zaman 1'dir çünkü en sondur !!

Açıkçası INDEX'i yanlış anladım ...

söyle kim bilir


son açıklığın indeksi her zaman 1'dir çünkü en sondur !! 1 değil, 0 ve tarihte değil. Tarihte 0, son kapatılan pozisyonun veya son silinen emrin endeksidir ve her zaman değil, çünkü piyasa emirlerine ek olarak, pozisyon olmayan bekleyen emirler de vardır.Ayrıca, indeks 0 bir pozisyon için olabilir. başka bir enstrüman için açıldı.