[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 291

 
Herkese teşekkürler! anladım.. İlk önce IndicatorBuffers(2) olmadan yaptım; ve çalışmadı..
 

Lütfen yardım edin, fraktalların dökümü için bir danışman var.İyi parametreler aldım ve bunu bir martingale lotu koymak için eklemeniz gerekiyor (kaybederseniz 2 tane daha) .İşte danışman:

//+------------------------------------------- --------------------+

//| Fraktallar.mq4 |

//| İÇİN |

//| http://www.forex-tradexperts-to.narod.ru |

//+------------------------------------------- --------------------+

# mülkiyet telif hakkı "TO"

#özellik bağlantısı "http://www.forex-tradexperts-to.narod.ru"





#include <WinUser32.mqh>


harici int TP_Fract_3=300;

harici int SL_Fract_3=200;

harici int TP_Fract_11=500;

harici int SL_Fract_11=300;

extern bool buy_Fract_3=true;

extern bool sell_Fract_3=true;

extern bool buy_Fract_11=true;

extern bool sell_Fract_11=true;

extern bool subtvergdenie=yanlış;

dış int tofrakt=10;

dış çift lot = 0.1;

harici int ID = 5452;


stringcom;

çift yayılma;


int init()

{

com=DoubleToStr(ID,0);

spread=MarketInfo(Symbol(),MODE_SPREAD)*Nokta;

dönüş(0);

}


int tanım()

{

dönüş(0);

}


tarihsaat t1,t2=0;


bool order(çift fiyat,int türü,dize c,int m)

{

int i;

for(i=SiparişlerToplam()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderComment()==c && OrderMagicNumber()==m && OrderOpenPrice()==price && OrderType()==type)return(false);

if(i==0)dönüş(doğru);

}

if(OrdersTotal()==0)dönüş(true);

}


int başlangıç()

{

int i,ret;

t1=Zaman[0];

if(t1!=t2)

{

int fract_buy_3=iEn Yüksek(Symbol(), Dönem(),MODE_HIGH,5,1);

int fract_sell_3=iLowest(Symbol(), Period(),MODE_LOW,5,1);

int fract_buy_11=iEn Yüksek(Symbol(), Dönem(),MODE_HIGH,21,1);

int fract_sell_11=iLowest(Symbol(), Period(),MODE_LOW,21,1);

if( fract_buy_3==3 && buy_Fract_3==doğru)

{

if(OrdersTotal()==0)if(order(High[fract_buy_3]+tofract*Point+spread,4,com,5))OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_3]+tofract*Point+ spread ,10,Yüksek[fract_buy_3]+tofract*Nokta-SL_Fract_3*Nokta,Yüksek[fract_buy_3]+tofract*Puan+spread+TP_Fract_3*Puan,com,5);

for(i=SiparişlerToplam()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderComment()==com && OrderMagicNumber()==5 && OrderType()==4)

{

OrderModify(OrderTicket(),Yüksek[fract_buy_3]+tofract*Point+spread, High[fract_buy_3]+tofract*Point-SL_Fract_3*Puan, Yüksek[fract_buy_3]+tofract*Point+spread+TP_Fract_3*Point,0,Mavi);

kırmak;

}

if(i==0)if(order(High[fract_buy_3]+tofract*Point+spread,4,com,5))

{

eğer(onay)

{

ret=MessageBox("+Symbol()+" için sinyal H1 SATIN AL DUR "+"\nSipariş ayarlansın mı?", "Sinyal", MB_YESNO|MB_ICONQUESTION);

if(ret==IDYES)OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_3]+tofract*Point+spread,10,High[fract_buy_3]+tofract*Point-SL_Fract_3*Point,Yüksek[fract_buy_3]+tofract* Nokta+spread+TP_Fract_3*Nokta,com,5);

}

if(!podtvergdenie)OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_3]+tofract*Point+spread,10,High[fract_buy_3]+tofract*Point-SL_Fract_3*Point,Yüksek[fract_buy_3]+yayılım* için +TP_Fract_3*Nokta,com,5);

}

}

}

