Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Haydi Yapalım şunu. Siparişler arasında dolaşan kodu, nasıl yapması gerektiğine dair bir açıklama ile gösterirsiniz ve ancak o zaman neyin doğru neyin yanlış olduğunu söylemek mümkün olacaktır. Sadece fonksiyonların isimleri sizi sonuca yaklaştırmayacaktır.
Merhaba ... bana yardım etmeyi kabul ettiğiniz için teşekkür ederim ... küçük bir girişim gibi görünüyor, siparişlerin kapatıldığını duyurmak, sadece gerekli olayı uygun klasöre ekleyerek mal olacak - o kadar basit olmadığı ortaya çıktı . .. işte MQL4 Referansından aldığım kodun bir örneği Ticaret Fonksiyonları :
int OrdersHistoryTotal ();
// ticaret geçmişinden bilgi almaint i,accTotal= OrdersHistoryTotal ();
( i=0;i<accTotal;i++) için
{
//---- seçim sonucunu kontrol et
if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)== false )
{
Print ( "Geçmiş veritabanına erişim hatası (" , GetLastError (), ")" );
ara ;
}
// siparişle çalış...
}
... işlev , müşteri terminaline yüklenen cari hesap geçmişindeki kapatılan ve silinen siparişlerin sayısını döndürür. Geçmiş listesinin boyutu, terminalin "Hesap Geçmişi" sekmesinin mevcut ayarlarına bağlıdır.
Onlardan nasıl geçecek ve bunun neden gerekli olduğunu anlamıyorum ... belki de hatırlamamak ve müdahale etmemek için atmak dışında?
Yeni kapatılan siparişleri, kapanış anında kısa bir sesli sinyal ile seslendirmesi gerekiyor. Müşteri terminalimdeki tüm kapatılmış siparişler yalnızca iki türdendir: TrailStopLoss ve TakeProfit ortalamasına göre. Bir emri (bir emir grubu) kapatırken, hangi yöne ( Sat veya Al ) olursa olsun, StopLoss'u kapatmak için bunları yalnızca komut türüne göre ayırmanız gerekir. veya Kâr Al, ve uygun PlaySound işlevine iletin.
Merhaba ... bana yardım etmeyi kabul ettiğiniz için teşekkür ederim ... küçük bir girişim gibi görünüyor, siparişlerin kapatıldığını duyurmak, sadece gerekli olayı uygun klasöre ekleyerek mal olacak - o kadar basit olmadığı ortaya çıktı . .. işte MQL4 Referansından aldığım kodun bir örneği Ticaret Fonksiyonları :
int OrdersHistoryTotal ();
// ticaret geçmişinden bilgi almaint i,accTotal= OrdersHistoryTotal ();
( i=0;i<accTotal;i++) için
{
//---- seçim sonucunu kontrol et
if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)== false )
{
Print ( "Geçmiş veritabanına erişim hatası (" , GetLastError (), ")" );
ara ;
}
// siparişle çalış...
}
... işlev , müşteri terminaline yüklenen cari hesap geçmişindeki kapatılan ve silinen siparişlerin sayısını döndürür. Geçmiş listesinin boyutu, terminalin "Hesap Geçmişi" sekmesinin mevcut ayarlarına bağlıdır.
Onları nasıl çözecek ve bunun neden gerekli olduğunu anlamıyorum ... belki hatırlamak ve müdahale etmemek için atmak dışında?
Yeni kapatılan siparişleri, kapanış anında kısa bir sesli sinyal ile seslendirmesi gerekiyor. Müşteri terminalimdeki tüm kapatılmış siparişler yalnızca iki türdendir: TrailStopLoss ve TakeProfit ortalamasına göre. Bir emri (bir emir grubu) kapatırken, hangi yöne (Sat veya Al) olursa olsun, StopLoss'u kapatmak için bunları yalnızca komut türüne göre ayırmak gerekir. veya Kâr Al, ve uygun PlaySound işlevine iletin.
Siparişleri ters sırada sıralamak gerekir, çünkü 0 ilkidir. accTotal-1 sonuncusu. Bu kodda, "// siparişle çalışma" dan sonraki yorumu hatırlayın ve SL veya TP ile bir kapanış yorumu içerip içermediğini kontrol edin.
int OrdersHistoryTotal ();
// ticaret geçmişinden bilgi almaint i,accTotal= OrdersHistoryTotal ();
( i=0;i<accTotal;i++) için
{
//---- seçim sonucunu kontrol et
if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)== false )
{
Print ( "Geçmiş veritabanına erişim hatası (" , GetLastError (), ")" );
ara ;
}
// siparişle çalış...
}
stringOrderComment ( );
sicim yorum ;if ( OrderSelect (10,SELECT_BY_TICKET)== false )
{
Print ( "OrderSelect() bir hata döndürdü - " , GetLastError ());
dönüş (0);
}
yorum = SiparişYorum ();
// ...
Cevap için teşekkürler... OrderComment fonksiyon kodunu ekledikten sonra, ( MQL4 Reference OrdersHistoryTotal fonksiyonu tarafından seçilen emrin bir yorumunu döndüren alım satım fonksiyonları ), genel kod aşağıdaki formu alır ... terminalin geçmişinde yeni kapatılmış emirleri takip etmek için bir fonksiyonumuz yok mu? ... " 0 - ilk. accTotal-1 - son" - terminal tarihinde "ilk kapalı" ve "son" anlamına gelir, zamana göre mi?... doğru anladım mı?
terminalin geçmişinde yeni kapanan siparişleri takip etme fonksiyonumuz yok mu?
Standart olanlar yok.
string comment;
for (i=accTotal- 1 ;i>= 0 ;i++)
{
//---- check selection result
if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )== false )
{
Print ( "Ошибка при доступе к исторической базе (" , GetLastError (), ")" );
break ;
}
// работа с ордером ...
comment = OrderComment ();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
Standart olanlar yok.
string comment;
for (i=accTotal- 1 ;i>= 0 ;i++)
{
//---- check selection result
if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )== false )
{
Print ( "Ошибка при доступе к исторической базе (" , GetLastError (), ")" );
break ;
}
// работа с ордером ...
comment = OrderComment ();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
Teşekkürler... StringFind = Bir dizede alt dize ara işlevini kastediyorsunuz.
);
Aranan alt dizenin başladığı dizedeki konum numarasını veya alt dize bulunamazsa -1 döndürür.
... veya StringCompare işlevi - İki dizeyi karşılaştırır mı?...
Teşekkürler... StringFind = Bir dizede alt dize ara işlevini kastediyorsunuz.
);
Aranan alt dizenin başladığı dizedeki konum numarasını veya alt dize bulunamazsa -1 döndürür.
...
Doğru.
Teşekkürler ... kod şöyle görünecek:
int i,accTotal= OrdersHistoryTotal ();
int StringFind (string comment;
for (i=accTotal- 1 ;i>= 0 ;i++)
{
//---- check selection result
if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )== false )
{
Print ( "Ошибка при доступе к исторической базе (" , GetLastError (), ")" );
break ;
}
// работа с ордером ...
comment = OrderComment ();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
string string_value , // строка, в которой ищем
string match_substring , // что ищем
int start_pos=0 // с какой позиции начинать поиск
);
Teşekkürler ... kod şöyle görünecek:
int i,accTotal= OrdersHistoryTotal ();
int StringFind (string comment;
for (i=accTotal- 1 ;i>= 0 ;i++)
{
//---- check selection result
if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )== false )
{
Print ( "Ошибка при доступе к исторической базе (" , GetLastError (), ")" );
break ;
}
// работа с ордером ...
comment = OrderComment ();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
string string_value , // строка, в которой ищем
string match_substring , // что ищем
int start_pos=0 // с какой позиции начинать поиск
);
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Yeni Başlayanlardan Sorular
A1exPit , 2016.11.30 22:14
SELECT_BY_POS ile Sipariş Seçimi Sonuncusu veya ilki hangi 0 sipariş? Ve bazen tam tersini deniyorum ve modifi #0 hatası çöküyor.