Makar - Sunucuya eziyet etmekten ve danışman J'yi yasaklamaktan kaçınmak için hangi kontrollerin yapılması gerektiğini önerdiğiniz için çok teşekkür ederiz.
kontrolleri bu şekilde yaptım
durdurmak için moda durdurma seviyesi
//ПРОВЕРКА НА МОДЕ СТОП ЛЕВЕЛ- МИНИМАЛЬНЫЙ УРОВЕНЬ СТОПА if (sl<MarketInfo( Symbol (),MODE_STOPLEVEL)) // ЕСЛИ СТОПОЛС МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
sl= MarketInfo( Symbol (),MODE_STOPLEVEL); //СТОП ЛОССУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
kar için moda durdurma seviyesi
// ПРОВЕРКА ТЕЙК ПРОФИТА НА МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ УСТАНОВКИif (tp<MarketInfo( Symbol (),MODE_STOPLEVEL)) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp= MarketInfo( Symbol (),MODE_STOPLEVEL); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
//---- ПРОВЕРКА НА РАЗРЕШЕНИЕ ТОРГОВ ПЕРЕД ОТКРЫТИЕМ ОРДЕРОВif (MarketInfo( Symbol (),MODE_TRADEALLOWED)== true )
{ // начало есл торговля разрешена/*
куча проверок на условия открытия и само открытие ордеров
*/
} // КОЕНЦ ПРОВЕРКИ НА РАЗРЕШЕНИЕ ТОРГОВЛИelse//ИНАЧЕ ЕСЛИ ТОРГОВЛЯ НЕ РАЗРЕШЕНА
{ // НАЧАЛО ЭЛС ЕСЛИ ТОРГИ НЕ РАЗРЕШЕНЫ Print ( "ТОРГИ НЕ РАЗРЕШЕНЫ- ПЫТАТЬСЯ ОТКРЫТЬ ОРДЕРА НЕ БУДЕМ" );
} // КОЕНЦ ЭЛС ЕСЛИ ТОРГИ НЕ РАЗРЕШЕНЫ
Maksimum ve minimum lot kontrolü
İlk olarak, bunun gibi değişkenlerde max lot ve min lot değerini aldım.
double Min_Lot =MarketInfo( Symbol (),MODE_MINLOT); // МИНИМАЛЬНЫЙ ЛОТ РАЗРЕШЁННЫЙ БРОКЕРОМdouble Max_Lot =MarketInfo( Symbol (),MODE_MAXLOT); // МАКСИМАЛЬНЫЙ ЛОТ РАЗРЕШЁННЫЙ БРОКЕРОМ
Ve sonra, Kâse yazarken aşağı doğru bir yerde bir kontrol yaparım.
if (lot<Min_Lot) lot=Min_Lot; //ЕСЛИ ЛОТ ПОЛУЧИЛСЯ МЕНЬШЕ ЧЕМ МИНИМАЛЬНЫЙ ЛОТ У БРОКЕРА ТО ЛОТ ПРИСВАЕМАЕМ МИНИМАЛЬНЫЙ ЛОТ У БРОКЕРАif (lot>Max_Lot) lot=Max_Lot; //ЕСЛИ ЛОТ ПОЛУЧИЛСЯ БОЛЬШЕ ЧЕМ МАКСИМАЛЬНЫЙ ЛОТ У БРОКЕРА ТО ОЛТ ПРИСВАЕВАЕМ МАКС ЛОТ У БРОКЕРА
Bu çekleri kaydettiğim veya bir yerde hata yaptığım doğru mu?
Parti değiştirme adımını kontrol etmedim, çünkü lot depozito yüzdesi olarak hesaplanır ve orada bu değer nokta ile çarpılır ve normalleştirilir - yani bu kontrol atlanabilir - doğru mu, yoksa hala mı? kontrol etmek gerekiyor mu? Hala kontrol etmeniz gerekiyorsa, bu çek nasıl yazılır?
Ve tüm bu kontrollerin özü, her zaman stop, kar, lot büyüklüğünün doğru değerine sahip olmaktır ve böylece prensipte, emirleri açmaya başlayabilirsiniz. Tüm bu parametreler iyiyse, danışman sunucuya tecavüz etmeyecek - tüm bu mutfağı doğru anlıyor muyum?
Makar - Sunucuya eziyet etmekten ve danışman J'yi yasaklamaktan kaçınmak için hangi kontrollerin yapılması gerektiğini önerdiğiniz için çok teşekkür ederiz.
//ПРОВЕРКА НА МОДЕ СТОП ЛЕВЕЛ- МИНИМАЛЬНЫЙ УРОВЕНЬ СТОПА
// ПРОВЕРКА ТЕЙК ПРОФИТА НА МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ УСТАНОВКИ
//ПРОВЕРКА НА МОДЕ СТОП ЛЕВЕЛ- МИНИМАЛЬНЫЙ УРОВЕНЬ СТОПА if (sl<MarketInfo( Symbol (),MODE_STOPLEVEL) *1.5 ) // ЕСЛИ СТОПОЛС МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
sl= MarketInfo( Symbol (),MODE_STOPLEVEL) *1.5 ; //СТОП ЛОССУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
// ПРОВЕРКА ТЕЙК ПРОФИТА НА МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ УСТАНОВКИif (tp<MarketInfo( Symbol (),MODE_STOPLEVEL) *1.5 ) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp= MarketInfo( Symbol (),MODE_STOPLEVEL) *1.5 ; // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
Herkese merhaba! iHighest/iLowest aracılığıyla bulunan bir çizelgede sarkan noktalarla ilgili bir sorunu olan var mı?
Arka plan: programlama deneyimi minimumdur, mql4'te, koşullar tarafından bulunan grafikte noktaları göstermesi ve bunları çizgilerle birleştirmesi gereken bir gösterge yazıyorum. Mantıksal olarak, noktaları doğru arar, ancak onları ofsetlerle, sonra 2 çubukla, sonra 3 çubukla çizer. Nasıl başa çıkılır bununla? Kod dosyasını da ekledim.
int start()
{
int counted_bars=IndicatorCounted(); //хранит количество посчитанных индикатором баров. Функция IndicatorCounted() возвращает количество неизмененных баров после прошлого вызова функции start().int n,limit;
int val_index;
if (counted_bars> 0 )
counted_bars--;
limit= Bars -counted_bars; //количество последних баров, которые нужно пересчитать.if (limit>barsToProcess)
limit=barsToProcess;
for (n= 0 ; n<=limit; n++)
{
if ((Close[n+ 1 ]>Open[n+ 1 ] && Open[n+ 2 ]>=Close[n+ 2 ]) || (Close[n+ 1 ]>Open[n+ 1 ] && Open[n+ 3 ]>Close[n+ 3 ]))
{
val_index= iLowest ( NULL , 0 , MODE_LOW , 3 ,n+ 1 );
myAZBuffer[n]=Low[val_index];
ExtLowBuffer[n]=Low[val_index];
}
elseif ((Open[n+ 1 ]>Close[n+ 1 ] && Close[n+ 2 ]>=Open[n+ 2 ]) || (Close[n+ 1 ]<Open[n+ 1 ] && Close[n+ 3 ]>Open[n+ 3 ]))
{
val_index= iHighest ( NULL , 0 , MODE_HIGH , 3 ,n+ 1 );
myAZBuffer[n]=High[val_index];
ExtHighBuffer[n]=High[val_index];
}
}
return ( 0 );
}
Herkese merhaba! iHighest/iLowest aracılığıyla bulunan bir çizelgede sarkan noktalarla ilgili bir sorunu olan var mı?
Arka plan: programlama deneyimi minimumdur, mql4'te, koşullar tarafından bulunan grafikte noktaları göstermesi ve bunları çizgilerle birleştirmesi gereken bir gösterge yazıyorum. Mantıksal olarak, noktaları doğru arar, ancak onları ofsetlerle, sonra 2 çubukla, sonra 3 çubukla çizer. Nasıl başa çıkılır bununla? Kod dosyasını da ekledim.
noktalar ofset olmadan doğru şekilde çizilir
koşul karşılanırsa ve iYüksek /Düşük değeri mevcut Yüksek/Düşük değerinden büyük veya küçükse
koşul karşılanırsa ve iYüksek/Düşük, mevcut Yüksek/Düşük değerinden büyük veya küçükse
sonra çizer
yani, hatamı anlamaya başlıyorum) Görünüşe göre bu noktaları doğru yerde görsel olarak görüntülemek için myAZBuffer[n], ExtLowBuffer[n] için n yerine bir çeşit ayrı sayaç girmem gerekiyor. , ExtHighBuffer[n] ? ama bunu nasıl
azolotta : yani, hatamı anlamaya başlıyorum) Görünüşe göre bu noktaları doğru yerde görsel olarak görüntülemek için myAZBuffer[n], ExtLowBuffer[n] için n yerine bir çeşit ayrı sayaç girmem gerekiyor. , ExtHighBuffer[n] ? ama bunu nasıl
hayır doğru anladın
koşul, geçmişten iki veya üç çubuk kullanır,
bu nedenle koşul karşılandığında 2-3 çubuktan sonra çeker
bu nedenle koşul karşılandığında 2-3 çubuktan sonra çeker
tamam, ama o zaman, örneğin, son 3 çubuktan (if içindeki koşulları karşılayan) en yüksek tepeyi seçip üzerine bir nokta koymam gerekirse (tam bu yükseklikte!), sonra da kodu nasıl yeniden işleyebilirim? düşük noktayı bulun.
MakarFX, ancak bu paket: hangi işlevi yerine getiriyor?
giriş int BarTrade = 5; // Bunun izlenen dönem sayısı olduğunu anlıyorum, bunlardan 5 tane var.
int TimeBarTrade=BarTrade*Period()*60; // ve burada nasıl anlaşılır? Neden 60 ile çarpılıyor?
MakarFX, ancak bu paket: hangi işlevi yerine getiriyor?
giriş int BarTrade = 5; // Bunun izlenen dönem sayısı olduğunu anlıyorum, bunlardan 5 tane var.
int TimeBarTrade=BarTrade*Period()*60; // ve burada nasıl anlaşılır? Neden 60 ile çarpılıyor?
BarTrade*Dönem()*60
çubuk sayısı * mevcut zaman dilimi * 60 saniye
onlar. çubuk sayısı saniyeye dönüştürülür
BarTrade*Dönem()*60
çubuk sayısı * mevcut zaman dilimi * 60 saniye
onlar. çubuk sayısı saniyeye dönüştürülür
Öyle olabilir.
ile ilgili hatalar dışında
MODE_STOPLEVEL, MODE_TRADEALLOWED, MODE_MINLOT , MODE_LOTSTEP , MODE_MAXLOT
o zaman baykuşlar sunucuyu çekiçlemeyecek
Makar - Sunucuya eziyet etmekten ve danışman J'yi yasaklamaktan kaçınmak için hangi kontrollerin yapılması gerektiğini önerdiğiniz için çok teşekkür ederiz.
kontrolleri bu şekilde yaptım
durdurmak için moda durdurma seviyesi
kar için moda durdurma seviyesi
Ticaret izni kontrol ediliyor
Maksimum ve minimum lot kontrolü
İlk olarak, bunun gibi değişkenlerde max lot ve min lot değerini aldım.
Ve sonra, Kâse yazarken aşağı doğru bir yerde bir kontrol yaparım.
Bu çekleri kaydettiğim veya bir yerde hata yaptığım doğru mu?
Parti değiştirme adımını kontrol etmedim, çünkü lot depozito yüzdesi olarak hesaplanır ve orada bu değer nokta ile çarpılır ve normalleştirilir - yani bu kontrol atlanabilir - doğru mu, yoksa hala mı? kontrol etmek gerekiyor mu? Hala kontrol etmeniz gerekiyorsa, bu çek nasıl yazılır?
Ve tüm bu kontrollerin özü, her zaman stop, kar, lot büyüklüğünün doğru değerine sahip olmaktır ve böylece prensipte, emirleri açmaya başlayabilirsiniz. Tüm bu parametreler iyiyse, danışman sunucuya tecavüz etmeyecek - tüm bu mutfağı doğru anlıyor muyum?
Makar - Sunucuya eziyet etmekten ve danışman J'yi yasaklamaktan kaçınmak için hangi kontrollerin yapılması gerektiğini önerdiğiniz için çok teşekkür ederiz.
//ПРОВЕРКА НА МОДЕ СТОП ЛЕВЕЛ- МИНИМАЛЬНЫЙ УРОВЕНЬ СТОПА// ПРОВЕРКА ТЕЙК ПРОФИТА НА МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ УСТАНОВКИBurada kayma nedeniyle 130 hatası oluşabilir .
yapardım
Herkese merhaba! iHighest/iLowest aracılığıyla bulunan bir çizelgede sarkan noktalarla ilgili bir sorunu olan var mı?
Arka plan: programlama deneyimi minimumdur, mql4'te, koşullar tarafından bulunan grafikte noktaları göstermesi ve bunları çizgilerle birleştirmesi gereken bir gösterge yazıyorum. Mantıksal olarak, noktaları doğru arar, ancak onları ofsetlerle, sonra 2 çubukla, sonra 3 çubukla çizer. Nasıl başa çıkılır bununla? Kod dosyasını da ekledim.
Herkese merhaba! iHighest/iLowest aracılığıyla bulunan bir çizelgede sarkan noktalarla ilgili bir sorunu olan var mı?
Arka plan: programlama deneyimi minimumdur, mql4'te, koşullar tarafından bulunan grafikte noktaları göstermesi ve bunları çizgilerle birleştirmesi gereken bir gösterge yazıyorum. Mantıksal olarak, noktaları doğru arar, ancak onları ofsetlerle, sonra 2 çubukla, sonra 3 çubukla çizer. Nasıl başa çıkılır bununla? Kod dosyasını da ekledim.
noktalar ofset olmadan doğru şekilde çizilir
koşul karşılanırsa ve iYüksek /Düşük değeri mevcut Yüksek/Düşük değerinden büyük veya küçükse
sonra çizer
noktalar ofset olmadan doğru şekilde çizilir
koşul karşılanırsa ve iYüksek/Düşük, mevcut Yüksek/Düşük değerinden büyük veya küçükse
sonra çizer
yani, hatamı anlamaya başlıyorum) Görünüşe göre bu noktaları doğru yerde görsel olarak görüntülemek için myAZBuffer[n], ExtLowBuffer[n] için n yerine bir çeşit ayrı sayaç girmem gerekiyor. , ExtHighBuffer[n] ? ama bunu nasıl
hayır doğru anladın
koşul, geçmişten iki veya üç çubuk kullanır,
bu nedenle koşul karşılandığında 2-3 çubuktan sonra çeker
hayır doğru anladın
koşul, geçmişten iki veya üç çubuk kullanır,
bu nedenle koşul karşılandığında 2-3 çubuktan sonra çeker