Masalah dengan amaran boleh didengar
Results 1 to 5 of 5

Thread: Masalah dengan amaran boleh didengar

  1. #1
    Halo semua, saya # 8217; m menghadapi masalah dengan amaran yang boleh didengar untuk indior Squeeze. Saya dapati amaran untuk memerah BBS, amaran berfungsi # 8230; bukan dengan cara saya lebih suka. Isyarat sebenar adalah apabila titik berubah hijau pada penutup bar dan titik sebelumnya adalah merah. Sekarang isyarat bunyi pada setiap titik merah dan biasanya beberapa kali sejak titik semasa boleh berubah dari merah ke hijau berulang-ulang. Jadi, sekiranya saya dapat memaklumkannya dengan menutupnya, ia masih akan memberi amaran pada setiap titik merah, apabila isyarat untuk saya sebenarnya titik hijau sebelum titik merah. Entah bagaimana saya memerlukannya untuk memberi amaran apabila titik menutup hijau dan titik sebelumnya adalah merah. Adakah ini mungkin? Jika seseorang tahu bagaimana ini dapat dilaksanakan, saya amat menghargai apa-apa bantuan. Terima kasih terlebih dahulu.




    Kod dimasukkan # 91; kiri # 93;/ -------------------------------------- ---------------------------- /| bbsqueeze.mq4 |/| Hak cipta © 2005, Nick Bilak, beluk # 91; AT # 93; gmail.com |/| ditingkatkan sedikit oleh CJ Rivas, carlos # 91; AT # 93; vealo.com |/ ----------------------------------------------- ------------------- #property copyright Copyright © 2005, Nick Bilak #property indior_separate_window #property indior_buffers 6 #property indior_color1 Blue #property indior_color2 Red #property indior_color3 DarkBlue #property indior_color4 Maroon #property indior_color5 Red #property indior_color6 Lime/---- parameter input extern int bolPrd = 20; extern double bolDev = 2.0; extern int keltPrd = 20; extern double keltFactor = 1.5; extern int momPrd = 12; extern bool AlertSqueezeStart = false; extern bool AlertSqueezeEnd = false;//buffer double upB # 91; # 93 ;; double upB2 # 91; # 93 ;; double loB # 91; # 93 ;; double loB2 # 91; # 93 ;; double upK # 91; # 93 ;; double loK # 91; # 93 ;; int i, j, slippage = 3; double breakpoint = 0.0; double ema = 0.0; int peakf = 0; int puncak = 0; int valleyf = 0; int valleys = 0, limit = 0; double ccis # 91; 61 # 93;, ccif # 91; 61 # 93 ;; delta double = 0; double ugol = 0;/ ----------------------------------------------- ------------------- /| Fungsi permulaan indir kustom |/ ----------------------------------------------- ------------------- int init () {//---- indiors SetIndexStyle (0, DRAW_HISTOGRAM, EMPTY, 3); SetIndexBuffer (0, upB); SetIndexEmptyValue (0, EMPTY_VALUE); SetIndexStyle (1, DRAW_HISTOGRAM, EMPTY, 3); SetIndexBuffer (1, loB); SetIndexEmptyValue (1, EMPTY_VALUE); SetIndexStyle (4, DRAW_ARROW, EMPTY, 2); SetIndexBuffer (4, upK); SetIndexEmptyValue (4, EMPTY_VALUE); SetIndexArrow (4,159); SetIndexStyle (5, DRAW_ARROW, EMPTY, 2); SetIndexBuffer (5, loK); SetIndexEmptyValue (5, EMPTY_VALUE); SetIndexArrow (5,159); SetIndexStyle (2, DRAW_HISTOGRAM, EMPTY, 3); SetIndexEmptyValue (2, EMPTY_VALUE); SetIndexBuffer (2, upB2); SetIndexStyle (3, DRAW_HISTOGRAM, EMPTY, 3);SetIndexEmptyValue (3, EMPTY_VALUE); SetIndexBuffer (3, loB2);///kembali (0); }/ ---------------------------------------------- -------------------- /| Fungsi deinitialization indior custor |/ ----------------------------------------------- ------------------- int deinit () {//----/---- return (0); }/ ---------------------------------------------- -------------------- /| Fungsi lelaran indior kustom |/ ----------------------------------------------- ------------------- int start () {int counted_bars = IndiorCounted (); int shift, limit; double diff, d, dPrev, std, bbs; jika (counted_barslt; 0) pulangan (-1); jika (counted_barsgt; 0) counted_bars--; had = Bars-31; jika (counted_barsgt; = 31) had = Bars-counted_bars-1; untuk (shift = limit; shiftgt; = 0; shift--) {//d = iMomentum (NULL, 0, momPrd, PRICE_CLOSE, shift); d = LinearRegressionValue (bolPrd, shift); dPrev = LinearRegressionValue (bolPrd, shift 1); jika (dgt; 0) {if ((dPrevgt; 0) (dPrev gt; d)) {upB2 # 91; shift # 93; = d; upB # 91; peralihan # 93; = 0; } else {upB # 91; shift # 93; = d; upB2 # 91; shift # 93; = 0; }/upB # 91; peralihan # 93; = 0; loB # 91; peralihan # 93; = 0; loB2 # 91; shift # 93; = 0; } else {if ((dPrevlt; 0) (dPrev lt; d)) {loB2 # 91; shift # 93; = d; loB # 91; peralihan # 93; = 0; } else {loB # 91; shift # 93; = d; loB2 # 91; shift # 93; = 0; } upB # 91; shift # 93; = 0; upB2 # 91; shift # 93; = 0;/loB # 91; peralihan # 93; = d; } diff = iATR (NULL, 0, keltPrd, shift) * keltFactor; std = iStdDev (NULL, 0, bolPrd, MODE_SMA, 0, PRICE_CLOSE, shift); bbs = bolDev * stddiff; jika (bbslt; 1) {upK # 91; shift # 93; = 0; loK # 91; peralihan # 93; = EMPTY_VALUE; } else {loK # 91; shift # 93; = 0; upK # 91; peralihan # 93; = EMPTY_VALUE; } double diffprev, stdprev, bbsprev; diffprev = iATR (NULL, 0, keltPrd, 1) * keltFactor; stdprev = iStdDev (NULL, 0, bolPrd, MODE_SMA, 0, PRICE_CLOSE, 1); bbsprev = bolDev * stdprevdiffprev; } {if (bbsprevgt; = 1 bbslt; 1 AlertSqueezeStart == true) if (NewBar ()) Alert (Symbol (),, Period (), BB Squeeze Started); } {if (bbsprevlt; 1 bbsgt; = 1 AlertSqueezeEnd == true) if (NewBar ()) Alert (Symbol (),, Period (), BB Squeeze Ended); } kembali (0); }/ ---------------------------------------------- -------------------- Double LinearRegressionValue (int Len, shift int) {double SumBars = 0; double SumSqrBars = 0; double SumY = 0; double Sum1 = 0; double Sum2 = 0; Lereng berganda = 0; SumBars = Len * (Len-1) * 0.5; SumSqrBars = (Len - 1) * Len * (2 * Len - 1)6; untuk (int x = 0; xlt; = Len-1; x ) {double HH = Rendah # 91; x shift # 93 ;; double LL = High # 91; x shift # 93 ;; untuk (int y = x; ylt; = (x Len) -1; y ) {HH = MathMax (HH,Tinggi # 91; y shift # 93;); LL = MathMin (LL, Rendah # 91; y shift # 93;); } Sum1 = x * (Tutup # 91; x shift # 93; - ((HH LL)2 iMA (NULL, 0, Len, 0, MODE_EMA, PRICE_CLOSE, x shift))2); SumY = (Tutup # 91; x shift # 93; - ((HH LL)2 iMA (NULL, 0, Len, 0, MODE_EMA, PRICE_CLOSE, x shift))2); } Sum2 = SumBars * SumY; double Num1 = Len * Sum1 - Sum2; double Num2 = SumBars * SumBars-Len * SumSqrBars; jika (Num2! = 0.0) {Lereng = Num1Num2; } else {Slope = 0; } double Intercept = (SumY - Slope * SumBars)Len; double LinearRegValue = Pintas Lereng * (Len - 1); kembali (LinearRegValue); } bool NewBar () {datetime statik dt = 0; jika (dt! = Masa # 91; 0 # 93;) {dt = Masa # 91; 0 # 93 ;; Tidur (100);/tunggu pulangan semak (benar); } kembali (palsu); } kembali (0); # 91;kiri # 93;

  2. #2
    Saya hanya membaca semula jawatan terakhir saya dan ia agak mengelirukan.
    Jika bar0 hijau dan bar1 hijau dan bar2 merah, maka isyarat.
    an ini adalah satu-satunya cara yang saya boleh fikirkan untuk mengelakkan pelbagai amaran kerana isyarat berubah beberapa kali semasa bar. Ia masih akan memberi amaran beberapa kali dengan cara ini, tetapi isyarat pertama akan betul dan saya boleh mematikannya selepas itu. Tutup titik hijau pertama adalah isyarat, membiarkan anda tahu bahawa band Bollinger telah ditutup di luar saluran keltner. Bolehkah seseorang memberitahu saya jika logik betul untuk ini ...? Saya bukan pengkod besar tetapi jika saya dapat memahami logik di belakangnya, saya mungkin dapat kod itu. Saya telah mencari di sekitar forum yang berbeza dan menemui soalan yang sama satu juta kali jadi saya tertanya-tanya jika mungkin. Sebarang bantuan sangat dihargai.

  3. #3
    Ok, apa yang perlu saya bayar untuk berjaga-jaga?

  4. #4

  5. #5

Kebenaran Posting

  • Anda tidak boleh menghantar thread baru
  • Anda tidak boleh membalas kiriman
  • Anda tidak boleh mengedit siaran anda
  • Anda tidak boleh menyiarkan lampiran
  •  
  • Kod BB Hidup
  • Smilies Hidup
  • Kod [IMG] adalah Hidup
  • Kod [VIDEO] adalah Hidup
  • Kod HTML Tidak Hidup
Polisi Kuki
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.