नमस्ते
मैं निम्नलिखित इंडोर का उपयोग कर रहा हूं जो अपने स्वयं के तीर आदि को प्रिंट करने पर अच्छा काम करता है। कोड नमूना नीचे।
#प्रॉपर्टी इंडोर_चार्ट_विंडो
#प्रॉपर्टी इंडोर_बफ़र्स 2
#प्रॉपर्टी इंडोर_कलर1 लाइम
#प्रॉपर्टी इंडोर_चौड़ाई 1 1
#प्रॉपर्टी इंडोर_कलर2 पीला
#प्रॉपर्टी इंडोर_चौड़ाई 2 1
बाहरी बूल UseAlert = सच;
बाहरी int BarsToCount = 1000;
डबल सरअपसिग [];
डबल सरडाउनसिग [];
दिनांक समय टीटी;
int init ()
{
//---- घर के अंदर
सेटइंडेक्स स्टाइल (0, DRAW_ARROW);
सेटइंडेक्सएरो (0,233);
सेटइंडेक्सबफ़र (0, सरअपसिग);
सेटइंडेक्स स्टाइल (1, DRAW_ARROW);
सेटइंडेक्सएरो (1,234);
सेटइंडेक्सबफर (1, सारडाउनसिग);
टीटी = आईटाइम (प्रतीक (), 0,0);
//----
वापसी (0);
}
इंट स्टार्ट ()
{
अंतर सीमा;
int गिने_बार = IndiorCounted ();
//---- अंतिम गिने हुए बार की फिर से गणना की जाएगी
if(counted_barsgt;0) गिने_बार--;
सीमा = बार्स-काउंटेड_बार्स;
//---- macd को 1-st बफर में गिना जाता है
अगर(अवधि()!=PERIOD_H1)
{
वापसी (0);
}
अगर (BarsToCount lt; सीमा)
सीमा = बार्सटकाउंट;
for(int i=limit; igt;=0; i--)
{
दिनांक समय समय = iTime (प्रतीक (), 0, i);
int shiftD1 = iBarShift (प्रतीक (), PERIOD_D1, समय, असत्य);
int shiftH4 = iBarShift (प्रतीक (), PERIOD_H4, समय, असत्य);
int shiftH1 = iBarShift (प्रतीक (), PERIOD_H1, समय, असत्य);
डबल OsMa1 = iCustom (प्रतीक (), PERIOD_H1, OSMA, 30,200,5,0, shiftH1);
डबल OsMa2 = iCustom (प्रतीक (), PERIOD_H1, OSMA, 5,35,35,0, shiftH1);
डबल POsMa1 = iCustom(प्रतीक(),PERIOD_H1,OSMA,30,200 ,5,0,hiftH1 1);
डबल POsMa2 = iCustom(Symbol(),PERIOD_H1,OsMA,5,35,35,0,shiftH1 1);
//डबल Up_ST = iCustom (प्रतीक (), 0,4xRider STRONG-TREND सिग्नल v2,14,2, i);
//double Dn_ST = iCustom(Symbol(),0,4xRider STRONG-TREND Signal v2,14,1,i);
डबल SARD1 = iSAR (प्रतीक (), PERIOD_D1,0.22,0.2, shiftD1);
डबल SARH4 = iSAR (प्रतीक (), PERIOD_H4,0.05,0.2, shiftH4);
डबल SARH1 = iSAR (प्रतीक (), PERIOD_H1,0.01,0.2, shiftH1);
//डबल सरलास्ट = iSAR(प्रतीक(),0,0.02,0.2,i 1);
डबल CLOSED1 = iClose (प्रतीक (), PERIOD_D1, shiftD1);
डबल CLOSEH4 = iClose (प्रतीक (), PERIOD_H4, ShiftH4);
डबल CLOSEH1 = iClose (प्रतीक (), PERIOD_H1, shiftH1);
डबल PSARD1 = iSAR (प्रतीक (), PERIOD_D1,0.22,0.2, ShiftD1 1);
डबल PSARH4 = iSAR (प्रतीक (), PERIOD_H4,0.05,0.2, ShiftH4 1);
डबल PSARH1 = iSAR (प्रतीक (), PERIOD_H1,0.01,0.2, ShiftH1 1);
//डबल सरलास्ट = iSAR(प्रतीक(),0,0.02,0.2,i 1);
डबल PCLOSED1 = iClose (प्रतीक (), PERIOD_D1, shiftD1 1);
डबल PCLOSEH4 = iClose (प्रतीक (), PERIOD_H4, ShiftH4 1);
डबल PCLOSEH1 = iClose (प्रतीक (), PERIOD_H1, shiftH1 1);
SarUpSig[i]=EMPTY_VALUE;
सारडाउनसिग[i]=EMPTY_VALUE;
स्ट्रिंग खरीदें;
//खरीदना
//अगर (Up_ST! = EMPTY_VALUE)
//{
//सरअपसिग [1] = 1.6094;
if(SarUpSig[i 1] != EMPTY_VALUE SARH1lt;CLOSEH1 OsMa2gt;0 SARH4lt;CLOSEH4)
{
सरअपसिग [i] = SARH1;
if(TT!=iTime(Symbol(),0,0)UseAlert)
{
//स्ट्रिंग समय = TimeToStr (TimeCurrent ());
अलर्ट (4xराइडर (खरीदें) प्रतीक ());
प्लेसाउंड (अलर्ट। वाव);
टीटी = आईटाइम (प्रतीक (), 0,0);
}
}
अगर ((PSARH4gt; PCLOSEH4POsMa1lt; 0PSARH1gt; PCLOSEH1)
(SARH4lt;CLOSEH4OsMa1gt;0SARH1lt;CLOSEH1SARD1lt;CL OSED1) OsMa2gt;0)
{
सरअपसिग [i] = SARH1;
खरीद = व्यापार;
if(TT!=iTime(Symbol(),0,0)UseAlert)
{
//स्ट्रिंग समय = TimeToStr (TimeCurrent ());
अलर्ट (4xराइडर (खरीदें) प्रतीक ());
प्लेसाउंड (अलर्ट। वाव);
टीटी = आईटाइम (प्रतीक (), 0,0);
}
}
//}
स्ट्रिंग बेचना;
//बेचना
//अगर (Dn_ST! = EMPTY_VALUE)
//{
if(SarDownSig[i 1] != EMPTY_VALUE SARH1gt;CLOSEH1 OsMa2lt;0 SARH4gt;CLOSEH4)
{
सारडाउनसिग [i] = SARH1;
if(TT!=iTime(Symbol(),0,0)UseAlert)
{
//स्ट्रिंग समय = TimeToStr (TimeCurrent ());
अलर्ट (4xराइडर (बिक्री) प्रतीक ());
प्लेसाउंड (अलर्ट। वाव);
टीटी = आईटाइम (प्रतीक (), 0,0);
}
}
अगर ((PSARH4lt; PCLOSEH4POsMa1gt; 0PSARH1lt; PCLOSEH1)
(SARH4gt;CLOSEH4OsMa1lt;0SARH1gt;CLOSEH1SARD1gt;CL OSED1) OsMa2lt;0)
{
सारडाउनसिग [i] = SARH1;
if(TT!=iTime(Symbol(),0,0)UseAlert)
{
//स्ट्रिंग समय = TimeToStr (TimeCurrent ());
अलर्ट (4xराइडर (बिक्री) प्रतीक ());
प्लेसाउंड (अलर्ट। वाव);
टीटी = आईटाइम (प्रतीक (), 0,0);
}
}
//}
//बेचना
}
//----
//टिप्पणी (इंडोर से: , DoubleToStr (SarUpSig [1], अंक));
वापसी (0);
}
मैं निम्नानुसार मूल्यों को पढ़ने के लिए ईए का उपयोग कर रहा हूं।
#इंडी MyIndior को परिभाषित करें
डबल इंडीउपवैल = आई कस्टम (न्यूल, 0, इंडी, झूठा, 5, 0, 1);
डबल इंडिडाउनवैल = iCustom(NULL, 0, INDI, false, 5, 1, 1);
टिप्पणी (इंडीउपवैल: डी2एस(इंडीअपवैल) । इंडीउपवैल: डी2एस(इंडीडाउनवैल));
D2S = अंकों के साथ DoubleToString
कोई फर्क नहीं पड़ता कि मैं क्या करता हूं iCustom EMPTY_VAL लौटाता है।
अगर मैं सही समय पर इंडोर के भीतर से वैल्यू प्रिंट करता हूं तो SarUpSig[1]
सही मान लौटाएगा। लेकिन iCustom हमेशा EMPTY_VAL देता है।
क्यों?
कोई भी मदद बहुत ही सराहनीय होगी।