النتائج 1 إلى 15 من 32
الموضوع: اكسبيرتى الاول - شخبطة على الحيط
- 14-07-2012, 07:39 PM #1
اكسبيرتى الاول - شخبطة على الحيط
السلام عليكم ورحمة الله وبركاته
لقد بدأت فى تعلم لغة البرمجة منذ فترة حالما بأن أكون مبرمج محترف ومستعينا بالله ثم بخبرات الاساتذة الموجودين هنا بالمنتدى
واول اكسبيرت احببت ان اصنعه وهوه لمؤشر الايشيموكو الشهير
وكانت الشروط للبيع ان يكون السعر اسفل السحابة و السعر اسفل التنكن والسعر اسفل الكيجن وكتبتهم هكذا
كود PHP:if (Open[0]>Tenkan&&Open[0]>Kijun&&Open[0]>Senkoua){
وكانت شروط الشراء العكس فقمت بتغير علامة < بعلامة >
المهم
واقتبست عدة جمل من مؤشر الباربوليك الخاص بمستر دولار لكى لا يفتح غير عقد واحد
وعند تجربتى للاكسبيرت حدثت مشكلة
وهى ان الاكسبيرت ينفذ عمليات شراء تحت السحابة
فأرجو من الخبراء افادتى بالحل
وهذا هو كود الاكسبيرت وقد سميته Ambush
كود PHP://+------------------------------------------------------------------+
//| Ambush.mq4 |
//| Copyright 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, AhmeD EssaM"
#property link "[email protected]"
//--- input parameters
extern string moneymanagement="Money Management";
extern double Lots=0.01;
extern int StopLoss=50;
extern int TakeProfit=50;
extern int MagicNumber=58;
extern string entrylogics="Entry Logics";
extern int tenkansen=9;
extern int kijunsen=26;
extern int senkospan=52;
extern int shift=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
double point;
int digits;
int init()
{
if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("Ambush Ichi"+"\n"+"AhmeD EssaM");
//++++++++++++++ my first ++++++++++++++++++//
double Tenkan,Kijun,Senkoua,Senkoub;
Tenkan=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,0);
Kijun=iIchimoku(NULL,0,9,26,52,MODE_KIJUNSEN,0);
Senkoua=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANA,0);
Senkoub=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANB,0);
//+++++++++++++++++++++++++++++++++++++++++//
double SL,TP;
/////////// BUY ////////////////
if (Open[0]>Tenkan&&Open[0]>Kijun&&Open[0]>Senkoua){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"ambush",MagicNumber,0,Blue);
}
}
/////////// SELL ////////////////
if (Open[0]<Tenkan&&Open[0]<Kijun&&Open[0]<Senkoua){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"ambush",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
- 14-07-2012, 08:01 PM #2
عندي فكرة صديقي ان شاء الله تفيدك
نضع متغير مثلا x ومتغير اخر y
سميه انت مثل ما تحب
x نخزن فيه الاكبر بين span a و span b
يصبح x يمثل الحد العلو للسحابة
y نخزن فيه اقل قيمة بين span a و span b
يصبح y يمثل اقل الحد السفلي للسحابة
وعندها قارن فقط افتتاح السعر ب x في حالة الشراء مع تحقق شروطك الاخر
وافتتاح السعر ب y في حالة البيع مع تحقق الشروط الاخري
لو تريد مساعدة في الفكرة انا جاهز
- 14-07-2012, 09:27 PM #3
- 14-07-2012, 09:54 PM #4
رد:اكسبيرتى الاول - شخبطة على الحيط
كود PHP://+------------------------------------------------------------------+
//| Ambush.mq4 |
//| Copyright 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, AhmeD EssaM"
#property link "[email protected]"
//--- input parameters
extern string moneymanagement="Money Management";
extern double Lots=0.01;
extern int StopLoss=50;
extern int TakeProfit=50;
extern int MagicNumber=58;
double x,y;
extern string entrylogics="Entry Logics";
extern int tenkansen=9;
extern int kijunsen=26;
extern int senkospan=52;
extern int shift=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
double point;
int digits;
int init()
{
if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("Ambush Ichi"+"\n"+"AhmeD EssaM");
//++++++++++++++ my first ++++++++++++++++++//
double Tenkan,Kijun,Senkoua,Senkoub;
Tenkan=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,0);
Kijun=iIchimoku(NULL,0,9,26,52,MODE_KIJUNSEN,0);
Senkoua=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANA,0);
Senkoub=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANB,0);
if(Senkoua>Senkoub)
{
x=Senkoua;
y=Senkoub;
}
else
{
x=Senkoub;
y=Senkoua;
}
//+++++++++++++++++++++++++++++++++++++++++//
double SL,TP;
/////////// BUY ////////////////
if (Open[0]>Tenkan&&Open[0]>Kijun&&Open[0]>x){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"ambush",MagicNumber,0,Blue);
}
}
/////////// SELL ////////////////
if (Open[0]<Tenkan&&Open[0]<Kijun&&Open[0]<y){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"ambush",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
الشراء فوق السحابة فقط
والبيع تحت السحابة فقط
- 14-07-2012, 10:43 PM #5
- 14-07-2012, 11:12 PM #6
رد:اكسبيرتى الاول - شخبطة على الحيط
قمت بعمل تعديل بسيط وهو استبدال امر الافتتاح بالاغلاق وعمل نتائج رائعة بالنسبة لى كأول اكسبيرت
وهذا هوه الكود المعدل
كود PHP://+------------------------------------------------------------------+
//| Ambush.mq4 |
//| Copyright 2012, AhmeD EssaM |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, AhmeD EssaM"
#property link "[email protected]"
//--- input parameters
extern string moneymanagement="Money Management";
extern double Lots=0.01;
extern int StopLoss=50;
extern int TakeProfit=50;
extern int MagicNumber=58;
double x,y;
double SL,TP;
extern string entrylogics="Entry Logics";
extern int tenkansen=9;
extern int kijunsen=26;
extern int senkospan=52;
extern int shift=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
double point;
int digits;
int init()
{
if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("Ambush Ichi"+"\n"+"AhmeD EssaM");
//++++++++++++++ my first ++++++++++++++++++//
double Tenkan,Kijun,Senkoua,Senkoub;
Tenkan=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,0);
Kijun=iIchimoku(NULL,0,9,26,52,MODE_KIJUNSEN,0);
Senkoua=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANA,0);
Senkoub=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANB,0);
if(Senkoua>Senkoub)
{
x=Senkoua;
y=Senkoub;
}
else
{
x=Senkoub;
y=Senkoua;
}
/////////// BUY ////////////////
if (Close[0]>Tenkan&&Close[0]>Kijun&&Close[0]>x){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"ambush",MagicNumber,0,Blue);
}
}
/////////// SELL ////////////////
if (Close[0]<Tenkan&&Close[0]<Kijun&&Close[0]<y){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"ambush",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
وهو الكود الذى لا يسمح للاكسبيرت ان يدخل صفقات تبعد عن السحابة والخطوط مثلا بمسافة كبيرة
وسوف ابحث عنه الان واقوم بإضافته بإذن الله
- 15-07-2012, 03:16 AM #7
الف مبروك الاكسبريت
مثلا كم المسافة التي تريد تحديدها لكي يدخل الصفقات
تستطيع ان تضع متغير فيه الفرق بين x والاغلاق في حالة الشراء
وبين y والاغلاق في حالة البيع
وتضع شرط عليه ان يكون مقدارة اصغر او يساوي المسافة التي تحددها
ممكن اساعدك بترجمة الفكرة لو احتجت
- 15-07-2012, 09:21 PM #8
- 15-07-2012, 09:57 PM #9
الاكسبيرت لسه في خطاء لان الدخول في حالة الشراء يجب ان تغلق الشمعة وكذلك التنكن والكيجن فوق السحابة بس اللي انا اشوفه انه يقوم بعملية شراء على كل شمعة والعكس
- 15-07-2012, 10:11 PM #10
اذا كان بيكرر فتح عمليت شراء او عمليات بيع فوق بعضها عدل الكود حتى لايكرر
void TechnicalAnalysis2x1()
{
if ((Close[1] < iIchimoku(NULL, NULL,9,26,52,MODE_SENKOUSPANA,1)) && (Close[1] < iIchimoku(NULL, NULL,9,26,52,MODE_SENKOUSPANB,1)))
{
TechnicalAnalysis2x2();
}
}
void TechnicalAnalysis2x2()
{
if ((Close[2] > iIchimoku(NULL, NULL,9,26,52,MODE_SENKOUSPANA,2)) && (Close[2] > iIchimoku(NULL, NULL,9,26,52,MODE_SENKOUSPANB,2)))
{
- 15-07-2012, 10:32 PM #11
راح نحاول
- 15-07-2012, 10:57 PM #12
- 15-07-2012, 11:00 PM #13
- 16-07-2012, 03:29 AM #14
100 نقطة تمام
يصبح اضمن بكثير
- 16-07-2012, 04:42 AM #15
رد:اكسبيرتى الاول - شخبطة على الحيط
ده الكود شبه النهائى للاكسبيرت وهو يعمل على اى فريم ويشترى من فوق الاربع خطوط (التنكن والكيجن والاسبان اوب) ويبيع تحتهم
والهدف 50 والتارجت 50 ويمكن تعديلهم
كود PHP://+------------------------------------------------------------------+
//| Ambush.mq4 |
//| Copyright 2012, AhmeD EssaM |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, AhmeD EssaM"
#property link "[email protected]"
//--- input parameters
extern string moneymanagement="Money Management";
extern double Lots=0.01;
extern int StopLoss=50;
extern int TakeProfit=50;
extern int MagicNumber=58;
double x,y;
double SL,TP;
extern string entrylogics="Entry Logics";
extern int tenkansen=9;
extern int kijunsen=26;
extern int senkospan=52;
extern int shift=1;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
double point;
int digits;
int init()
{
if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("Ambush Ichi"+"\n"+"AhmeD EssaM");
//++++++++++++++ my first ++++++++++++++++++//
double Tenkan,Kijun,Senkoua,Senkoub;
Tenkan=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_TENKANSEN,shift);
Kijun=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_KIJUNSEN,shift);
Senkoua=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANA,shift);
Senkoub=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANB,shift);
/////////// BUY ////////////////
if (Close[0]>Tenkan&&Close[0]>Kijun&&Close[0]>Senkoub&&Close[0]>Senkoua){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"ambush",MagicNumber,0,Blue);
}
}
/////////// SELL ////////////////
if (Open[0]<Tenkan&&Open[0]<Kijun&&Open[0]<Senkoua&&Open[0]<Senkoub){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"ambush",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
//----
return(0);
}
//+------------------------------------------------------------------+