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

 
alvlaf :

Bir danışmanı manuel olarak grafiklere mi bağlıyorsunuz ve grafiklerin HER BİRİ üzerinde MaxOpenOrders siparişlerini veya TOPLAM MaxOpenOrders siparişlerini açmak için buna ihtiyacınız var mı? Ve hangi emirler: sadece piyasa emirleri mi yoksa limit ve stop dahil tüm emirler mi?

 
A13ksandr :

Bir danışmanı manuel olarak grafiklere mi bağlıyorsunuz ve grafiklerin HER BİRİ üzerinde MaxOpenOrders siparişlerini veya TOPLAM MaxOpenOrders siparişlerini açmak için buna ihtiyacınız var mı? Ve hangi emirler: sadece piyasa emirleri mi yoksa limit ve stop dahil tüm emirler mi?

Tüm araçlar için her şeyi açmanız gerekir. Diyelim ki MaxOpenOrders 1, sadece bir piyasa emri açmalı. Bu bir ikili opsiyon botu, bekleyen emir yok. Doğru, seri olarak çalışır, bir pozisyon zararda kapatılırsa, aynı pozisyon sadece artan lotla açılır ve seri karlı bir işlemle bitene kadar diğer enstrümanlarda işlem açılmamalıdır.
 
A13ksandr :
"Bu stratejide" kelimelerinin amacı nedir? Hesap üzerinde manuel olarak işlemler yapılıyorsa veya başka bir Uzman Danışman çalışıyorsa bu emirlere dokunulmaması için sihir gerekir. Bence de.
Evet teşekkürler A13ksandr ve hata ayıklama yaparken bile kârsız serinin sonunu beklememek için sihri değiştiriyorum ve sadece sihri kaldırırsanız bu botun algoritmasını değiştirmez. Orada manuel olarak sipariş açmayı düşünmüyorum.
 
alvlaf :
Tüm araçlar için her şeyi açmanız gerekir. Diyelim ki MaxOpenOrders 1, sadece bir piyasa emri açmalı. Bu bir ikili opsiyon botu, bekleyen emir yok. Doğru, seri olarak çalışır, bir pozisyon zararda kapatılırsa, aynı pozisyon sadece artan lotla açılır ve seri karlı bir işlemle bitene kadar diğer enstrümanlarda işlem açılmamalıdır.

Tamam, ikili seçenekleri kaçırdım. Bazı nedenlerden dolayı, aynı Expert Advisor'ı manuel olarak farklı grafiklere bağlarsanız, yine de farklı Expert Advisor'ların çalıştığı kabul edilecek gibi görünüyor. Ve HER çizelge için 1 seçenek başlatılacak (peki, olması gerektiği gibi çalışacağı zaman). yanılıyor olabilirim çünkü. kendimi acemi. EA'daki çoklu para birimi sorununu şöyle yaptım:

girdi dizisi TradeSymbols = "EURUSD, GBPUSD, AUDUSD, NZDUSD, USDCAD, USDCHF, GBPCAD"; // ticaret sembolleri

stringSymbols[50]; // 50, olası maksimum karakter sayısıdır

int SymbolCount;

//------------------------------------------------ --

int OnInit()

{

if (IsTesting() || !ExtractSymbols())

{

SembolSayı = 1;

Semboller[0] = Sembol();

}

dönüş(INIT_SUCCESSED);

}

//------------------------------------------------ --

bool ExtractSymbols()

{

ushort Virgül = StringGetCharacter(",", 0);

SymbolCount = StringSplit(TradeSymbols, Virgül, Semboller);

for (int i = 0; i < SymbolCount; i++)

{

StringToUpper(Semboller[i]);

Semboller[i] = StringTrimRight(Symbols[i]); // rastgele boşluklara karşı koruma

Symbols[i] = StringTrimLeft(Symbols[i]);

}

if (SymbolCount > 0) return(true);

dönüş(yanlış);

}

//------------------------------------------------ --

geçersiz OnTick()

{

for (int i = 0; i < SymbolCount; i++)

{

double LastAsk = SymbolInfoDouble(Semboller[i], SYMBOL_ASK);

double LastBid = SymbolInfoDouble(Symbols[i], SYMBOL_BID );

// vb...

}

}

Herhangi bir çizelgeye bir danışman ekleyin. Yani tam olarak MaxOpenOrders tüm çizelgeler için olacaktır.

 
// ve benzeri... - EA'nın eski kodunun devam etmesi anlamında mı?
 
A13ksandr :

