Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 249

 
Sepulca :

belki daha iyidir

Sadece yerleri değiştirin. Yine de Hour()>OpenHH, bir saat ve dakikadan daha sıktır.
 
artmedia70 :
Sadece yerleri değiştirin. Yine de Hour()>OpenHH, bir saat ve dakikadan daha sıktır.


Bunun danışmanın çevikliğini artıracağını düşünüyor musunuz? İlginç, belki ... Dürüst olmak gerekirse, IFe'de koşul belirleme sırasını hiç düşünmedim ..)
 
Sepulca :

Bunun danışmanın çevikliğini artıracağını düşünüyor musunuz? İlginç, belki ... Dürüst olmak gerekirse, IFe'de koşul belirleme sırasını hiç düşünmedim ..)
Pekala... Çok büyük bir artıştan bahsetmiyorum, ama yine de... yeni MQL4 ile güncellenmiş terminal çıkana kadar, ilki yanlış olsa bile tüm mantıksal koşullar sonuna kadar okunur
 
Sepulca :


Her şey doğru görünüyor, çalışması gerekiyor. Kodunuzu evde denedim - dakikalar içinde çalışıyor. Ancak yalnızca 14:25 ila 14:59, 15:25 ila 15:59 vb.


Hızlı yanıt için teşekkürler, ama - ne yazık ki, bir şey çalışmıyor... Kod yalnızca bu sürümde çalışıyor, hem senaryonun gövdesinde hem de danışmanın gövdesinde. Zaman ve işlevsellik açısından - her şey yolunda. Siparişler sadece saat başı verilir!
int start()
{
int OpenHH=14,OpenMM=25;
bool Trade=true;
//----
if (Trade) // Разрешение на торговлю.
if (TimeHour(TimeCurrent()) >= OpenHH ) // В назначенный час
{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); } // открыть ордера.
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}

Ancak koda dakika ekler eklemez ( TimeMinute( TimeCurrent() ) >= OpenMM ) - sonuç yok.

EA, StrToTime() işlevini kullanırken dakika bazında sipariş vermeyi de reddediyor.

Tekrar teşekkürler... Kazmaya devam edeceğim...

 
Sepulca :

belki daha iyidir

Hayır... o da işe yaramıyor...

Başka bir StrToTime() işlevi kullanırken bile - zamanı tam saat olarak belirtirseniz - her şey yolundadır, ancak dakikalar eklenir eklenmez - sonuç yok. Gerçi 1. mesajda yazdığım gibi Cuma günleri 23:45'teki siparişler sorunsuz kapanıyor...

bool Trade=true;

string OpenTime = "14:00"; // Вот так работает!!!

string OpenTime = "14:25"; // А вот так - не работает!!!

if ( StrToTime(OpenTime) == TimeCurrent() && Trade )

{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); }
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}

 
Crosswert :

Hayır... o da işe yaramıyor...

Başka bir StrToTime() işlevi kullanırken bile - zamanı tam saat olarak belirtirseniz - her şey yolundadır, ancak dakikalar eklenir eklenmez - sonuç yok. Gerçi 1. mesajda yazdığım gibi Cuma günleri 23:45'teki siparişler sorunsuz kapanıyor...

bool Trade=true;

string OpenTime = "14:00"; // Вот так работает!!!

string OpenTime = "14:25"; // А вот так - не работает!!!

if ( StrToTime(OpenTime) == TimeCurrent() && Trade )

{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); }
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}


Şey, bilmiyorum... Bu kod bende de çalışıyor...

 
Nasıl test ediyorsun? Örneğin, H1'de ve açılış fiyatlarındaysa , muhtemelen çalışmayacaktır.
 
Sepulca :
Nasıl test ediyorsun? Örneğin, H1'de ve açılış fiyatlarındaysa, muhtemelen çalışmayacaktır.
Test etmek için açılış fiyatlarında bir dakikalığına tavsiyede bulunun.
 
Sepulca :
Nasıl test ediyorsun? Örneğin, H1'de ve açılış fiyatlarındaysa, muhtemelen çalışmayacaktır.

Eh, her şeyin nasıl basit olduğunu görüyorsunuz ... Dakikaların TF'nin katı olması gerekiyor ...

Şimdi / if ( TimeCurrent() == StrToTime(OpenTime) && Trade ), OpenTime = 14:25 / ile çalışacak, ancak sadece TF=M1 ve M5'te... Açılış emirlerinin fonksiyonu için güncel kotasyonlara ihtiyaç var, emirleri kapatma işlevi için bunlara ihtiyaç yoktur...

Bir şekilde bu anı "küntleştirdim" (düşünmedim), deneyimsizlikten görülebilir ...

Çok teşekkürler, anladım...

 

Sepulca :

Nasıl test ediyorsun? Örneğin, H1'de ve açılış fiyatlarındaysa, muhtemelen çalışmayacaktır.


Ha ha... Ama yalan söyledim...

Sorunun OpenOrders() sipariş açma işlevinde olduğu ortaya çıktı. Bir mumun (çubuk) kırılmasında açılış emirlerinin kontrolünü tamamen kaldırmayı unuttum:

if (Volume[0] > 1) return;

Bu nedenle, danışman hangi TF'ye göre test edildi - bu dakikalarda siparişleri açtı ...

Onu hiç kaybettim, şiddetli ...

Teşekkürler...