if( fract_sell_3==3 && sell_Fract_3==doğru)

{

if(OrdersTotal()==0)if(order(Low[fract_sell_3]-tofract*Point,5,com,5))OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_3]-tofract*Point,10, Düşük[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Nokta,Düşük[fract_sell_3]-tofract*Point-TP_Fract_3*Nokta,com,5);

for(i=SiparişlerToplam()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderComment()==com && OrderMagicNumber()==5 && OrderType()==5)

{

OrderModify(OrderTicket(),Düşük[fract_sell_3]-tofract*Point,Düşük[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Point,Düşük[fract_sell_3]-tofract*Point-TP_Fract_3*Nokta,0,Red

kırmak;

}

if(i==0)if(sipariş(Düşük[fract_sell_3]-tofract*Point,5,com,5))

{

eğer(onay)

{

ret=MessageBox("+Symbol()+" sinyali H1 SELLSTOP "+"\nSipariş ayarlansın mı?", "Sinyal", MB_YESNO|MB_ICONQUESTION);

if(ret==IDYES)OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_3]-tofract*Point,10,Low[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Point,Düşük[fract_sell_3]-tofract Nokta-TP_Fract_3*Nokta,com,5);

}

if(!podtvergdenie)OrderSend(Symbol(),OP_SELLSTOP,lots,Düşük[fract_sell_3]-tofract*Point,10,Düşük[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Point,Düşük[fract_sell_3]-tofract TP_Fract_3*Nokta,com,5);

}

}

}

if( fract_buy_11==11 && buy_Fract_11==doğru)

{

if(OrdersTotal()==0)if(order(High[fract_buy_11]+tofract*Point+spread,4,com,21))OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_11]+tofract*Point+ spread ,10,Yüksek[fract_buy_11]+tofract*Nokta-SL_Fract_11*Nokta,Yüksek[fract_buy_11]+tofract*Puan+spread+TP_Fract_11*Nokta,com,21);

for(i=SiparişlerToplam()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderComment()==com && OrderMagicNumber()==21 && OrderType()==4)

{

OrderModify(OrderTicket(),Yüksek[fract_buy_11]+tofract*Point+spread, High[fract_buy_11]+tofract*Point-SL_Fract_11*Point, Yüksek[fract_buy_11]+tofract*Point+spread+TP_Fract_11*Point,0,Mavi);

kırmak;

}

if(i==0)if(order(High[fract_buy_11]+tofract*Point+spread,4,com,21))

{

eğer(onay)

{

ret=MessageBox("+Symbol()+" için sinyal H4 BUYSTOP "+"\nSipariş ayarlansın mı?", "Sinyal", MB_YESNO|MB_ICONQUESTION);

if(ret==IDYES)OrderSend(Symbol(),OP_BUYSTOP,lots,Yüksek[fract_buy_11]+tofract*Point+spread,10,Yüksek[fract_buy_11]+tofract*Point-SL_Fract_11*Point,Yüksek[fract_buy_11]+tofract* Nokta+spread+TP_Fract_11*Nokta,com,21);

}

if(!podtvergdenie)OrderSend(Symbol(),OP_BUYSTOP,lots,Yüksek[fract_buy_11]+tofract*Point+spread,10,Yüksek[fract_buy_11]+tofract*Point-SL_Fract_11*Point,Yüksek[fract_buy_11]+yayılım* için +TP_Fract_11*Nokta,com,21);

}

}

}

if( fract_sell_11==11 && sell_Fract_11==doğru)

{

if(OrdersTotal()==0)if(order(Low[fract_sell_11]-tofract*Point,5,com,21))OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_11]-tofract*Point,10, Düşük[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Nokta,Düşük[fract_sell_11]-tofract*Point-TP_Fract_11*Nokta,com,21);

