النتائج 1 إلى 15 من 74
الموضوع: ارجوا اعادة صياغة مؤشر peak & valley
- 02-04-2018, 02:48 PM #1
ارجوا اعادة صياغة مؤشر peak & valley
السلام عليكم ورحمة الله
ارجو اعادة صياغة المؤشر المرفق لانه سكربت وتم تحويله الى مؤشر باضافة بعض الاسطر البرمجية لان به العديد من المشاكل منها عدم القدرة على تغيير لون النقاط وكذلك استهلاك الكثير من موارد الحاسوب وكذلك عند حذف المؤشر من الشارت تبقى النقاط على الشارت
وفي بعض الاحيان يقوم باضافة اشارات(نقاط) على الشارت بعد 10 او 20 شمعة
ارجوا ان يتم اخذ طلبي في الحسبان من قبل الاستاذ المبدع فيلسوف البادية او الاستاذ اسامة
ودي واحترامي
- 03-04-2018, 12:22 AM #2
ارجوا التعديل او اعادة الصياغة من فضلكم
- 03-04-2018, 12:53 AM #3
عن نفسي اطلعت على الكود اخي,
ليش ماتستخدم الفراكتالز؟؟ افضل وشيء جاهز في الميتا؟؟
- 03-04-2018, 12:58 AM #4منها عدم القدرة على تغيير لون النقاط
آخر تعديل بواسطة فيلسوف البادية ، 03-04-2018 الساعة 01:03 AM
- 03-04-2018, 01:01 AM #5وكذلك عند حذف المؤشر من الشارت تبقى النقاط على الشارت
- 03-04-2018, 01:06 AM #6وفي بعض الاحيان يقوم باضافة اشارات(نقاط) على الشارت بعد 10 او 20 شمعة
- 03-04-2018, 01:11 AM #7وكذلك استهلاك الكثير من موارد الحاسوب
- 03-04-2018, 01:13 AM #8
يحفظ تحت خبير--لانه ليس مؤشر أساساًَ
كل مرة تريد تحديث--ضغطة ماوس على التشارتكود PHP:
extern int PeakValley_Period=24;
extern int FastShift=7;
input color peak_color=clrLime;
input color valley_color=clrOrange;
int OnInit(){ return(INIT_SUCCEEDED);}
void OnDeinit(const int reason)
{
ObjectsDeleteAll();
}
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(id==CHARTEVENT_CLICK)
{
double PeakBuffer[],ValleyBuffer[];
double PVDomain=PeakValley_Period*5;
int i;
int TotalBar=Bars-PVDomain;
ArrayResize(PeakBuffer,TotalBar);
ArrayResize(ValleyBuffer,TotalBar);
for(i=0; i<TotalBar; i++)
{
PeakBuffer[i]=peak_function(i,PeakValley_Period,FastShift,PVDomain);
ValleyBuffer[i]=valley_function(i,PeakValley_Period,FastShift,PVDomain);
}
}
}
//+------------------------------------------------------------------+
//====================================================================
// calculate peak
double peak_function(int i,int PeriodPV,int ShiftFast,int DomainPV)
{
double Peak=0;
int bsPeak=0;
for(int pw=i+ShiftFast;pw<=i+DomainPV;pw++)
if(iHigh(NULL,0,pw)>=High[iHighest(NULL,0,MODE_HIGH,ShiftFast,pw-ShiftFast)])
{
if(iHigh(NULL,0,pw)>=High[iHighest(NULL,0,MODE_HIGH,ShiftFast,pw+1)])
{
for(int Apw=pw-ShiftFast;Apw>=pw-(PeriodPV-ShiftFast);Apw--)
if(iHigh(NULL,0,pw)==High[iHighest(NULL,0,MODE_HIGH,PeriodPV,Apw)])
{
Peak=iHigh(NULL,0,pw);
bsPeak=pw;
if(ObjectFind(0,"Peak Period: "+IntegerToString(PeakValley_Period)+" Time: "+TimeToStr(iTime(NULL,0,pw),TIME_DATE|TIME_MINUTES))==-1)
{
string objPeak = "Peak Period: "+IntegerToString(PeakValley_Period)+" Time: "+TimeToStr(iTime(NULL,0,pw),TIME_DATE|TIME_MINUTES);
ObjectDelete(objPeak);
ObjectCreate(objPeak, OBJ_ARROW, 0, iTime(NULL,0,pw), iHigh(NULL,0,pw));
ObjectSet(objPeak, OBJPROP_COLOR, peak_color);
ObjectSet(objPeak, OBJPROP_ARROWCODE, 117);
ObjectSet(objPeak, OBJPROP_WIDTH, 1);
ObjectSet(objPeak, OBJPROP_BACK, true);
}
break;
}
if(bsPeak>0)break;else continue;
}
}
return(Peak);
}
//====================================================================
// calculate valley
double valley_function(int i,int PeriodPV,int ShiftFast,int DomainPV)
{
double Valley=0;
int bsValley=0;
for(int vw=i+ShiftFast;vw<=i+DomainPV;vw++)
if(iLow(NULL,0,vw)<=Low[iLowest(NULL,0,MODE_LOW,ShiftFast,vw-ShiftFast)])
{
if(iLow(NULL,0,vw)<=Low[iLowest(NULL,0,MODE_LOW,ShiftFast,vw+1)])
{
for(int Avw=vw-ShiftFast;Avw>=vw-(PeriodPV-ShiftFast);Avw--)
if(iLow(NULL,0,vw)==Low[iLowest(NULL,0,MODE_LOW,PeriodPV,Avw)])
{
Valley=iLow(NULL,0,vw);
bsValley=vw;
if(ObjectFind(0,"Valley Period: "+IntegerToString(PeakValley_Period)+" Time: "+TimeToStr(iTime(NULL,0,vw),TIME_DATE|TIME_MINUTES))==-1)
{
string objValley = "Valley Period: "+IntegerToString(PeakValley_Period)+" Time: "+TimeToStr(iTime(NULL,0,vw),TIME_DATE|TIME_MINUTES);
ObjectDelete(objValley);
ObjectCreate(objValley, OBJ_ARROW, 0, iTime(NULL,0,vw), iLow(NULL,0,vw));
ObjectSet(objValley, OBJPROP_COLOR, valley_color);
ObjectSet(objValley, OBJPROP_ARROWCODE, 117);
ObjectSet(objValley, OBJPROP_WIDTH, 1);
ObjectSet(objValley, OBJPROP_BACK, true);
}
break;
}
if(bsValley>0)break;else continue;
}
}
return(Valley);
}
- 03-04-2018, 01:37 AM #9
اذا غيرت الفريم يفترض ينظف التشارت وكانه لايوجد اكسبيرت 0 -بايت
لذا ضغطة بالماوس على التشارت يفعله فقط 0.1 ثانية ثم يصبح بعدها 0-بايت
- 03-04-2018, 03:17 AM #10
- 03-04-2018, 03:18 AM #11
- 03-04-2018, 04:27 AM #12
- 03-04-2018, 01:39 PM #13
- 03-04-2018, 01:43 PM #14كل مرة تريد تحديث--ضغطة ماوس على التشارت
اذا غيرت الفريم يفترض ينظف التشارت وكانه لايوجد اكسبيرت 0 -بايت
مكتوبة بالعربي
- 03-04-2018, 01:52 PM #15
اذا تريده الي وعندك قدرة لتحمل الضغط---شيل ONCHARTEBENT واكتب مكانها ONTICK