Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1154

 
KhuKhu :

Merhaba arkadaşlar.

Stoploss, teknik kar ve takip eden değerler nasıl puan olarak değil, yüzde olarak gösterilir.

Bu formül çok karışık ve hiç çalışmıyor

StopLoss=NormalizeDouble(Bid-(Bid-TrailingStop)/100*TRAL_PERCENT,Rakamlar);

En basit yüzde türünü istiyorum.

Çift Stoploss = 0.05;

--------

Yüzde olarak Kar=Bid-Stoploss ( beceriksiz örnek , ancak anlamak için)

Teşekkür ederim.

Beceriksiz bir örnek, beceriksiz bir yanıt üretir. Anlamak için yüzde neyin ölçüleceğini anlamak gerekir???

 
Андрей Касторский :
.. Danışman yazarken yardıma ihtiyacı olanlar bana yazabilirsiniz. Yardım

sıfır çubuğundan fiyatı almaya yardım edin, işte tartışma

https://www.mql5.com/ru/forum/160683/page237#comment_5350688

 
Alexey Viktorov :

Beceriksiz bir örnek, beceriksiz bir yanıt üretir. Anlamak için yüzde neyin ölçüleceğini anlamak gerekir???

Anladım.

Daha net olmaya çalışacağım.

Başlangıçta kodum şöyle görünür:

harici çift StopLoss =0;

harici çift Kar Al =0;

harici çift SL_PERCENT = 0.02;

harici çift TP_PERCENT = 0.03;

harici çift TRALL_PERCENT = 0,01;

dış çift Lot=0.5;


Ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3, NormalizeDouble (OrderOpenPrice+(OrderOpenPrice + StopLoss)/100*SL_PERCENT,Digits),NormalizeDouble(OrderOpenPrice-(OrderOpenPrice - TakeProfit)/100,*TP ",Büyü,0,Kırmızı);

StopLoss çalışıyor, ancak %0.02'de değil, %0.43'te çalışıyor ki bu doğru değil. TakeProfit'i bilmiyorum, çünkü mümkün değil, ama görünüşe göre yanlış da olacak.

Kodun doğru olmadığına dair bir varsayımım var.

Ve evet, önemli olabilir. 3-4 çiftlik bir pakette tüm depolar için siparişler açılır. Bazen beş.


Ayrıca değişikliği puan olarak değil, StopLoss, Takeprofit, TrailingStop gibi göstergeler için yüzde olarak ayarlamak istiyorum.

Örneğin,

1)Takeprofit=OrderOpenPrice+%TP_PERCENT

2) Stoploss=OrderOpenPrice-%SL_PERCENT

Onlar.

bilet= OrderSend ( Symbol (), OP_BUY ,1,Ask,0,%,%, "" ,Magic,0, clrGreen );


Ve takip için nasıl daha fazla değişiklik yapacağımı anlayamıyorum.

Öğreticiden bir örnek aldım, ancak açıkça yanlış bir şey yapıyorum.

3.) TrailingStop=Teklif-%TRAL_PERCENT

durum 0: // Siparişi satın al

if (NormalizeDouble(OrderOpenPrice-SL*Point,Digits)*SL_PERCENT/100<=(OrderOpenPrice-Ask) // Daha düşük istenirse.

NormalizeDouble(Teklif-(Teklif-TS)/100*TRAL_PERCENT,Rakamlar)

|| NormalizeDouble(SL,Rakamlar)==0)

{

SL=Teklif-TS*Noktası; // sonra değiştir

string Metin="satın al"; // Satın Al için Metin

Değiştir=doğru; // modifiyeye atandı.

}


Umarım gerçekten anlatabilmişimdir.

Teşekkür ederim.

 

Bir anlaşmanın açılışı ( OrderSend göndererek) kesinlikle mumun başlangıcında yetkin bir şekilde nasıl uygulanır - OnTimer ve/veya OnTick,

terminali çok fazla yüklememek için (aynı anda 20-30 çizelge açık ve izleniyor)?

bir mum başlangıcında yeni bir onay işaretinin ortaya çıkmasındaki gecikmenin 5-10 saniyeye kadar olabileceği, önceki onay işaretiyle olan boşluğun önemli olduğu (işlem şartları için olumsuz) bulundu.

ps Aynı zamanda, Expert Advisor'ın olası bir anlaşma hakkında anlaşma açmadan 1-2 dakika önce haber vermesi gerekiyor, yani. mumun açılmasından önce.

 
maxsoft :

Bir anlaşmanın açılışı (Sipariş Gönderimi) kesinlikle mumun başlangıcında yetkin bir şekilde nasıl uygulanır - OnTimer ve/veya OnTick,