for(i=SiparişlerToplam()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderComment()==com && OrderMagicNumber()==21 && OrderType()==5)

{

OrderModify(OrderTicket(),Düşük[fract_sell_11]-tofract*Point,Düşük[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Point,Düşük[fract_sell_11]-tofract*Point-TP_Fract_11*Nokta,0,Red

kırmak;

}

if(i==0)if(order(Low[fract_sell_11]-tofract*Point,5,com,21))

{

eğer(onay)

{

ret=MessageBox("+Symbol()+" için sinyal H4 BUYSTOP "+"\nSipariş ayarlansın mı?", "Sinyal", MB_YESNO|MB_ICONQUESTION);

if(ret==IDYES)OrderSend(Symbol(),OP_SELLSTOP,lots,Düşük[fract_sell_11]-tofract*Point,10,Low[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Point,Düşük[fract_sell_11]-tofract Nokta-TP_Fract_11*Nokta,com,21);

}

if(!podtvergdenie)OrderSend(Symbol(),OP_SELLSTOP,lots,Düşük[fract_sell_11]-tofract*Point,10,Düşük[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Point,Düşük[fract_sell_11]-tofract TP_Fract_11*Nokta,com,21);

}

}

}

t2=Zaman[0];

}

dönüş(0);

}

Rusça yazmakta kötüyüm, üzgünüm!

 
AppaRat :

Rusça yazmakta kötüyüm, üzgünüm!

Ayrıca kod yazmayı da bilmiyorsun. bu sayfayı okuma arzusu yok.
 

Klimov bloğuna kimin yardım edebileceğini söyle, sorun şu ki, son kapatılanın değerini değil, koşula göre son kapatılanın değerini döndürüyor.

2 koşul altında tobish

 bool BuystopLotA=isCloseLastPosByStop( NULL ,OP_BUY,MagBuy,LotA);
и
bool BuyTakeLotB=isCloseLastPosByTake( NULL ,OP_BUY,MagBuy,LotB);

aynı anda her iki değerde True döndürür,

koşula göre sonuncuyu değil, yalnızca son kapalı siparişi almasını nasıl sağlar,

işte kodun kendisi, rahatlığım için çok sayıda kontrol ekledim

 //+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по стопу.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByStop( string sy= "" , int op=- 1 , int mn=- 1 , int ll=- 1 ) {
   datetime t;
   double    ocp, osl;
   int       dg, i, j=- 1 , k=OrdersHistoryTotal();

   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
       if (OrderSymbol()==sy || sy== "" ) {
         if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
           if (op< 0 || OrderType()==op) {
             if (mn< 0 || OrderMagicNumber()==mn) {
             if (ll< 0 || OrderLots()==ll) {
               if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
} 
   if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
     if (dg== 0 ) if ( StringFind (OrderSymbol(), "JPY" )< 0 ) dg= 4 ; else dg= 2 ;
    ocp= NormalizeDouble (OrderClosePrice(), dg);
    osl= NormalizeDouble (OrderStopLoss(), dg);
     if (ocp==osl) return (True);
  }
   return (False);
}



//+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по тейку.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByTake( string sy= "" , int op=- 1 , int mn=- 1 , int ll=- 1 ) {
   datetime t;
   double    ocp, otp;
   int       dg, i, j=- 1 , k=OrdersHistoryTotal();

   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
       if (OrderSymbol()==sy || sy== "" ) {
         if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
           if (op< 0 || OrderType()==op) {
             if (mn< 0 || OrderMagicNumber()==mn) {
             if (ll< 0 || OrderLots()==ll) {
               if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
} 
   if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
     if (dg== 0 ) if ( StringFind (OrderSymbol(), "JPY" )< 0 ) dg= 4 ; else dg= 2 ;
    ocp= NormalizeDouble (OrderClosePrice(), dg);
    otp= NormalizeDouble (OrderTakeProfit(), dg);
     if (ocp==otp) return (True);
  }
   return (False);
}
 
FoxUA :

Klimov bloğuna kimin yardım edebileceğini söyle, sorun şu ki, son kapatılanın değerini değil, koşula göre son kapatılanın değerini döndürüyor.

2 koşul altında tobish

aynı anda her iki değerde True döndürür,

koşula göre sonuncuyu değil, yalnızca son kapalı siparişi almasını nasıl sağlar,

işte kodun kendisi, rahatlığım için çok sayıda kontrol ekledim


Parti kontrolünü fonksiyona kendiniz mi eklediniz? Şimdi transfer edilen lot ile son kapatılan pozisyonları kontrol ediyorlar ve lot muhtemelen her zaman sıfıra veya bir tam sayıya eşittir. ll değişkeni double türünde olmalıdır. Ve neden bir sürü çek var?

Neyi başarmak istediğini yazarsın ve sana söylerler :)

 

Evet ve neden lot bir int? Lot her zaman çift olmuştur.

Bunu yapabilirsiniz, bir siparişiniz kaldığında hangisinin kaldığını belirleyin ve tersini arayın.

 
FoxUA :

Klimov bloğuna kimin yardım edebileceğini söyle ...

İletileri farklı dallarda çoğaltmayın, bu kötü bir biçimdir.
 
artmedia70 :

Parti kontrolünü fonksiyona kendiniz mi eklediniz? Şimdi transfer edilen lot ile son kapatılan pozisyonları kontrol ediyorlar ve lot muhtemelen her zaman sıfıra veya bir tam sayıya eşittir. ll değişkeni double türünde olmalıdır. Ve neden bir sürü çek var?

Neyi başarmak istediğini yazarsın ve sana söylerler :)

evet, özellikle ne elde etmek istediğimi yazdım, daha doğrusu, zaten her şeyi başardım, ancak 1 hata var, belirli bir anda gereksiz bir sipariş çıkıyor,

double yerine int, aslında double idi, ama neden değiştirdim ve gördüm, iade etmeyi unuttum ve hatta kura kontrol etmeden, işlevi ayrı ayrı kullanırsanız sonuç değişmez, yani belki de yapmadım Tuval kontrolünü buraya doğru bir şekilde dahil et, tek kelimeyle, bir hatadan daha fazlasını çözmeme yardım et

istekler böyle görünüyor

вот так работает без проблем 
bool BuystopLotA=isCloseLastPosByStop( NULL ,OP_BUY,MagBuy,LotA);
bool BuyTakeLotA=isCloseLastPosByTake( NULL ,OP_BUY,MagBuy,LotA);
bool SellstopLotC=isCloseLastPosByStop( NULL ,OP_SELL,MagBuy,LotC);
bool SellTakeLotC=isCloseLastPosByTake( NULL ,OP_SELL,MagBuy,LotC);

при добовлении вот этих запросов
bool BuystopLotB=isCloseLastPosByStop( NULL ,OP_BUY,MagBuy,LotB);
bool BuyTakeLotB=isCloseLastPosByTake( NULL ,OP_BUY,MagBuy,LotB);

начинает возвращять True не по одному а по двум запросам 
BuyTakeLotB и BuystopLotA



 
Roger :

Evet ve neden lot bir int? Lot her zaman çift olmuştur.

Bunu yapabilirsiniz, bir siparişiniz kaldığında hangisinin kaldığını belirleyin ve tersini arayın.


her şey o kadar basit değil çünkü tobish açmanın şartları değişiyor satarak 2 olabilir o zaman bu arama hiçbir şey bulamaz
 
granit77 :
İletileri farklı dallarda çoğaltmayın, bu kötü bir biçimdir.

Özür dilerim, aynı gönderileri farklı konulardan silmeyi unutmamaya çalışacağım,