Daha kesin cevap vermek için danışmanın koduna bakmanız gerekir. Ancak bu genellikle, bir danışman yazarken, danışmanların çalışmalarının göstergeler adı verilen bazı özellikleri dikkate alınmadığında olur. Uzman Danışmanlar gösterge değerlerini kendileri hesaplamazlar, gösterge tamponlarından hazır olarak alırlar. Bu nedenle, örneğin göstergenin önceki değerlerini veya göstergenin kendisinin yaptığı başka bir şeyi hatırlamak gerekirse, tüm bunlar danışmanda sağlanmalıdır. En azından kod tabanında böylelerini gördüm.Eh, standart bir stokastik var gibi görünse de "çarpık" göstergeler de var ve bu onun için geçerli değil.
Cevap için teşekkürler, ama bana pek yardımcı olmadı, sorunu tekrar gönderiyorum, belki başka birinin bu konuda bazı düşünceleri vardır ???
Tünaydın! Lütfen yardım edin, neden gereksiz siparişler açıldığını anlayamıyorum ((, ekranda kırmızı daire içine alınmış, kod ektedir...
Bu fonksiyon, son pozisyonu al ile kapatmak için bayrağı döndürür. Bayrak kaldırıldı - Doğru - TakeProfit çalıştı. Bayrak atlandı - Yanlış - pozisyon başka bir nedenle kapatıldı. Dikkate alınacak pozisyonların daha doğru seçimi harici parametreler tarafından belirlenir:
sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL , geçerli enstrüman anlamına gelir.
op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY , OP_SELL veya -1 . Varsayılan değer -1 , herhangi bir konum anlamına gelir.
mn - Konum Kimliği, MagicNumber. Varsayılan değer -1 , herhangi bir tanımlayıcı anlamına gelir.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.05.2008 |//| Описание : Возвращает флаг закрытия последней позиции по тейку. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+bool isCloseLastPosByTake( string sy= "" , int op=- 1 , int mn=- 1 ) {
datetime t;
double ocp, otp;
int dg, i, j=- 1 , k=OrdersHistoryTotal();
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy== "" ) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op< 0 || OrderType()==op) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg== 0 ) if ( StringFind (OrderSymbol(), "JPY" )< 0 ) dg= 4 ; else dg= 2 ;
ocp= NormalizeDouble (OrderClosePrice(), dg);
otp= NormalizeDouble (OrderTakeProfit(), dg);
if (ocp==otp) return (True);
}
return (False);
}
Bu fonksiyon, son pozisyonu alma ile kapatmak için bayrağı döndürür. Bayrak kaldırıldı - Doğru - TakeProfit çalıştı. Bayrak atlandı - Yanlış - pozisyon başka bir nedenle kapatıldı. Dikkate alınacak pozisyonların daha doğru seçimi harici parametreler tarafından belirlenir:
sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL , geçerli enstrüman anlamına gelir.
op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY , OP_SELL veya -1 . Varsayılan değer -1 , herhangi bir konum anlamına gelir.
mn - Konum Kimliği, MagicNumber. Varsayılan değer -1 , herhangi bir tanımlayıcı anlamına gelir.
Teşekkür ederim, kendim KIM Kütüphanelerine rastladım .. (Yoldaş Kim görünüşe göre forex dünyasının İŞARETLERİ gibidir - SERMAYE yazdı ... ve şimdi hepimiz ondan alıntı yapıyoruz (yani onları danışmanlarımıza ekliyoruz)) ... orada "bayraklar" var, farklı varyasyonlarda son fırsatlar var ...
Henüz #includ kullanmadım....
birkaç kelime ile açıklayabilir misin?
üstüne # include (mqh dosya adı) yazıyorum
ama kodda? sadece kullanıcı funk nereye eklenir? Örneğin
GetTypeLastClosePos();
sıradaki ne ?
Bundan, pozisyonun TÜRÜ bana TAM OLARAK NE döndürecek?
int GetTypeLastClosePos( string sy= "" , int mn=- 1 ) {
datetime t;
int i, k=OrdersHistoryTotal(), r=- 1 ;
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if ((OrderSymbol()==sy || sy== "" ) && (mn< 0 || OrderMagicNumber()==mn)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
r=OrderType();
}
}
}
}
}
return (r);
}
Sipariş türü() ?
onlar. o zaman eğer ( OrderType() ==TRUE ) şöyle böyle yaparsa... doğru mu?
Teşekkür ederim, kendim KIMA Kütüphanelerine rastladım .. (Yoldaş Kim görünüşe göre forex dünyasının İŞARETLERİ gibidir - BÜYÜK HALE yazdı ... ve şimdi hepimiz ondan alıntı yapıyoruz (yani onları danışmanlarımıza ekliyoruz)) ... orada "bayraklar" var, farklı varyasyonlarda son fırsatlar var ...
Henüz #includ kullanmadım....
birkaç kelime ile anlatabilir misin?
üstüne # include (mqh dosya adı) yazıyorum
ama kodda? sadece kullanıcı funk nereye eklenir? Örneğin
GetTypeLastClosePos();
sıradaki ne ?
Bundan, pozisyonun TÜRÜNÜ bana TAM OLARAK NE döndürecek?
Sipariş türü() ?
onlar. o zaman eğer ( OrderType() ==TRUE ) şöyle böyle yaparsa... doğru mu?
Fonksiyonlar, dönüş (0)'dan sonra eklenmelidir;
GetTypeLastClosePos() işlevi, bir satın alma varsa 0, satış varsa 1 veya geçmişte hiçbir şey yoksa -1 döndürür.
//+------------------------------------------------------------------+//| 123.mq4 |//| Copyright 2012, MetaQuotes Software Corp. |//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright "Copyright 2012, MetaQuotes Software Corp."#property link "http://www.metaquotes.net"//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init()
{
//----//----return ( 0 );
}
//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----//----return ( 0 );
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
//----if (isCloseLastPosByTake()== true ) Comment ( "Профит" ); elseComment ( "ХЗ" );
//----return ( 0 );
}
//+------------------------------------------------------------------+//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.05.2008 |//| Описание : Возвращает флаг закрытия последней позиции по тейку. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+bool isCloseLastPosByTake( string sy= "" , int op=- 1 , int mn=- 1 ) {
datetime t;
double ocp, otp;
int dg, i, j=- 1 , k=OrdersHistoryTotal();
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy== "" ) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op< 0 || OrderType()==op) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg== 0 ) if ( StringFind (OrderSymbol(), "JPY" )< 0 ) dg= 4 ; else dg= 2 ;
ocp= NormalizeDouble (OrderClosePrice(), dg);
otp= NormalizeDouble (OrderTakeProfit(), dg);
if (ocp==otp) return (True);
}
return (False);
}
Daha kesin cevap vermek için danışmanın koduna bakmanız gerekir. Ancak bu genellikle, bir danışman yazarken, danışmanların çalışmalarının göstergeler adı verilen bazı özellikleri dikkate alınmadığında olur. Uzman Danışmanlar gösterge değerlerini kendileri hesaplamazlar, gösterge tamponlarından hazır olarak alırlar. Bu nedenle, örneğin göstergenin önceki değerlerini veya göstergenin kendisinin yaptığı başka bir şeyi hatırlamak gerekirse, tüm bunlar danışmanda sağlanmalıdır. En azından kod tabanında böylelerini gördüm.Eh, standart bir stokastik var gibi görünse de "çarpık" göstergeler de var ve bu onun için geçerli değil.
Cevap için teşekkürler, ama bana pek yardımcı olmadı, sorunu tekrar gönderiyorum, belki başka birinin bu konuda bazı düşünceleri vardır ???
Tünaydın! Lütfen yardım edin, neden gereksiz siparişler açıldığını anlayamıyorum ((, ekranda kırmızı daire içine alınmış, kod ektedir...
Eğer öyleyse, bu yardım geliştiricileri için bir sorudur.
Buradaki geliştiricilerin bununla ilgisi yoktu. :__
( Hour()>=10 || Hour()<20 ) yerine basit bir Hour()>=10 && Hour()<20 yapmalıydınız
ve her şey çalıştı
"Eğer son anlaşma kâr al ile kapatılırsa > 0 ise ..." koşulunun nasıl kodlandığını görmek için nerede arama yapacağımı söyle
onlar. zaten kapalı (otomatik olarak) işlemlerin muhasebeleştirilmesi.
"Eğer son anlaşma kâr al ile kapatılırsa > 0 ise ..." koşulunun nasıl kodlandığını görmek için nerede arama yapacağımı söyle
onlar. zaten kapalı (otomatik olarak) işlemlerin muhasebeleştirilmesi.
https://www.mql5.com/ru/forum/131859
https://www.mql5.com/ru/forum/131859/page4#434230
isCloseLastPosByTake() işlevi.
Bu fonksiyon, son pozisyonu al ile kapatmak için bayrağı döndürür. Bayrak kaldırıldı - Doğru - TakeProfit çalıştı. Bayrak atlandı - Yanlış - pozisyon başka bir nedenle kapatıldı. Dikkate alınacak pozisyonların daha doğru seçimi harici parametreler tarafından belirlenir:
https://www.mql5.com/ru/forum/131859
https://www.mql5.com/ru/forum/131859/page4#434230
isCloseLastPosByTake() işlevi.
Bu fonksiyon, son pozisyonu alma ile kapatmak için bayrağı döndürür. Bayrak kaldırıldı - Doğru - TakeProfit çalıştı. Bayrak atlandı - Yanlış - pozisyon başka bir nedenle kapatıldı. Dikkate alınacak pozisyonların daha doğru seçimi harici parametreler tarafından belirlenir:
Teşekkür ederim, kendim KIM Kütüphanelerine rastladım .. (Yoldaş Kim görünüşe göre forex dünyasının İŞARETLERİ gibidir - SERMAYE yazdı ... ve şimdi hepimiz ondan alıntı yapıyoruz (yani onları danışmanlarımıza ekliyoruz)) ... orada "bayraklar" var, farklı varyasyonlarda son fırsatlar var ...
Henüz #includ kullanmadım....
birkaç kelime ile açıklayabilir misin?
üstüne # include (mqh dosya adı) yazıyorum
ama kodda? sadece kullanıcı funk nereye eklenir? Örneğin
GetTypeLastClosePos();
sıradaki ne ?
Bundan, pozisyonun TÜRÜ bana TAM OLARAK NE döndürecek?
Sipariş türü() ?
onlar. o zaman eğer ( OrderType() ==TRUE ) şöyle böyle yaparsa... doğru mu?
Teşekkür ederim, kendim KIMA Kütüphanelerine rastladım .. (Yoldaş Kim görünüşe göre forex dünyasının İŞARETLERİ gibidir - BÜYÜK HALE yazdı ... ve şimdi hepimiz ondan alıntı yapıyoruz (yani onları danışmanlarımıza ekliyoruz)) ... orada "bayraklar" var, farklı varyasyonlarda son fırsatlar var ...
Henüz #includ kullanmadım....
birkaç kelime ile anlatabilir misin?
üstüne # include (mqh dosya adı) yazıyorum
ama kodda? sadece kullanıcı funk nereye eklenir? Örneğin
GetTypeLastClosePos();
sıradaki ne ?
Bundan, pozisyonun TÜRÜNÜ bana TAM OLARAK NE döndürecek?
Sipariş türü() ?
onlar. o zaman eğer ( OrderType() ==TRUE ) şöyle böyle yaparsa... doğru mu?
Fonksiyonlar, dönüş (0)'dan sonra eklenmelidir;
GetTypeLastClosePos() işlevi, bir satın alma varsa 0, satış varsa 1 veya geçmişte hiçbir şey yoksa -1 döndürür.
Fonksiyonlar, dönüş (0)'dan sonra eklenmelidir;
GetTypeLastClosePos() işlevi, bir satın alma varsa 0, satış varsa 1 veya geçmişte hiçbir şey yoksa -1 döndürür.
anladım teşekkürler.
ama yine de, işlev #include dosyasındaysa, nasıl yok edilir?