terminali çok fazla yüklememek için (aynı anda 20-30 çizelge açık ve izleniyor)?

mumun başlangıcında yeni bir kene ortaya çıkmasındaki gecikmenin 5-10 saniyeye kadar çıkabileceği, önceki kene ile olan boşluğun önemli olduğu (işlem şartları için olumsuz) bulundu.

ps Aynı zamanda, Expert Advisor'ın olası bir anlaşmayı, anlaşmanın açılışından 1-2 dakika önce, yani. mumun açılmasından önce.

Yeni bir çubuğun ortaya çıkması için zamanlayıcıdaki tüm açık çizelgelere bakmanız gerekir.

Sınıf örneklerine yönelik bir dizi işaretçi oluşturmanız gerekecek - her açık grafiğin her zaman çerçevesi için bir sınıf.

Yeni bir barın açılışını takip eden sınıf hakkında bu makalede okuyabilirsiniz .

Bir grafik açın - onu açık grafikler dizisine ekleyin. Grafiği kapatın - diziden çıkarın.

Zamanlayıcıdaki döngüde, sınıf örneklerine yönelik işaretçi dizisini gözden geçirin ve yeni bir çubuk oluşursa sınıfın geri döneceği yeni bir çubuk açma gerçeğini kontrol edin.

 
Artyom Trishkin :

Yeni bir çubuğun ortaya çıkması için zamanlayıcıdaki tüm açık çizelgelere bakmanız gerekir.

Sınıf örneklerine bir dizi işaretçi oluşturmamız gerekecek ...

ve MQL4 aracılığıyla?

ve ne yapmalı - "... olası bir anlaşma hakkında anlaşmanın açılmasından 1-2 dakika önce, yani mumun açılmasından önce ...", yani. çubuğun içinde

 

Sizi https://www.mql5.com/en/forum/208120#comment_5412193 konusuna davet ediyorum.

Bir fikir birliği bulamıyoruz.

Играем в блиц ЧТО? ГДЕ? КОГДА? 3 вопроса по 20 секунд
Играем в блиц ЧТО? ГДЕ? КОГДА? 3 вопроса по 20 секунд
  • 2017.07.07
  • www.mql5.com
Народ, подскажите пожалуйста, заморочился я тут по поводу AccountBalance() и AccountLeverage(). 1...
 

Double tipini ekranda göstermeden önce 2 ondalık basamağa normalleştiriyorum ama bazen çalışmıyor. Niye ya? İşte kodun bir parçası.

prof[num]=( string ) NormalizeDouble (( double )prof[num]+( double )profit2, 2 );

prof[] yazın - dize

Ve çok buggy


 
Vladimir Tkach :

Double tipini ekranda göstermeden önce 2 ondalık basamağa normalleştiriyorum ama bazen çalışmıyor. Niye ya? İşte kodun bir parçası.

prof[] yazın - dize

Ve çok buggy


 DoubleToString ()

DoubleToString

Sayısal bir değeri bir metin dizisine dönüştürme.

stringDoubleToString ( _
    çift    değer , // sayı
    int       rakam=8      // ondalık basamak sayısı
);

Seçenekler

değer

[içinde] Kayan nokta değeri.

rakamlar

[içinde] Hassas biçim. Basamak değeri 0 ile 16 arasındaysa, belirtilen ondalık basamaklı sayının dize gösterimi elde edilir. Basamakların değeri -1 ile -16 arasında ise, sayının bilimsel formattaki dizi gösterimi, belirtilen ondalık basamak sayısı ile elde edilecektir. Diğer tüm durumlarda, sayının dize temsili 8 ondalık basamak içerecektir.

Geri dönüş değeri

Belirtilen kesinlik biçiminde bir sayının karakter temsilini içeren bir dize.

Misal:

    Print ( "DoubleToString(120.0+M_PI) : " , DoubleToString (120.0+ M_PI ));
    Print ( "DoubleToString(120.0+M_PI,16) : " , DoubleToString (120.0+ M_PI ,16));
    Print ( "DoubleToString(120.0+M_PI,-16) : " , DoubleToString (120.0+ M_PI ,-16));
    Print ( "DoubleToString(120.0+M_PI,-1) : " , DoubleToString (120.0+ M_PI ,-1));
    Print ( "DoubleToString(120.0+M_PI,-20) : " , DoubleToString (120.0+ M_PI ,-20));

 

Garip bir böcek.

Girişe ekliyoruz:

input datetime test                                =0;

Derleme. 1970.01.01 sıfır tarihi ile, ayarlarda saati 00, 01 veya 02 olarak ayarlamak mümkün değildir.
Neden: