Muhasebe, açılış ve kapanış emirlerinin kodunu ders kitabından (tradingexpert.mq4) aldım.Kod, tek bir konumla çalışmak üzere tasarlanmıştır. Beş pozisyon olmalı.
Kodu biraz değiştirdikten sonra, pozisyonların gerekli miktarda açıldığı, ancak değiştirilirken sadece bir pozisyon kapatıldığı ve zıt pozisyonun hemen olduğu şekilde (değiştirilen satırlar koyu renkle vurgulanmıştır) yapıldığı ortaya çıktı. açıldı.
Bir geri dönüş sırasında tüm pozisyonların kapanması ve ardından sadece karşı pozisyonun açılması için nasıl yapılır?
// Учёт ордеров
Symb= Symbol (); // Название фин.инстр.
Total= 0 ; // Количество ордеровfor ( int i= 1 ; i<= OrdersTotal (); i++) // Цикл перебора ордер
{
if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) // Если есть следующий
{ // Анализ ордеров:if ( OrderSymbol ()!=Symb) continue ; // Не наш фин. инструмif ( OrderType ()> 1 ) // Попался отложенный
{
Alert ( "Обнаружен отложенный ордер. Эксперт не работает." );
return ; // Выход из start()
}
Total++; // Счётчик рыночн. ордif (Total> 5 ) // Было не более одного орд, стало не более пяти
{
Alert ( "Несколько рыночных ордеров. Эксперт не работает." );
return ; // Выход из start()
}
Ticket= OrderTicket (); // Номер выбранн. орд.
Tip = OrderType (); // Тип выбранного орд.
Price = OrderOpenPrice (); // Цена выбранн. орд.
SL = OrderStopLoss (); // SL выбранного орд.
TP = OrderTakeProfit (); // TP выбранного орд.
Lot = OrderLots (); // Количество лотов
}
}
// Открытие ордеровwhile ( true ) // Цикл закрытия орд.
{
if (Total < 5 && Opn_B== true ) // Открытых орд. нет +. Было Total < 1, стало Total < 5
{ // критерий откр. BuyRefreshRates (); // Обновление данных
SL= Bid - New_Stop(StopLoss)* Point ; // Вычисление SL откр.
TP= Bid + New_Stop(TakeProfit)* Point ; // Вычисление TP откр.Alert ( "Попытка открыть Buy. Ожидание ответа.." );
Ticket= OrderSend (Symb, OP_BUY ,Lts, Ask , 2 ,SL,TP); //Открытие Buyif (Ticket > 0 ) // Получилось :)
{
Alert ( "Открыт ордер Buy " ,Ticket);
return ; // Выход из start()
}
if (Fun_Error(GetLastError())== 1 ) // Обработка ошибокcontinue ; // Повторная попыткаreturn ; // Выход из start()
}
// Закрытие ордеровwhile ( true ) // Цикл закрытия орд.
{
if (Tip== 0 && Cls_B== true ) // Открыт ордер Buy..
{ //и есть критерий закрAlert ( "Попытка закрыть Buy " ,Ticket, ". Ожидание ответа.." );
RefreshRates (); // Обновление данных
Ans= OrderClose (Ticket,Lot, Bid , 2 ); // Закрытие Buyif (Ans== true ) // Получилось :)
{
Alert ( "Закрыт ордер Buy " ,Ticket);
break ; // Выход из цикла закр
}
if (Fun_Error(GetLastError())== 1 ) // Обработка ошибокcontinue ; // Повторная попыткаreturn ; // Выход из start()
}
Muhasebe, açılış ve kapanış emirlerinin kodunu ders kitabından (tradingexpert.mq4) aldım.Kod, tek bir konumla çalışmak üzere tasarlanmıştır. Beş pozisyon olmalı.
Kodu biraz değiştirdikten sonra, pozisyonların gerekli miktarda açıldığı, ancak değiştirilirken sadece bir pozisyon kapatıldığı ve zıt pozisyonun hemen olduğu şekilde (değiştirilen satırlar koyu renkle vurgulanmıştır) yapıldığı ortaya çıktı. açıldı.
Bir geri dönüş sırasında tüm pozisyonların kapanması ve ardından sadece karşı pozisyonun açılması için nasıl yapılır?
Ticket'ı bir Ticket[5] dizisi yapın, 5 biletin hepsini içinde saklayın. Kapatırken, sırasıyla tüm biletler için bir döngü.
Kütüphanelerin kullanım düzeyine göre, yeni başlayanlarla ilişki kuramazsınız. Koduna baktım, çözmem için iki haftaya ihtiyacım var. Daha fazla değilse. Bu yüzden bir cevap alacağınızı sanmıyorum.
Vitya, burada hiçbir şey anlamanıza gerek yok - bir kişi bir "korumalı alandan" (kütüphaneleriyle EA) global değişkenlerin başka bir "korumalı alanda" (derlenmiş kitaplık) görünmesini istiyor. :)))
Sevgili, senden eleştirmeni değil, sadece yardım etmeni ve önermeni istiyorum. Ben havalı bir proger değilim, kod toplayıcıyım.Bu yüzden bir gösterge oluşturdum (bir dosya değil bir metin düzeni yapabileceğinizi görüyorum t-bunu daha kolay algılama için yapacağım-
#property indicator_separate_window#property indicator_buffers1#property indicator_color1 Lime
//--------------------------------------------------------------------double Buffer[];
//--------------------------------------------------------------------int init()
{
SetIndexStyle ( 0 , DRAW_HISTOGRAM , EMPTY , 2 );
SetIndexBuffer ( 0 ,Buffer);
return ( 0 );
}
// -------------------------------------------------------------------int deinit()
{
return ( 0 );
}
//--------------------------------------------------------------------int start()
{
int StartBar = Bars - IndicatorCounted () - 1 ;
for ( int i = StartBar; i >= 0 ; i--)
{
if ( TimeDayOfWeek ( Time [i]) < TimeDayOfWeek ( Time [i+ 1 ]))
Buffer[i] = 0 ;
else
Buffer[i] = Buffer[i+ 1 ];
if ( Close [i]> Close [i+ 1 ]&& Close [i+ 1 ]>= Close [i+ 2 ]){ //если текущее и преддыдущее движение растут
Buffer[i] += NormalizeDouble (( Close [i] - Close [i+ 1 ])/ Point , 0 );}
if ( Close [i]< Close [i+ 1 ]&& Close [i+ 1 ]< Close [i+ 2 ]){ //если текущее и преддыдущее движение падают
Buffer[i] += NormalizeDouble (( Close [i+ 1 ] - Close [i])/ Point , 0 );}
if ( Close [i]> Close [i+ 1 ]&& Close [i+ 1 ]< Close [i+ 2 ]){ //если текущее лвижение растет а предыдущее падает
Buffer[i] += NormalizeDouble (( Close [i+ 1 ] - Close [i])/ Point , 0 );}
if ( Close [i]< Close [i+ 1 ]&& Close [i+ 1 ]>= Close [i+ 2 ]){ //если текущее движение падает а предыдущее растет
Buffer[i] += NormalizeDouble (( Close [i] - Close [i+ 1 ])/ Point , 0 );}
}
return ( 0 );
}
//--------------------------------------------------------------------
Hafta boyunca noktaların toplamını ve bunların toplamlarının dinamiklerini gösterir - daha küçük zaman dilimlerinde, eğer Kapat[i+2]'den Kapat[i+1]'e önceki hareketi devam ettirirse, o zaman mevcut Kapat[i] hareketi artı, eğer buna karşıysa, eksidir. haftanın başlangıcı sıfırdan bir başlangıç sağlar - haftanın sonunda döngü biter. yeniden çizilmez. programın Cuma kapanışını görmesi için kavramın yerine bir şekilde reçete yazmak gerekiyor - barın kapanması - böylece DayOfWeek ve 5 sayısı (Cuma'nın numarası) kullanılarak yapılabileceğini anlıyorum, ancak bu nasıl olabilir? pratik olarak yapıldı mı? Yardım.
TarasBY : Vitya, burada hiçbir şey anlamanıza gerek yok - bir kişi bir "korumalı alandan" (kütüphaneleriyle EA) global değişkenlerin başka bir "korumalı alanda" (derlenmiş kitaplık) görünmesini istiyor. :)))
Igor, biraz yanlış! "Korumalı alanda" (derlenmiş kitaplık) yalnızca işlevler vardır ve tüm değişkenler dahil etmede bildirilir. Ve içerme dosyasında (dahil edilen dosya) bildirilen değişkenler baykuşta görünür olmalıdır, çünkü içermeyi doğrudan baykuşa ekledim. katılmıyor musun?
Sevgili, senden eleştirmeni değil, sadece yardım etmeni ve önermeni istiyorum. Ben havalı bir proger değilim, ama bir kod toplayıcıyım.Bu yüzden bir gösterge topladım (bir dosya değil bir metin düzeni yapabileceğinizi görüyorum t-bunu daha kolay algılama için yapacağım-
Hafta boyunca noktaların toplamını ve bunların toplamlarının dinamiklerini gösterir - daha küçük zaman dilimlerinde, eğer Kapat[i+2]'den Kapat[i+1]'e önceki hareketi devam ettirirse, o zaman mevcut Kapat[i] hareketi artı, eğer buna karşıysa, eksidir. haftanın başlangıcı sıfırdan bir başlangıç sağlar - haftanın sonunda döngü biter. yeniden çizilmez. programın Cuma kapanışını görmesi için kavramın yerine bir şekilde reçete yazmak gerekiyor - barın kapanması - böylece DayOfWeek ve 5 sayısı (Cuma'nın numarası) kullanılarak yapılabileceğini anlıyorum, ancak bu nasıl olabilir? pratik olarak yapıldı mı? Yardım.
Öyle mi yapacak?
//+------------------------------------------------------------------+//| Vitek2010.mq4 |//| Copyright 2014, Vinin |//| vinin@mail.ru |//+------------------------------------------------------------------+#property copyright"Copyright 2014, Vinin"#property link"vinin@mail.ru"#property version"1.00"#property indicator_separate_window#property indicator_buffers1#property indicator_color1 Lime
//--------------------------------------------------------------------double Buffer[];
//--------------------------------------------------------------------int init()
{
SetIndexStyle ( 0 , DRAW_HISTOGRAM , EMPTY , 2 );
SetIndexBuffer ( 0 ,Buffer);
return ( 0 );
}
// -------------------------------------------------------------------int deinit()
{
return ( 0 );
}
//--------------------------------------------------------------------int start()
{
int StartBar= Bars - IndicatorCounted ()- 1 ;
if (StartBar> 1 ) StartBar--;
for ( int i=StartBar; i>= 0 ; i--)
{
Buffer[i]=Buffer[i+ 1 ];
int pos0= iBarShift ( NULL , PERIOD_W1 , Time [i]);
int pos1= iBarShift ( NULL , PERIOD_W1 , Time [i+ 1 ]);
if (pos0==pos1)
Buffer[i]+= MathAbs ( Close [i]- Close [i+ 1 ]);
else
Buffer[i]= MathAbs ( Close [i]- Close [i+ 1 ]);
}
return ( 0 );
}
//--------------------------------------------------------------------
Igor, biraz yanlış! "Korumalı alanda" (derlenmiş kitaplık) yalnızca işlevler vardır ve tüm değişkenler dahil etmede bildirilir. Ve içerme dosyasında (dahil edilen dosya) bildirilen değişkenler baykuşta görünür olmalıdır, çünkü içermeyi doğrudan baykuşa ekledim. katılmıyor musun?
ve sonra derlenmiş kitaplık hakkında bir söz ne zaman?
Hayır, olmayacak. Açıklayacağım - forumunuz progerlerin son okuryazar kalesi için bir umut gibidir. ve bir boyut eklemek - bu yazımın gördüğü tam olarak budurPERIOD_W1 ancak ne boyut kullanımı ne de tarih biçimindeki sabit referans noktalarının kullanımı istenen herhangi bir etkiye sahip değildir. bu yüzden belirli bir kavramı eklemek için belirli bir soru yazdım - Cuma günleri - bu arada, kodunuz derlenmiyor, 'sürüm' diyor - bilinmeyen özellik ("sürüm" - bilinmeyen bir özellik) yani nasıl olduğunu bilmiyorsanızDayOfWeek ve 5 (Cuma numarası) sayılarını buna diğer seçenekleri verdiğim kodun eklenmesi yardımcı olmaz.
Vitek2010 : Hayır, olmayacak. Açıklayacağım - forumunuz progerlerin son okuryazar kalesi için bir umut gibidir. ve bir boyut eklemek - bu yazım tam olarak böyle görüyorPERIOD_W1 ancak ne boyut kullanımı ne de tarih biçimindeki sabit referans noktalarının kullanımı istenen herhangi bir etkiye sahip değildir. bu yüzden belirli bir kavramı eklemek için belirli bir soru yazdım - Cuma günleri - bu arada, kodunuz derlenmiyor, 'sürüm' diyor - bilinmeyen özellik ("sürüm" - bilinmeyen bir özellik) yani nasıl olduğunu bilmiyorsanızDayOfWeek ve 5 (Cuma numarası) sayılarını buna diğer seçenekleri verdiğim kodun eklenmesi yardımcı olmaz.
TimeDayOfWeek ( Time [i]), Time[i]'yi hiç belirtmez, ancak D'2014.01.27' biçiminde belirli bir tarihi belirtir.
Ve hangi gün olduğunu belirlemeniz gerekiyorsa, DayOfWeek() öğesini aramanız yeterlidir.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Canım, yardıma ihtiyacım var.
Muhasebe, açılış ve kapanış emirlerinin kodunu ders kitabından (tradingexpert.mq4) aldım. Kod, tek bir konumla çalışmak üzere tasarlanmıştır. Beş pozisyon olmalı.
Kodu biraz değiştirdikten sonra, pozisyonların gerekli miktarda açıldığı, ancak değiştirilirken sadece bir pozisyon kapatıldığı ve zıt pozisyonun hemen olduğu şekilde (değiştirilen satırlar koyu renkle vurgulanmıştır) yapıldığı ortaya çıktı. açıldı.
Bir geri dönüş sırasında tüm pozisyonların kapanması ve ardından sadece karşı pozisyonun açılması için nasıl yapılır?
Canım, yardıma ihtiyacım var.
Muhasebe, açılış ve kapanış emirlerinin kodunu ders kitabından (tradingexpert.mq4) aldım. Kod, tek bir konumla çalışmak üzere tasarlanmıştır. Beş pozisyon olmalı.
Kodu biraz değiştirdikten sonra, pozisyonların gerekli miktarda açıldığı, ancak değiştirilirken sadece bir pozisyon kapatıldığı ve zıt pozisyonun hemen olduğu şekilde (değiştirilen satırlar koyu renkle vurgulanmıştır) yapıldığı ortaya çıktı. açıldı.
Bir geri dönüş sırasında tüm pozisyonların kapanması ve ardından sadece karşı pozisyonun açılması için nasıl yapılır?
Kütüphanelerin kullanım düzeyine göre, yeni başlayanlarla ilişki kuramazsınız. Koduna baktım, çözmem için iki haftaya ihtiyacım var. Daha fazla değilse. Bu yüzden bir cevap alacağınızı sanmıyorum.
Sevgili, senden eleştirmeni değil, sadece yardım etmeni ve önermeni istiyorum. Ben havalı bir proger değilim, kod toplayıcıyım.Bu yüzden bir gösterge oluşturdum (bir dosya değil bir metin düzeni yapabileceğinizi görüyorum t-bunu daha kolay algılama için yapacağım-
Hafta boyunca noktaların toplamını ve bunların toplamlarının dinamiklerini gösterir - daha küçük zaman dilimlerinde, eğer Kapat[i+2]'den Kapat[i+1]'e önceki hareketi devam ettirirse, o zaman mevcut Kapat[i] hareketi artı, eğer buna karşıysa, eksidir. haftanın başlangıcı sıfırdan bir başlangıç sağlar - haftanın sonunda döngü biter. yeniden çizilmez. programın Cuma kapanışını görmesi için kavramın yerine bir şekilde reçete yazmak gerekiyor - barın kapanması - böylece DayOfWeek ve 5 sayısı (Cuma'nın numarası) kullanılarak yapılabileceğini anlıyorum, ancak bu nasıl olabilir? pratik olarak yapıldı mı? Yardım.
Vitya, burada hiçbir şey anlamanıza gerek yok - bir kişi bir "korumalı alandan" (kütüphaneleriyle EA) global değişkenlerin başka bir "korumalı alanda" (derlenmiş kitaplık) görünmesini istiyor. :)))
Igor, biraz yanlış! "Korumalı alanda" (derlenmiş kitaplık) yalnızca işlevler vardır ve tüm değişkenler dahil etmede bildirilir. Ve içerme dosyasında (dahil edilen dosya) bildirilen değişkenler baykuşta görünür olmalıdır, çünkü içermeyi doğrudan baykuşa ekledim. katılmıyor musun?
Sevgili, senden eleştirmeni değil, sadece yardım etmeni ve önermeni istiyorum. Ben havalı bir proger değilim, ama bir kod toplayıcıyım.Bu yüzden bir gösterge topladım (bir dosya değil bir metin düzeni yapabileceğinizi görüyorum t-bunu daha kolay algılama için yapacağım-
Hafta boyunca noktaların toplamını ve bunların toplamlarının dinamiklerini gösterir - daha küçük zaman dilimlerinde, eğer Kapat[i+2]'den Kapat[i+1]'e önceki hareketi devam ettirirse, o zaman mevcut Kapat[i] hareketi artı, eğer buna karşıysa, eksidir. haftanın başlangıcı sıfırdan bir başlangıç sağlar - haftanın sonunda döngü biter. yeniden çizilmez. programın Cuma kapanışını görmesi için kavramın yerine bir şekilde reçete yazmak gerekiyor - barın kapanması - böylece DayOfWeek ve 5 sayısı (Cuma'nın numarası) kullanılarak yapılabileceğini anlıyorum, ancak bu nasıl olabilir? pratik olarak yapıldı mı? Yardım.
Öyle mi yapacak?
Igor, biraz yanlış! "Korumalı alanda" (derlenmiş kitaplık) yalnızca işlevler vardır ve tüm değişkenler dahil etmede bildirilir. Ve içerme dosyasında (dahil edilen dosya) bildirilen değişkenler baykuşta görünür olmalıdır, çünkü içermeyi doğrudan baykuşa ekledim. katılmıyor musun?
Öyle mi yapacak?
Hayır, olmayacak. Açıklayacağım - forumunuz progerlerin son okuryazar kalesi için bir umut gibidir. ve bir boyut eklemek - bu yazım tam olarak böyle görüyor PERIOD_W1 ancak ne boyut kullanımı ne de tarih biçimindeki sabit referans noktalarının kullanımı istenen herhangi bir etkiye sahip değildir. bu yüzden belirli bir kavramı eklemek için belirli bir soru yazdım - Cuma günleri - bu arada, kodunuz derlenmiyor, 'sürüm' diyor - bilinmeyen özellik ( "sürüm" - bilinmeyen bir özellik) yani nasıl olduğunu bilmiyorsanız DayOfWeek ve 5 (Cuma numarası) sayılarını buna diğer seçenekleri verdiğim kodun eklenmesi yardımcı olmaz .
TimeDayOfWeek ( Time [i]), Time[i]'yi hiç belirtmez, ancak D'2014.01.27' biçiminde belirli bir tarihi belirtir.
Ve hangi gün olduğunu belirlemeniz gerekiyorsa, DayOfWeek () öğesini aramanız yeterlidir.
TimeDayOfWeek ( Time [i]), Time[i]'yi hiç belirtmez, ancak D'2014.01.27' biçiminde belirli bir tarihi belirtir.
Ve hangi gün olduğunu belirlemeniz gerekiyorsa, DayOfWeek () öğesini aramanız yeterlidir.