النتائج 76 إلى 90 من 524
الموضوع: تصميم "عظم باكتسر فوري"
- 10-07-2017, 10:02 PM #76
عرفنا شمعة الدخول,
وعرفنا الرقم اللتسلسلي لصفقات الزوج, وليس كل الصفقات,
والآن نضيف اسم زوج الصفقة
علي شادي, طبق اولا بأول, والردود ممكن حذفها بعد ذلك,
اريد اضمن واحد فاهم, يجيب على الاسئلة لو وجدت.
والاجزاء الاخيرة هنا عن الفكرة, الاسطر التي قد يتم تغييرها لاحقا سوى طريقة البحث في الهستوري,
ملحوظة: الموضوع فكر برمجي وليس برمجة
نحتفظ باسم زوج الصفقة من خلال متغير Pair_Order_Symbol ولابد يكون مصفوفة من بعدين
فيما بعد اذا خلطنا صفقات كل الازواج مع بعض--يكون مصفوفة من بعد واحد
دعاية للموضوع والمنتدى هنا
https://www.forexfactory.com/showthr...1#post10070851آخر تعديل بواسطة فيلسوف البادية ، 10-07-2017 الساعة 10:15 PM
- 10-07-2017, 10:17 PM #77
- 10-07-2017, 10:19 PM #78
الان سنؤجل بقية اجزاء الفكرة الى وقت لاحق ونكتفي باسما الصفقات ووقت الدخول ونذهب الى تصميم صفحة العرض
ثم بعد ذلك نعود للفكرة نكمل نواقصها ونرى النتائج في صفحة الصفقات اول بأول مع كل تحديث.
اذن عرفنا:
1) زوج الصفقة
2) وقت دخول الصفقة--شمعتها
3) تسلس صفقات الزوج
4) نوع الصفقة بيع ام شراء
وفقط
- 10-07-2017, 10:21 PM #79
صفحة العرض--نعني بها تفاصيل اصلفقات
نريد شيئا كهذا:
- 10-07-2017, 10:26 PM #80
إذن نحدد العناوين الرئيسة لكل عمود-اول صف اعلاه- لكي تعرف معنى كل عمود هل هو التسلسل ام نوع العملية ام اسم زوج الصفقة الخ.
ولاننسى الاولية العقلية, ان سعر الدخول هو افتتاح شمعة الدخول--نحن عمليا عرفنا هذه القيمة وتبقى فقط حفظها في البرنامج.
سعر الدخول كل صفقة لكل زوج سيتم تعريفه بالمتغير Pair_Entry_Price وطبعا مصفوفة من بُعدين حتى الآن, قبل مرحلة الخلاط mixer
وأي مبرمج يدرك انه لابد يكون من نوع double لأن الأسعار عَشرية.
- 10-07-2017, 10:33 PM #81
- 10-07-2017, 10:40 PM #82
والآن مع عناوين صفحة العرض,
أرى التالي وقد يكون لديكم فيما بعد اراء افضل بكثير, فالناس بعضهم ألحن من بعض في الحجة اذا تساوت معارفهم.
أرى: (حتى الآن لا أريكم الا ما أرى) ان نجعل الأعمدة كالتالي:
العمود الأول: الرقم التسلسلي ونسميه هاش "#"
العمود الثاني: رقم شمعة الدخول ونسميه CE اختصار CandleEntry
العمود الثالث: تاريخ وقت الدخول ويعرض على نمط 2017.07.12 00:00 EntryT
العمود الرابع: شمعة الخروج--لم نتحدث عنها حتى الان CX
العمود 5: وقت الخروج ExitT
العمود 6: نوع العملية Type
العمود 7: اسم الزوج Symbol
العمود 8: السعر الحالي Cprice
العمود 9: سعر الدخول EntryP
العمود 10: سعر الخورج ExitP
العمود 11: اعلى سعر بين الدخول والخورج HEE
العمود 12: ادنى سعر بين الدخول والخروج LEE
العمود 13: الربح او الخسارة المحققة بالنقاط PPips
العمود 14: افضل ربح تحققق بين الدخول والخروج BestP
العمود 15: اسؤا خسارة تحققت بين الدخول والخروج. WorstP
ونؤجل ماعدا ذلك.آخر تعديل بواسطة فيلسوف البادية ، 10-07-2017 الساعة 10:43 PM
- 10-07-2017, 11:22 PM #83
- 11-07-2017, 02:36 PM #84
قيم yy2 اعلاه ممكن فيما بعد تعديلها حسب مساحة القيمة التي توضع
مثلا قيمة "1.27878" سبعة حروف بينما قيمة التاريخ "F2017.09.12 04:00" عبارة 17 حرف,
AA هي الازاحة للكل عن يسار التشارت
rr الازاحة التراكمية لكل عمود, اي ازاحة العمود السابق الكلية + ازاحة هذا العمود
وبالتالي:
rr=rr+yy2
وتم تسمية روؤس كل عمود بـ Heading ثم اندرسكور زايد رقم العمود التسلسلي من اليسار الى اليمين
الآن هناك حالتين للعرض:
عرض الصفقات
أو
عرض الدروداون-رن اب--يعني يمسكها من اول يوم ثم يشوف كم الاكويتي بنهاية كل يوم واسؤا دردوداون حدث شاملة عدد الصفقات المفتوحة او المغلقة حتى ذلك اليوم, من اول يوم وحتى هذا اليوم وايضا الدردوداون النسبي لهذا اليوم مقارنة باليوم السابق حتى لو كانت النتائج الكلية موجبةآخر تعديل بواسطة فيلسوف البادية ، 11-07-2017 الساعة 02:39 PM
- 11-07-2017, 02:41 PM #85
إذن لابد نعرف متغير SELECTOR للاختيار بين عرض الصفقات POSITIONS و عرض تاريخ الحساب HISTORY
لغة انجليزية
SELECTOR اختيار
سنختار الديفولت POSITIONS
- 11-07-2017, 02:50 PM #86
- 11-07-2017, 02:56 PM #87
ولو تلاحظ نتحاشى هنا المتغيرات الخارجية بالشكل المألوف ونعتمد نظرية "ارسم ثم ادعس" -- يعني نعتمد الضغط على الاشياء لاختيار القيم بالماوس فقط,
وبالتالي نحن بحاجة الى شيئين اضافيين على التشارت:
1) شيء نضغط عليه فيعرض الصفقات
2) شيء آخر نضغط عليه فيعرض سيرة الحساب
سيكون اسم الشيء الاول نفس قيمته واسم الشيء الثاني نفس قيمته ايضا-لايوجد مايمنع وسنعرضها على التشارت ايضا دوائر منجمة صغيرة.
ولاننسى ماذكرناه لكي يتم تفعيلها لابد من خلال OnChartEvent
لاتنسى الاغنية: ارسم في OnTimer وفعل في OnChartEvent
وبصريا الشيء الذي اخترناه سيكون لون دائرته المنجمة اخضر والشيء الاخر لونه رمادي
وندنقرز 174
آخر تعديل بواسطة فيلسوف البادية ، 11-07-2017 الساعة 03:00 PM
- 11-07-2017, 03:09 PM #88
- 11-07-2017, 03:17 PM #89كود PHP:
string SELECTOR ="POSITIONS";
string str;
string S[] = {"EUR" ,"GBP" ,"AUD" ,"NZD" ,"USD" ,"CAD" ,"CHF" ,"JPY"};
string pairs[28];
string pair_0[28];
int NoOfCandles=50;
int OnInit()
{
ChartSetInteger(0,CHART_FOREGROUND,0,FALSE);
ChartSetInteger(0,CHART_COLOR_BACKGROUND,clrBlack);
ChartSetInteger(0,CHART_COLOR_CHART_LINE,ChartGetInteger(0,CHART_COLOR_BACKGROUND));
ChartSetInteger(0,CHART_MODE,CHART_LINE);
ChartSetInteger(0,CHART_SHOW_GRID,0,FALSE);
ChartSetInteger(0,CHART_SHOW_OHLC,0,FALSE);
ChartSetInteger(0,CHART_SHOW_BID_LINE,0,FALSE);
ObjectCreate( "CHART_HIDE",OBJ_LABEL,0,0,0);
ObjectSet( "CHART_HIDE",OBJPROP_CORNER,0);
ObjectSet( "CHART_HIDE",OBJPROP_XDISTANCE,5);
ObjectSet( "CHART_HIDE",OBJPROP_YDISTANCE,25);
ObjectSetText("CHART_HIDE",CharToStr(108),12,"wingdings",clrRed);
ObjectCreate( "CHART_CANDLES",OBJ_LABEL,0,0,0);
ObjectSet( "CHART_CANDLES",OBJPROP_CORNER,0);
ObjectSet( "CHART_CANDLES",OBJPROP_XDISTANCE,25);
ObjectSet( "CHART_CANDLES",OBJPROP_YDISTANCE,25);
ObjectSetText("CHART_CANDLES",CharToStr(108),12,"wingdings",clrYellow);
ObjectCreate( "CHART_LINE",OBJ_LABEL,0,0,0);
ObjectSet( "CHART_LINE",OBJPROP_CORNER,0);
ObjectSet( "CHART_LINE",OBJPROP_XDISTANCE,45);
ObjectSet( "CHART_LINE",OBJPROP_YDISTANCE,25);
ObjectSetText("CHART_LINE",CharToStr(108),12,"wingdings",clrWhite);
EventSetTimer(1);
str =StringSubstr(Symbol(),6,10);
///////////////////////////
int j=-1;
for(int i=0;i<=6;i++)
{
for(int k=i+1;k<=7;k++)
{
j++;
pairs[j]=S[i]+S[k]+str;
pair_0[j]=pairs[j];
}
}
return(INIT_SUCCEEDED);
}
////////////////////////
void OnTimer()
{
ChartSetInteger(0,CHART_FOREGROUND,0,BackOrForeground);
ChartSetInteger(0,CHART_COLOR_CHART_LINE,LineColor);
ChartSetInteger(0,CHART_MODE,ChartMode);
for(int i=0;i<28;i++)
{
if(pair_0[i]==pairs[i]) color clr=clrLime;
else clr=clrWhite;
ObjectCreate( "B_"+StringSubstr(pairs[i],0,6)+"_"+i, OBJ_LABEL,0,0,0);
ObjectSet( "B_"+StringSubstr(pairs[i],0,6)+"_"+i, OBJPROP_CORNER,0);
ObjectSet( "B_"+StringSubstr(pairs[i],0,6)+"_"+i, OBJPROP_XDISTANCE,20);
ObjectSet( "B_"+StringSubstr(pairs[i],0,6)+"_"+i, OBJPROP_YDISTANCE,50+i*13);
ObjectSetText( "B_"+StringSubstr(pairs[i],0,6)+"_"+i, StringSubstr(pairs[i],0,6),9,"Tahoma",clr);
//
ObjectCreate( "A_"+StringSubstr(pairs[i],0,6)+"_"+i, OBJ_LABEL,0,0,0);
ObjectSet( "A_"+StringSubstr(pairs[i],0,6)+"_"+i, OBJPROP_CORNER,0);
ObjectSet( "A_"+StringSubstr(pairs[i],0,6)+"_"+i, OBJPROP_XDISTANCE,5);
ObjectSet( "A_"+StringSubstr(pairs[i],0,6)+"_"+i, OBJPROP_YDISTANCE,50+i*13);
ObjectSetText( "A_"+StringSubstr(pairs[i],0,6)+"_"+i, CharToStr(110),9,"wingdings",clr);
}
ObjectCreate( "ACTIVATE_ALL",OBJ_LABEL,0,0,0);
ObjectSet( "ACTIVATE_ALL",OBJPROP_CORNER,0);
ObjectSet( "ACTIVATE_ALL",OBJPROP_XDISTANCE,25);
ObjectSet( "ACTIVATE_ALL",OBJPROP_YDISTANCE,425);
ObjectSetText("ACTIVATE_ALL",CharToStr(110),12,"wingdings",clrLime);
ObjectCreate( "CANCEL_ALL",OBJ_LABEL,0,0,0);
ObjectSet( "CANCEL_ALL",OBJPROP_CORNER,0);
ObjectSet( "CANCEL_ALL",OBJPROP_XDISTANCE,45);
ObjectSet( "CANCEL_ALL",OBJPROP_YDISTANCE,425);
ObjectSetText("CANCEL_ALL",CharToStr(110),12,"wingdings",clrGray);
ObjectCreate( "REMOVE_EXPERT",OBJ_LABEL,0,0,0);
ObjectSet( "REMOVE_EXPERT",OBJPROP_CORNER,0);
ObjectSet( "REMOVE_EXPERT",OBJPROP_XDISTANCE, 195);
ObjectSet( "REMOVE_EXPERT",OBJPROP_YDISTANCE, 0);
ObjectSetText( "REMOVE_EXPERT",CharToStr(255),18,"Wingdings",clrWhite);
ObjectCreate( "CLEAN_CHART",OBJ_LABEL,0,0,0);
ObjectSet( "CLEAN_CHART",OBJPROP_CORNER,0);
ObjectSet( "CLEAN_CHART",OBJPROP_XDISTANCE,145);
ObjectSet( "CLEAN_CHART",OBJPROP_YDISTANCE,0);
ObjectSetText("CLEAN_CHART","DEL",15,"Times New Roman",clrWhite);
if(SELECTOR=="POSITIONS") color SelClr=clrLime;
else SelClr=clrGray;
ObjectCreate( "POSITIONS",OBJ_LABEL,0,0,0);
ObjectSet( "POSITIONS",OBJPROP_CORNER,0);
ObjectSet( "POSITIONS",OBJPROP_XDISTANCE,400);
ObjectSet( "POSITIONS",OBJPROP_YDISTANCE,0);
ObjectSetText("POSITIONS",CharToStr(174),12,"wingdings",SelClr);
if(SELECTOR=="HISTORY") SelClr=clrLime;
else SelClr=clrGray;
ObjectCreate( "HISTORY",OBJ_LABEL,0,0,0);
ObjectSet( "HISTORY",OBJPROP_CORNER,0);
ObjectSet( "HISTORY",OBJPROP_XDISTANCE,420);
ObjectSet( "HISTORY",OBJPROP_YDISTANCE,0);
ObjectSetText("HISTORY",CharToStr(174),12,"wingdings",SelClr);
ObjectCreate( "Object_Name",OBJ_LABEL,0,0,0);
ObjectSet( "Object_Name",OBJPROP_CORNER,0);
ObjectSet( "Object_Name",OBJPROP_XDISTANCE,245);
ObjectSet( "Object_Name",OBJPROP_YDISTANCE,0);
ObjectSetText("Object_Name",Object_Name,11,"Times New Roman",clrWhite);
/////////////////////////
int PairTotallPosition[28];
int PairPositionSerial[28][200];
int PairEntryCandle[28][200];
string Pair_Order_Type[28][200];
string Pair_Order_Symbol[28][200];
double Pair_Entry_Price[28][200];
/////////////////////
for(i=0;i<=27;i++)
{//for(i=0;i<28;i++)
PairTotallPosition[i]=-1;
if(pairs[i]==pair_0[i])
{//if(pairs[i]==pair_0[i])
for(int j=NoOfCandles;j>=1;j--)
{//for(int j=0;j<=NoOfCandles;j++)
double x0=iAO(pair_0[i],0,j+1);
double x1=iAO(pair_0[i],0,j+2);
if((x0<=0 && x1>=0) || (x0>=0 && x1<=0))
{//if((x0<0 && x1>0) || (x0>0 && x1<0))
PairTotallPosition[i]++;
int m=PairTotallPosition[i];
PairPositionSerial[i][m]=m;
PairEntryCandle[i][m]=j;
Pair_Order_Symbol[i][m]=pair_0[i];
Pair_Entry_Price[i][m]=iOpen(pair_0[i],0,j);
if(x0>=0 && x1<=0)
{
Pair_Order_Type[i][m]="BUY";
}
if(x0<=0 && x1>=0)
{
Pair_Order_Type[i][m]="SELL";
}
}//if((x0<0 && x1>0) || (x0>0 && x1<0))
//--
//-
//-
}//for(int j=0;j<=NoOfCandles;j++)
}//if(pairs[i]==pair_0[i])
}//for(i=0;i<28;i++)
int yy2[]={0,40,40,40,40,40,60,80,60,60,60,80,60,60,60,90,90,90,90,90,90,90,90,90,90};
int AA=100;
int rr;
string Heading[]={"#","CE","EntryT","CX","EntryT","Type","Symbol","Cprice","EntryP","ExitP","HEE","LEE","PPips","BestP","WorstP"};
for(j=0;j<=14;j++)
{
rr=rr+yy2[j];
ObjectCreate( "Heading_"+j,OBJ_LABEL,0,0,0);
ObjectSet( "Heading_"+j,OBJPROP_CORNER,0);
ObjectSet( "Heading_"+j,OBJPROP_XDISTANCE, AA+rr);
ObjectSet( "Heading_"+j,OBJPROP_YDISTANCE, 50);
ObjectSetText( "Heading_"+j,Heading[j],8,"Tahoma",clrWhiteSmoke);
}
if(SELECTOR=="POSITIONS")
{
}
else if(SELECTOR=="HISTORY")
{
}
}//OnTimer
//////////////////////////////////////////////
string Object_Name;
//////////////////////////////////////////////
bool BackOrForeground=false;
ENUM_CHART_MODE ChartMode=CHART_LINE;
color LineColor=ChartGetInteger(0,CHART_COLOR_BACKGROUND);
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
if(id==CHARTEVENT_OBJECT_CLICK)
{
//////////////////////////
if(sparam=="POSITIONS") SELECTOR="POSITIONS";
if(sparam=="HISTORY") SELECTOR="HISTORY" ;
if(sparam=="CHART_HIDE")
{
LineColor=ChartGetInteger(0,CHART_COLOR_BACKGROUND);
ChartMode=CHART_LINE;
BackOrForeground=false;
}
if(sparam=="CHART_CANDLES")
{
LineColor=clrOrange;
ChartMode=CHART_CANDLES;
BackOrForeground=true;
}
if(sparam=="CHART_LINE")
{
LineColor=clrOrange;
ChartMode=CHART_LINE;
BackOrForeground=true;
}
Object_Name=sparam;
if(StringSubstr(sparam,0,2)=="A_")
{
int I1=StrToInteger(StringSubstr(sparam,9,StringLen(sparam)-9));
pair_0[I1]="YYYXXX";
}
if(StringSubstr(sparam,0,2)=="B_")
{
int I2=StrToInteger(StringSubstr(sparam,9,StringLen(sparam)-9));
pair_0[I2]=pairs[I2];;
}
if(sparam=="CANCEL_ALL")
{
for(int k=0;k<=27;k++) pair_0[k]="YYYXXX";
}
if(sparam=="ACTIVATE_ALL")
{
for( k=0;k<=27;k++) pair_0[k]=pairs[k];
}
if(sparam=="CLEAN_CHART") ObjectsDeleteAll();
if(sparam=="REMOVE_EXPERT") {ObjectsDeleteAll();ExpertRemove();}
/////////////////////////////////////////
}
}
- 12-07-2017, 09:46 PM #90
بسم الله الرحمن الرحيم
نريد ان نحتفظ بعدد مرات قطع الصفر لكل زوج؟ بالمنطق اين نضعها؟
نحن من خلال المتغير المصفوفة PairTotallPosition قد عرفناها لكل زوج.
بناء عليه في الكود السابق نضعه مع لوووب A_ و _B--يعني الازواج ومربعاتها بحيث يكون هناك عمود ثالث يعرض عدد مرات القطع (والتي هي عمليا عدد الصفقات)
ومكانها يجب ان يكون بعد الحسبة, وإذا لم يكن هناك عمليات نضع شرطة "-"
إذن: