En azından hikayeyi baştan, hatta sondan itibaren gözden geçirin. Fark yok. Her neyse, fonksiyon en son kapanma zamanına sahip emri arar. Ve siparişleri silmek veya kapatmak istiyorsanız, listenin sonundan bir arama yapmanız gerekir. Aksi takdirde, döngü siparişleri atlayacaktır.
Bu durumda, hiçbir fark yoktur. OrersTotal'dan 0'a olan döngü, yalnızca pozisyonların kapatılması veya siparişlerin silinmesi durumunda olmalıdır. Diğer durumlarda, bir amatör.
En azından hikayeyi baştan, hatta sondan itibaren gözden geçirin. Fark yok. Her neyse, fonksiyon en son kapanma zamanına sahip emri arar. Ve siparişleri silmek veya kapatmak istiyorsanız, listenin sonundan bir arama yapmanız gerekir. Aksi takdirde, döngü siparişleri atlayacaktır.
İşlev, en son kapanış saatine sahip bir sipariş arıyorsa, arama açıkça tarihin başlangıcından değil, sondan - şimdiki zamandan geçmişe kadar daha hızlı olacaktır.
İşlev, en son kapanış saatine sahip bir sipariş arıyorsa, arama açıkça tarihin başlangıcından değil, sondan - şimdiki zamandan geçmişe kadar daha hızlı olacaktır.
Ters yönde ise fonksiyon en son kapanma zamanına sahip sırayı daha hızlı bulur, döngü sonuna kadar değiştirmez ve sonucu döndürür. İleri yönde, tüm siparişleri yineler ve son siparişlerden birini döndürür. Aradaki fark, döngünün her geçişinde değişkenlerin üzerine yazılacak olmasıdır. Evet. O. Ama önemli olduğunu düşünmüyorum. olsam da ileri değil geri dönmeyi tercih etti. Öyle ya da böyle olmasına rağmen, işlev çalışacaktır.
Herkese merhaba, programlı olarak grafik pencereleri arasında geçiş yapmanın, yani programdan herhangi bir grafiği aktif hale getirmenin bir yolu var mı?
Maksim Mihajlov # : Herkese merhaba, programlı olarak grafik pencereleri arasında geçiş yapmanın, yani programdan herhangi bir grafiği aktif hale getirmenin bir yolu var mı?
En azından hikayeyi baştan, hatta sondan itibaren gözden geçirin. Fark yok. Her neyse, fonksiyon en son kapanma zamanına sahip emri arar. Ve siparişleri silmek veya kapatmak istiyorsanız, listenin sonundan bir arama yapmanız gerekir. Aksi takdirde, döngü siparişleri atlayacaktır.
genel olarak, siparişlerin parti büyüklüğünü hesaplamak dışında tamamen aynı iki danışman yaptım !!. ve işte sonuç:
ÇALIŞMAZ (yani SATIŞ yerine BAY açmaz)
voidOnTick ()
{
// Получим значение индикатора
dMA = iMA ( Symbol (), 0 ,PeriodMA, MovingShift, MODE_SMA , PRICE_CLOSE , 0 ); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.// Если нет открытых ордеров, то входим в условиеif (CountOrders()== 0 )
{
//Если появился сигнал на покупку, то откроем ордер на покупкуif (bSignalBuy())
{
if (GetLotSize()>LotControl) vOrderOpenSell();
else vOrderOpenBuy();
}
// Если появился сигнал на продажу, то откроем ордер на продажуif (bSignalSell())
{
if (GetLotSize()>LotControl) vOrderOpenBuy();
else vOrderOpenSell();
}
}
}
,,,
double GetLotSize()
{
double Ls= 0 ;
for ( int pos= OrdersTotal ()- 1 ;pos>= 0 ;pos--)
{
if ( OrderSelect (pos, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol()== _Symbol && OrderMagicNumber()==Magic)
{
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {Ls=OrderLots();}
}
}
}
return Ls;
}
ÇALIŞIYOR ((yani SATIŞ yerine BAY açar )
voidOnTick ()
{
// Получим значение индикатора
dMA = iMA ( Symbol (), 0 ,PeriodMA, MovingShift, MODE_SMA , PRICE_CLOSE , 0 ); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.// Если нет открытых ордеров, то входим в условиеif (CountOrders()== 0 )
{
//Если появился сигнал на покупку, то откроем ордер на покупкуif (bSignalBuy())
{
if (GetLotSize()>LotControl) vOrderOpenSell();
else vOrderOpenBuy();
}
// Если появился сигнал на продажу, то откроем ордер на продажуif (bSignalSell())
{
if (GetLotSize()>LotControl) vOrderOpenBuy();
else vOrderOpenSell();
}
}
}
...
double GetLotSize()
{
double Ls= 0 ;
datetime t= 0 ;
int i=OrdersHistoryTotal();
for ( int pos= 0 ; pos<i; pos++)
{
if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderSymbol()== _Symbol && OrderMagicNumber()==Magic)
{
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if (t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
}
}
}
}
return Ls;
}
Görebildiğim kadarıyla, fark aşağıdaki gibidir:
En azından hikayeyi baştan, hatta sondan itibaren gözden geçirin. Fark yok. Her neyse, fonksiyon en son kapanma zamanına sahip emri arar. Ve siparişleri silmek veya kapatmak istiyorsanız, listenin sonundan bir arama yapmanız gerekir. Aksi takdirde, döngü siparişleri atlayacaktır.
Görebildiğim kadarıyla, fark aşağıdaki gibidir:
Bu durumda, hiçbir fark yoktur. OrersTotal'dan 0'a olan döngü, yalnızca pozisyonların kapatılması veya siparişlerin silinmesi durumunda olmalıdır. Diğer durumlarda, bir amatör.
En azından hikayeyi baştan, hatta sondan itibaren gözden geçirin. Fark yok. Her neyse, fonksiyon en son kapanma zamanına sahip emri arar. Ve siparişleri silmek veya kapatmak istiyorsanız, listenin sonundan bir arama yapmanız gerekir. Aksi takdirde, döngü siparişleri atlayacaktır.
İşlev, en son kapanış saatine sahip bir sipariş arıyorsa, arama açıkça tarihin başlangıcından değil, sondan - şimdiki zamandan geçmişe kadar daha hızlı olacaktır.
İşlev, en son kapanış saatine sahip bir sipariş arıyorsa, arama açıkça tarihin başlangıcından değil, sondan - şimdiki zamandan geçmişe kadar daha hızlı olacaktır.
Ters yönde ise fonksiyon en son kapanma zamanına sahip sırayı daha hızlı bulur, döngü sonuna kadar değiştirmez ve sonucu döndürür. İleri yönde, tüm siparişleri yineler ve son siparişlerden birini döndürür. Aradaki fark, döngünün her geçişinde değişkenlerin üzerine yazılacak olmasıdır. Evet. O. Ama önemli olduğunu düşünmüyorum. olsam da ileri değil geri dönmeyi tercih etti. Öyle ya da böyle olmasına rağmen, işlev çalışacaktır.
Herkese merhaba, programlı olarak grafik pencereleri arasında geçiş yapmanın, yani programdan herhangi bir grafiği aktif hale getirmenin bir yolu var mı?
Orada
Grafiği diğerlerinin üstünde göster
bool
Orada
Grafiği diğerlerinin üstünde göster
bool
Sayesinde!
En azından hikayeyi baştan, hatta sondan itibaren gözden geçirin. Fark yok. Her neyse, fonksiyon en son kapanma zamanına sahip emri arar. Ve siparişleri silmek veya kapatmak istiyorsanız, listenin sonundan bir arama yapmanız gerekir. Aksi takdirde, döngü siparişleri atlayacaktır.
genel olarak, siparişlerin parti büyüklüğünü hesaplamak dışında tamamen aynı iki danışman yaptım !!. ve işte sonuç:
ÇALIŞMAZ (yani SATIŞ yerine BAY açmaz)
ÇALIŞIYOR ((yani SATIŞ yerine BAY açar )
genel olarak, siparişlerin parti büyüklüğünü hesaplamak dışında tamamen aynı iki danışman yaptım !!. ve işte sonuç:
ÇALIŞMAZ (yani SATIŞ yerine BAY açmaz)
ÇALIŞIYOR ((yani SATIŞ yerine BAY açar )
Farkı bir kez daha vurguluyorum
1 seçenek
seçenek 2
genel olarak, siparişlerin parti büyüklüğünü hesaplamak dışında tamamen aynı iki danışman yaptım !!. ve işte sonuç:
ÇALIŞMAZ (yani SAT yerine BAY açmaz)
ÇALIŞIYOR ((yani SATIŞ yerine BAY açar )
OrdersTotal , OrdersHistoryTotal 'u körü körüne kopyalamak yerine ne kodladığınızı anlamaya çalışın.
SiparişSeç
havuz =MODE_TRADES
[içinde] Seçilecek veri kaynağı. Select parametresi SELECT_BY_POS olduğunda kullanılır. Aşağıdaki değerlerden biri olabilir:
MODE_TRADES (varsayılan) - emir, açık ve bekleyen emirler arasından seçilir,MODE_HISTORY - emir, kapatılan ve silinen emirler arasından seçilir.