Beyler, yardıma ihtiyacım var, birkaç gün boyunca aşağıdaki kodda gerekli değişiklikleri yapamıyorum:
void start()
{
StopLevel = MarketInfo( Symbol (), MODE_STOPLEVEL);
// Определение направления пересечения мувинговif (Init) InitMetod();
// Трейлинг стоп открытых позицийif (Trailing != 0 ) RealTrailOrder(TrailStop, TrailStep, StopLevel, MagicNumber);
// Ожидание нового бара на графикеif (timeprev == Time[ 0 ]) return ;
timeprev = Time[ 0 ];
// Открытие ордера по методу Пуриа
CheckForOpen();
}
//+------------------------------------------------------------------+//| Check for open order conditions |//+------------------------------------------------------------------+void CheckForOpen() // Открытие ордера по методу Пуриа
{
double malw,mas1,mas2,macd;
int res;
// Считывание параметров индикаторов
malw= iMA ( NULL , 0 ,MovingPeriodLw, 0 , MODE_EMA , PRICE_CLOSE , 0 );
mas1= iMA ( NULL , 0 ,MovingPeriodS1, 0 , MODE_LWMA , PRICE_LOW , 0 );
mas2= iMA ( NULL , 0 ,MovingPeriodS2, 0 , MODE_LWMA , PRICE_LOW , 0 );
macd= iMACD ( NULL , 0 , 15 , 26 , 1 , PRICE_CLOSE ,MODE_MAIN, 0 );
// Проверяем положение мувмнговif (malw>mas1 && malw>mas2 && OrderSell)
{
OrderBuy= true ;
OrderSell= false ;
Order= true ;
}
if (malw<mas1 && malw<mas2 && OrderBuy)
{
OrderBuy= false ;
OrderSell= true ;
Order= true ;
}
// Открываем ордер Buyif (macd> 0 && OrderBuy && Order)
{
res= OrderSend ( Symbol (),OP_BUY,Lots(),Ask,Slip,Bid-StopLoss* Point ,Ask+TakeProfit* Point , "" ,MagicNumber, 0 ,Blue);
Order= false ;
return ;
}
// Открываем ордер Sell if (macd< 0 && OrderSell && Order)
{
res= OrderSend ( Symbol (),OP_SELL,Lots(),Bid,Slip,Ask+StopLoss* Point ,Bid-TakeProfit* Point , "" ,MagicNumber, 0 ,Red);
Order= false ;
return ;
}
}
//+------------------------------------------------------------------+//| Calculate optimal lot size |//+------------------------------------------------------------------+double Lots() // Расчет объема лота
{
double Lots;
if (Lot > 0 ) return (Lot);
Lots=AccountFreeMargin()/ 5000 ;
Lots= MathMin ( 15 , MathMax ( 0.01 ,Lots));
if (Lots< 0.1 ) Lots= NormalizeDouble (Lots, 2 );
else
{
if (Lots< 1 ) Lots= NormalizeDouble (Lots, 1 );
else Lots= NormalizeDouble (Lots, 0 );
}
return (Lots);
}
//+------------------------------------------------------------------+//| Init metod Puria function |//+------------------------------------------------------------------+void InitMetod() // Опредеоение начального пересечения мувингов
{
double malw,mas1,mas2;
malw= iMA ( NULL , 0 ,MovingPeriodLw, 0 , MODE_EMA , PRICE_CLOSE , 0 );
mas1= iMA ( NULL , 0 ,MovingPeriodS1, 0 , MODE_LWMA , PRICE_LOW , 0 );
mas2= iMA ( NULL , 0 ,MovingPeriodS2, 0 , MODE_LWMA , PRICE_LOW , 0 );
if ((malw<=mas1 && malw>=mas2) || (malw>=mas1 && malw<=mas2))
{
Init= false ;
OrderBuy= true ;
OrderSell= true ;
}
return;
}
Aslında, denediğim ama buraya ekleyemediğim şey: göstergeler için tüm koşullar eşleştikten sonra (mumların açılış fiyatlarında ), danışman mumların 4 açılış fiyatını arka arkaya bekleyecek şekilde yapın :
1. 1. mumun açılış fiyatı - (5) (75) ve (85) üstü + MACD çubuğu 0'ın üzerinde açıldı - 4 teyitten 1'i var ; 2. 2. mumun açılış fiyatı - (5) (75) ve (85) + 0 üzerinde açılan MACD çubuğu - 4 onaydan 2'si ; 3. 3. mumun açılış fiyatı - (5) (75) ve (85) + 0 üzerinde açılan MACD çubuğu - 4 onaydan 3'ü ; 4. 4. mumun açılış fiyatı - (5) (75) ve (85) + 0 üzerinde açılan MACD çubuğu - 4 onaydan 4'ü - Aynı mumu satın almak için bir anlaşma açmak (4.).
Siparişler için benzer bir durum sat , sadece göstergeler diğer yönde açılmalıdır. Ve önemli bir nokta var - diyelim ki, 1. mumdan 4. muma kadar herhangi bir aşamada, göstergeler konumlarını değiştirecek (örneğin, 3. açılış mumunda, MACD çubuğu ya 0'ın altında ya da = 0'ın altında açılacaktır - o zaman her şey sıfırlanır çünkü. sinyaller arka arkaya 4 mum açma testini geçemedi .
Söyleyin bana pliz, deneyimli programcılar, bu koşulların karşılanması için kodda nelerin değiştirilmesi gerekiyor? Sonra bir çok şey denedim ve genel olarak xs ...
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.
Bir testçi için
OrderSendhızlı sunucularda gidecek ve hatta çalışacak, ancak bir testçi değilse, belgelere göre yapmak daha iyidir :)
Aslında, denediğim ama buraya ekleyemediğim şey: göstergeler için tüm koşullar eşleştikten sonra (mumların açılış fiyatlarında ), danışman mumların 4 açılış fiyatını arka arkaya bekleyecek şekilde yapın :
1. 1. mumun açılış fiyatı - (5) (75) ve (85) üstü + MACD çubuğu 0'ın üzerinde açıldı - 4 teyitten 1'i var ;
2. 2. mumun açılış fiyatı - (5) (75) ve (85) + 0 üzerinde açılan MACD çubuğu - 4 onaydan 2'si ;
3. 3. mumun açılış fiyatı - (5) (75) ve (85) + 0 üzerinde açılan MACD çubuğu - 4 onaydan 3'ü ;
4. 4. mumun açılış fiyatı - (5) (75) ve (85) + 0 üzerinde açılan MACD çubuğu - 4 onaydan 4'ü - Aynı mumu satın almak için bir anlaşma açmak (4.).
Siparişler için benzer bir durum sat , sadece göstergeler diğer yönde açılmalıdır. Ve önemli bir nokta var - diyelim ki, 1. mumdan 4. muma kadar herhangi bir aşamada, göstergeler konumlarını değiştirecek (örneğin, 3. açılış mumunda, MACD çubuğu ya 0'ın altında ya da = 0'ın altında açılacaktır - o zaman her şey sıfırlanır çünkü. sinyaller arka arkaya 4 mum açma testini geçemedi .
Söyleyin bana pliz, deneyimli programcılar, bu koşulların karşılanması için kodda nelerin değiştirilmesi gerekiyor? Sonra bir çok şey denedim ve genel olarak xs ...
if (malw>mas1 && malw>mas2 && OrderSell)Söylediği gibi, bunu yüz değerinde almayın.
OrderSellxs içinde ne olabilir, koddaki karar verme mantığını ayırın.
artem artem # :
1. 1. mumun açılış fiyatı - (5) (75) ve (85) üstü + MACD çubuğu 0'ın üzerinde açıldı - 4 teyitten 1'i var ;
2. 2. mumun açılış fiyatı - (5) (75) ve (85) + 0 üzerinde açılan MACD çubuğu - 4 onaydan 2'si ;
3. 3. mumun açılış fiyatı - (5) (75) ve (85) + 0 üzerinde açılan MACD çubuğu - 4 onaydan 3'ü ;
4. 4. mumun açılış fiyatı - (5) (75) ve (85) + 0 üzerinde açılan MACD çubuğu - 4 onaydan 4'ü - Aynı mumu satın almak için bir anlaşma açmak (4.).
Çekiçler bir değer - başka bir şey, hiçbir şey? Birinci blok = çözüm, ikinci blok = çözüm bölün, blokları karşılaştırın.
Çekiçler bir değer - başka bir şey, hiçbir şey? Birinci blok = çözüm, ikinci blok = çözüm bölün, blokları karşılaştırın.
Kodda mantıksal bir hata olduğu ortaya çıktı ve işte gidiyor.
tamam, ama eğer onları böyle kullanırsan değişkenler çökecek ve o zaman “mucizelerin” ne olduğunu anlamayacaksın.
tamam, ama eğer onları böyle kullanırsan değişkenler çökecek ve o zaman “mucizelerin” ne olduğunu anlamayacaksın.
Başka bir seçenek biliyorsanız, yazın ...
İnsanlara yardımcı ol)