Tamam, ikili seçenekleri kaçırdım. Bazı nedenlerden dolayı, aynı Expert Advisor'ı manuel olarak farklı grafiklere bağlarsanız, yine de farklı Expert Advisor'ların çalıştığı kabul edilecek gibi görünüyor. Ve HER çizelge için 1 seçenek başlatılacak (peki, olması gerektiği gibi çalışacağı zaman). yanılıyor olabilirim çünkü. kendimi acemi. EA'daki çoklu para birimi sorununu şöyle yaptım:

girdi dizisi TradeSymbols = "EURUSD, GBPUSD, AUDUSD, NZDUSD, USDCAD, USDCHF, GBPCAD"; // ticaret sembolleri

stringSymbols[50]; // 50, olası maksimum karakter sayısıdır

int SymbolCount;

//------------------------------------------------ --

int OnInit()

{

if (IsTesting() || !ExtractSymbols())

{

SembolSayı = 1;

Semboller[0] = Sembol();

}

dönüş(INIT_SUCCESSED);

}

//------------------------------------------------ --

bool ExtractSymbols()

{

ushort Virgül = StringGetCharacter(",", 0);

SymbolCount = StringSplit(TradeSymbols, Virgül, Semboller);

for (int i = 0; i < SymbolCount; i++)

{

StringToUpper(Semboller[i]);

Semboller[i] = StringTrimRight(Symbols[i]); // rastgele boşluklara karşı koruma

Symbols[i] = StringTrimLeft(Symbols[i]);

}

if (SymbolCount > 0) return(true);

dönüş(yanlış);

}

//------------------------------------------------ --

geçersiz OnTick()

{

for (int i = 0; i < SymbolCount; i++)

{

double LastAsk = SymbolInfoDouble(Semboller[i], SYMBOL_ASK);

double LastBid = SymbolInfoDouble(Semboller[i], SYMBOL_BID);

// vb...

}

}

Herhangi bir çizelgeye bir danışman ekleyin. Yani tam olarak MaxOpenOrders tüm çizelgeler için olacaktır.

Bu kod MQL5'te mi yazılmış?
 
A13ksandr :
if (DayOfWeek() == 1) Fiyat = iOpen(Symbol(), PERIOD_D1, 4);
if (DayOfWeek() >= 2) Fiyat = iOpen(Symbol(), PERIOD_D1, DayOfWeek() - 2);

ya gelecek hafta başladıysa ve barın açılış fiyatından geçen haftanın Salı günü hala rapor vermem gerekiyorsa? onlar. Barın Salı günü açılış fiyatını belirlemesi ve gerektiğinde ondan başlaması için danışmana ihtiyacım var, örneğin - bir hafta, iki, bir ay, vb.

Teşekkür ederim.

 
yaaarik777 :

ya önümüzdeki hafta başladıysa ve hala geçen haftanın Salı günü bar açılış fiyatından rapor almam gerekiyorsa? onlar. Barın Salı günü açılış fiyatını belirlemesi ve gerektiğinde ondan başlaması için danışmana ihtiyacım var, örneğin - bir hafta, iki, bir ay, vb.

Teşekkür ederim.

Ardından belirli bir tarih belirlersiniz ve program o tarih için günün açılış fiyatını alır, bu daha da kolaydır.

 
evillive :

Ardından belirli bir tarih belirlersiniz ve program o tarih için günün açılış fiyatını alır, bu daha da kolaydır.

Kod konusunda yardımcı olabilir misiniz, bir şeyi yakalayamıyorum.

Ya da ilk çubuğun açılış fiyatının hesaplamasını Salı günü OnInit()'e koyabilir ve başlangıçta fiyatı hesaplar ve EA yeniden başlatılıncaya kadar bunu hatırlar mı? Ne düşünüyorsun?

Saçma sapan yazarsam özür dilerim yeni öğreniyorum)

 
yaaarik777 :

Kod konusunda yardımcı olabilir misiniz, bir şeyi yakalayamıyorum.

Ya da ilk çubuğun açılış fiyatının hesaplamasını Salı günü OnInit()'e koyabilir ve başlangıçta fiyatı hesaplar ve EA yeniden başlatılıncaya kadar bunu hatırlar mı? Ne düşünüyorsun?

Saçma sapan yazarsam özür dilerim yeni öğreniyorum)

Günün ilk çubuğunun açılış fiyatı = günlük çubuğun açılış fiyatı. Bu değeri yeniden hesaplamaya gerek yoksa, İnternet'te mümkündür.

Kod şöyle bir şeydir:

 input datetime dayz= D'2016.09.06 00:00' ; //зададим прошлый вторник, начало суток

int bar_dayz= 0 ;
double price_dayz= 0 ;

int OnInit ()
{
////...
bar_dayz=iBarshift( _Symbol , PERIOD_D1 ,dayz); 
price_dayz=iOpen( _Symbol , PERIOD_D1 ,bar_dayz);
///...
}
Neden: