[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 594

 

Genel olarak, Olasılık Teorisinden geçtim ve istatistiklere göre, bekleyen emirler fiyattan 50 puanlık bir yarıçap içindeyse, o zaman 10 puanlık bir kârla bir emir açarken ulaşmak daha kolay - eğer varsa ayrıca 10 puanlık bir stop loss (yayılma bile engel değil), trendin hareketi harika bir şey...

StepStop'tan bağımsız olarak durdurma kaybı ekleyin

//+------------------------------------------- --------------------+
//| Volfram.mq4 |
//| Vova-x@list.ru |
//| |
//+------------------------------------------- --------------------+
#özellik telif hakkı "Vova-x@list.ru"
#özellik bağlantısı ""
//--------------------------------------------
harici int TakeProfit=10;
harici int StepStop=45;
dış çift Lot=0.01;
extern bool MoneyManagement=true;
extern int MarjYüzdesi=10;
//----------------------------------------------------------
int seviye_sell_stop;
int seviye_buy_stop;

//------------------------------------------------ ----------
geçersiz başlangıç()
{
// int minstop=MarketInfo(Symbol(),MODE_STOPLEVEL);
//Print("Durma seviyesi: "+minstop);
}
//------------------------------------------------ -----------
geçersiz başlangıç()
{
if (!IsTradeAllowed()) dönüşü;
level_buy_stop=0;
level_sell_stop=0;
SteppingStop();
SteppingPendings();
if (TotalBuy()==0 && TotalBuyStop()==0) SetBuyStop();
if (TotalSell()==0 && TotalSellStop()==0) SetSellStop();
Comment("Seviye Satın Alma Durdurma=",level_buy_stop*Puan,
"\n","Seviye Satış Durdur=",level_sell_stop*Puan);
}
//------------------------------------------------ -------------------------------------------------- --
voidAdım Durdur()
{
(StepStop<1) dönerse;
int sor, teklif ver, aç, durdur, x;
çifte kayıp;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderSymbol()!=Symbol())
if (OrderType()==OP_BUY)
{
teklif=MathRound(Teklif/Puan);
open=MathRound(OrderOpenPrice()/Nokta);
stop=MathRound(OrderStopLoss()/Nokta);
x=(teklif açma)/StepStop; x--; x*=Adım Durdur;
level_sell_stop=open+x;
if (dur>=aç+x)
kayıp=(açık+x)*Puan;
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE);
}
if (OrderType()==OP_SEL)
{
ask=MathRound(Sor/Puan);
open=MathRound(OrderOpenPrice()/Nokta);
stop=MathRound(OrderStopLoss()/Nokta);
x=(açık-sor)/StepStop; x--; x*=Adım Durdur;
level_buy_stop=open-x;
if (dur>0 && dur<=açık-x)
kayıp=(açık-x)*Puan;
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE);
}
}
}
//------------------------------------------------ ----------------------------
void SteppingPendings()
{
int sor, teklif ver, aç;
çifte fiyat, zarar, kâr;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderSymbol()!=Symbol())
if (OrderType()==OP_BUYSTOP)
{
if (level_buy_stop==0)
open=MathRound(OrderOpenPrice()/Nokta);
if (aç<=level_buy_stop)
fiyat=level_buy_stop*Puan;
kayıp=fiyat-StepStop*Nokta;
kar=0; if (Kar Al>0) kar=fiyat+Kar Al*Puan;
OrderModify(OrderTicket(),fiyat,zarar,kâr,0,CLR_NONE);
}
if (OrderType()==OP_SELLSTOP)
{
if (level_sell_stop==0)
open=MathRound(OrderOpenPrice()/Nokta);
if (open>=level_sell_stop)
fiyat=level_sell_stop*Nokta;
kayıp=fiyat+StepStop*Nokta;
kar=0; if (Kar Al>0) kar=fiyat-AlKar*Puan;
OrderModify(OrderTicket(),fiyat,zarar,kâr,0,CLR_NONE);
}
}
}
//------------------------------------------------ --------------------
geçersiz SetBuyStop()
{
double lot=LotsCounting();
çift fiyat=Teklif+Adım Durdur*Puan;
çift kayıp=fiyat-StepStop*Puan;
çift kar=0; if (Kar Al>0) kar=fiyat+Kar Al*Puan;
int bilet=OrderSend(Symbol(),OP_BUYSTOP,lot,fiyat,0,zarar,kâr,"",0,0,CLR_NONE);
if (ticket<1) Print("Bekleyen bir sipariş oluşturma # hatasıyla başarısız oldu",GetLastError()," ",(GetLastError()));
}

geçersiz SetSellStop()
{
double lot=LotsCounting();
çift fiyat=Sor-StepStop*Puan;
çift kayıp=fiyat+StepStop*Nokta;
çift kar=0; if (Kar Al>0) kar=fiyat-AlKar*Puan;
int bilet=OrderSend(Symbol(),OP_SELLSTOP,lot,fiyat,0, zarar,kâr,"",0,0,CLR_NONE);
if (ticket<1) Print("Bekleyen bir sipariş oluşturma # hatasıyla başarısız oldu",GetLastError()," ",(GetLastError()));
}


int ToplamSatın Al()
{
int sayı=0;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
(OrderSymbol()!=Symbol()) devam ederse;
if (OrderType()==OP_BUY) count++;
}
dönüş(sayım);
}

int ToplamBuyStop()
{
int sayı=0;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
(OrderSymbol()!=Symbol()) devam ederse;
if (OrderType()==OP_BUYSTOP) count++;
}
dönüş(sayım);
}

int ToplamSatış()
{
int sayı=0;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
(OrderSymbol()!=Symbol()) devam ederse;
if (OrderType()==OP_SELL) count++;
}
dönüş(sayım);
}

int ToplamSellStop()
{
int sayı=0;
(int i=0; i<SiparişToplam(); i++) için
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
(OrderSymbol()!=Symbol()) devam ederse;
if (OrderType()==OP_SELLSTOP) count++;
}
dönüş(sayım);
}

çift LotSayma()
{
çift lot = lot;
if (Para Yönetimi)
{
double lotsize=MarketInfo(Symbol(),MODE_LOTSIZE);
double freemargin=HesapFreeMargin();
lot=0; if (lotsize>0) lot=NormalizeDouble((MarginPercent*freemargin/lotsize),1);
}
if (lot>10) lot=NormalizeDouble(lot,0);
if (lot<0.01) lot=0.01;
dönüş(lot);
}


// son

 
drknn :

Cevap vermediler, çünkü muhtemelen böyle bir gösterge yazmak basit bir şey ve büyük olasılıkla kimsenin buna ihtiyacı yok.
Teşekkür ederim ama yine de? Veya söyle bana, belki terminal ayarlarında , zaman ölçeğinin tüm uzunluğu boyunca saat işaretlerini daha net göstermek mümkün müdür?
 

İnsanlar, yardım edin! Açılan işlemin mümkün olan maksimum hacmi hesaplanamıyor

 // Расчет максимального объема
   for ( double m = 0.1 ; AccountFreeMarginCheck( Symbol (),OP_SELL,m)> 30 ; m = m + 0.1 )
      {
       Max_lots   = m;
       double Ost = AccountFreeMarginCheck( Symbol (),OP_SELL,m);
      }

Max_lots her zaman sıfırdır!


Ve ikinci soru, LEVEL nasıl hesaplanır?


 
root :
Teşekkür ederim ama yine de? Veya söyle bana, belki terminal ayarlarında, zaman ölçeğinin tüm uzunluğu boyunca saat işaretlerini daha net gösterme fırsatı var mı?
Bu göstergenin olmamasının Forex'te para kazanmanızı engelleyen son şey olduğunu anladım. Tam olarak böyle bir şey yok ama Urain'de 8 satırlık bir benzeri var. Yeniden yapın, ancak yazarla iletişime geçemezsiniz, o forumda.
Dosyalar:
time_line.mq4  2 kb
 

basit hacim bu şekilde hesaplanabilir

 /* вычитаем средства обозначенные на стопаут c учетом процента риска */
   curBalance = AccountFreeMargin() * ( 1 - AccountStopoutLevel() / 100 .) * percent; // percent - от 0 до 100
/* множитель (1 или 10) зависит от четырех-пятизначности  */
   koeff = iif(DIGITS == 3 || DIGITS == 5 , 10 , 1 );
/* расчет рабочего лота, нормализация */
   lot = NL(curBalance / (koeff * lossPoint * TICKVALUE + MARGINREQUIRED)); //lossPoint - количество пунктов потерь
   if (lot < MINLOT)    lot = 0 ;
   if (lot > MAXLOT)    lot = MAXLOT;

/* DIGITS,MINLOT,MAXLOT,TICKVALUE,MARGINREQUIRED получаем из Marketinfo() */


ve seviye = AccountEquity() / AccountFreeMargin() * 100;

 
keekkenen :



ve seviye = AccountEquity() / AccountFreeMargin() * 100;

Yanlış. Bu formülle Düzey çalışmıyor
 
Noterday :
Yanlış. Bu formülle Düzey çalışmıyor

evet, bir hata yaptım, level = AccountEquity() / AccountMargin () * 100;

 
keekkenen :

evet, bir hata yaptım, level = AccountEquity() / AccountMargin () * 100;

Teşekkürler :)
 
Merhaba. Beyler bir saçmalığa yardım edin. Bunu duymadım bile, ama kimsede var mı? Buradaki fikir, seçilen tüm nesneleri bir grafikten diğerine aktarmaktır. Onlar. Diyelim ki bir enstrümanın tüm zamanlarından gelen dalga sayımını bir pencereye aktarmam gerekiyor. Yoğun hesaplamalar nedeniyle tekrar zamanları değiştirerek işaretleme yapmak zordur (M1'de 30-50 trendin hesaplanması, terminali sınırların dışına çıkarır - ve bu, grafiğin sadece yaklaşık 16-24 saatidir). Grafikte bulunan nesneleri (bu durumda eğilim çizgileri ) kopyalayan ve ardından tüm eğilim çizgisi dizisinin başka bir pencereye aktarılmasını sağlayan bir komut dosyasına sahip olan var mı? Veya birkaç şablonu tek bir pencerede birleştirme olasılığı var mı?
 

Sel için üzgünüm, ama bugün yapabilirsiniz.

=====

Ve anlamsız yüksekliklerle sallan

Buradan bir kaç cümle fırladı...

===========

Andrey Voznesensky.

Neden: