شكراا علي الرد اما بخصوص موضوع ملفات ال dll في اي فولدر توضع هذه الملفات قبل استدعائها هل في libraries ام ماذا ؟
Printable View
الله يعطيك العافية ، مجهود يثنى عليه
بقي لي سؤالين أخرين لإكتمال الاكسبيرت وبشروط قمت بوضعها للدخول
1- كيف أضع كود لدخول الأب في حالة البيع بمجيك نمبر 111 وفق شروط الدخول التي وضعتها
2- واذا أرتفع السعرعند كل 30 نقطة عن نقطة دخول الأب كيف أقوم بوضع أوردر بيع للأبناء بمجيك نمبر 222 ، والعكس في الشراء.
هل هناك مثال لاكسبيرت كامل يحوي طلبي من ناحية الخروج والدخول معاً ، ودوري أقوم بتغير شروط الدخول والخروج ..
تحياتي لكم ..
بالنسبه للسؤال الأول فهي دالة وضع الأوامر فقط
بالنسبه لفتح أوامر التعزيز فسوف تقوم بعمل دالة لمعرفة سعر فتح آخر صفقة بيعكود PHP:
if(condition)
{
OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",111,0,Red);
}
ثم ستضع شروط فتح الصفقهكود PHP:
double LastOrderPrice(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==111||OrderMagicNumber()==222)
{
return(OrderOpenPrice());
}
}
return(0);
}
كود PHP:
if(Bid-LastOrderPrice(OP_SELL)>=30*Point)
{
OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",222,0,Red);
}
الملف المرفق 397312
الله يعطيك العافية ، شرح رائع يا أخي
أضفت جميع الأكواد المراد الحصول عليها، وإلى الأن لم أضع شرط الخروج ويظهر لي خطأ وهو :
1;41;C:\Program Files\JJJ\experts\#Logy_EA_.mq4;167:4;'IsFatherClo sed' - expression on global scope not allowed
2;99;C:\Program Files\JJJ\experts\#Logy_EA_.mq4;170:1;'}' - semicolon expected
علماً بأني حاولت بكتابة كود الخروج للأب في حالة البيع والشراء ولم أوفق وتظهر لي أخطاء مختلفة عن الخطأ السابق.
أريد وضع شرط الخروج للأب وهذا شرط خروجي :
if(SC_B<5000)OrderClose(OP_BUY);
if(SC_S<5000)OrderClose(OP_SELL);
وهنا ملف الاكسبيرت بدون وضع شرط الخروج
تحياتي لك ...
الملف المرفق 397312
كود://+------------------------------------------------------------------+ //| |
//| |
//| www.arabictrader.com/vb |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
extern int MaxTrades = 100;
extern double Lots = 1;
extern int StopLoss=0;
extern int TakeProfit=0;
extern int MagicNumber=2533;
datetime Time0;
double point;
int digits;
int init()
{
Time0=Time[0];
if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
return(0);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderscnt(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+
int start()
{
double buy_aa=iCustom(NULL,0,”PPP",0,1);
double sell_aa=iCustom(NULL,0,”PPP",1,1);
double buy_bb=iCustom(NULL,0,”NNN",3,1);
double sell_bb=iCustom(NULL,0,”NNN",2,1);
double SC_B=iCustom(NULL,0,”MMM",0,0);
double SC_S=iCustom(NULL,0,"MMM",1,0);
double SL,TP;
if (buy_bb<5000&&buy_aa>sell_aa&&Time0!=Time[0]){
if(orderscnt()<MaxTrades){
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,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",111,0,Blue);
if(Bid-LastOrderPrice(OP_SELL)<=30*Point)
{
OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",222,0,Red);
}
PlaySound("Alert.wav");
Time0=Time[0];
}
}
if (sell_bb<5000&&sell_aa>buy_aa&&Time0!=Time[0]){
if(orderscnt()<MaxTrades){
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,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",111,0,Red);
if(Bid-LastOrderPrice(OP_SELL)>=30*Point)
{
OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",222,0,Red);
}
PlaySound("Alert.wav");
Time0=Time[0];
}
}
}
double LastOrderPrice(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==111||OrderMagicNumber()==222)
{
return(OrderOpenPrice());
}
}
return(0);
}
bool IsFatherClosed()
{
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==111)
{
return(false);
}
}
return(true);
}
void CloseOrder(int Magic)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,3);
if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
if(IsFatherClosed())
{
CloseOrder(222)
}
//+---------------------------------------------------------------------------------+
لديك خطأ في الدالة iCustom
الصحيح أن تجعل إسم المؤشر بين علامتي تنصيص " "كود PHP:
double buy_aa=iCustom(NULL,0,”PPP",0,1);
الصحيح
ثانيا وضعك للشرطكود PHP:
double buy_aa=iCustom(NULL,0,"PPP",0,1);
فلا يمكنك وضع أوامر خارج الداله start يجب أن يكون هاذ الشرط داخل الداله start ونسيت وضع ; بعد تنفيذ الأمر بداخل الشرطكود PHP:
if(IsFatherClosed())
{
CloseOrder(222)
}
راجع كود الإكسبرت وإكتبه بشكل صحيح
الله يعطيك العافية ، مجهود رائع
إلى الأن لم أستطع وضع الأكواد في الاكسبيرت بطريقة صحيحة ، وعند وضع بعض الأكواد التالية تظهر لي أخطاء كثيرة
أريد وضع لمساتك في الاكسبيرت لوضع الأكواد بطريقة صحيحة.
الاكسبيرت:
كود://+------------------------------------------------------------------+ //| |
//| |
//| www.arabictrader.com/vb |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
extern int MaxTrades = 100;
extern double Lots = 1;
extern int StopLoss=0;
extern int TakeProfit=0;
extern int MagicNumber=2533;
datetime Time0;
double point;
int digits;
int init()
{
Time0=Time[0];
if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
return(0);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderscnt(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+
int start()
{
double buy_aa=iCustom(NULL,0,"PPP",0,1);
double sell_aa=iCustom(NULL,0,"PPP",1,1);
double buy_bb=iCustom(NULL,0,"NNN",3,1);
double sell_bb=iCustom(NULL,0,"NNN",2,1);
double SC_B=iCustom(NULL,0,"MMM",0,0);
double SC_S=iCustom(NULL,0,"MMM",1,0);
double SL,TP;
if (buy_bb<5000&&buy_aa>sell_aa&&Time0!=Time[0]){
if(orderscnt()<MaxTrades){
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,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",111,0,Blue);
if(Bid-LastOrderPrice(OP_SELL)<=30*Point)
{
OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",222,0,Red);
}
PlaySound("Alert.wav");
Time0=Time[0];
}
}
if (sell_bb<5000&&sell_aa>buy_aa&&Time0!=Time[0]){
if(orderscnt()<MaxTrades){
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,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",111,0,Red);
if(Bid-LastOrderPrice(OP_SELL)>=30*Point)
{
OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",222,0,Red);
}
PlaySound("Alert.wav");
Time0=Time[0];
}
}
}
double LastOrderPrice(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==111||OrderMagicNumber()==222)
{
return(OrderOpenPrice());
}
}
return(0);
}
bool IsFatherClosed()
{
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==111)
{
return(false);
}
}
return(true);
}
void CloseOrder(int Magic)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,3);
if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
//+---------------------------------------------------------------------------------+
أريد وضع الأكواد التالية في الاكسبيرت بصورة صحيحة مع عدم وجود أي أخطاء
كود:void CloseAll(){
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderProfit()>0)
{
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3*Q);
}
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3*Q);
}
}
}
}
كود:bool IsFatherClosed(){
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==111)
{
return(false);
}
}
return(true);
}
كود:void CloseOrder(int Magic){
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,3);
if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
كود:if(IsFatherClosed()){
CloseOrder(222)
}
كود:double LastOrderPrice(int type){
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==111||OrderMagicNumber()==222)
{
return(OrderOpenPrice());
}
}
return(0);
}
وهنا توجد ملاحظة لكود التالي ، وهي يكون الكود هذا في وضع البيع فقط ؟ اذا كان كذلك فأحتاج إلى كود الشراء
كود:if(Bid-LastOrderPrice(OP_SELL)>=30*Point) {
OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",222,0,Red);
}
تحياتي لك .....
السلام عليكم ورحمة الله وبركاته
هل توجد نسخة مفتوحة لمؤشر الوافى
ولكن لهذه النسخة حيث ان هناك نسخة اقدم منها
الملف فى المرفقات
وجزاكم الله خيرا
https://forum.arabictrader.com/newat...anager&values=[t]=37612&contenttypeid=1&poststarttime=1391471034&po sthash=f3aba307d84b65e0ccc701fcbe1f296d&insertinli ne=1
السلام عليكم
ارجو المساعدة
ماهو العمل وكيف تكون البرمجة على هذا البرنامج
كما موضح من الصورة
ارجو المساعدة وشكرا
اخي العزيز ماستر دولار لقد حاولت استخراج القيم ب comment من الداله icustom ولكني لم انجح في ان الاحظ شيئا مميز مجرد ارقام للاعلي وللادني للشموع
فمثلا مؤشر هيكن اشي اريد ان اعرف عندما تتحول الشموع للون الاحمر او الازرق فلتكن مثلا function وظيفتها عندما يتحول للازرق تجعل المتغير direction=1
واذا احمر تجعل المتغير direction=2 والاهم من كل شئ هو ليس كيف كتبت الfunction ولكن هو كيف استطعت ان تستخرج القيم المميزه التي تتاكد انها ستظهر في الحاله 1 او 2 من المؤشر نفسه
وعليكم السلام ورحمة الله وبركاته
هل قرأت هذا الموضوع
https://forum.arabictrader.com/t189304.html
الإختلاف ليس كبير وسوف أشرحه بالتفصيل بإذن الله
الملف المرفق 397533
لك جزيل الشكر أستاذ أسامة
لقد وجدت المؤشر
وهذه نسخة مفتوحة فى المرفقات
بارك الله فيك
https://forum.arabictrader.com/newat...anager&values=[t]=37612&contenttypeid=1&poststarttime=1391519050&po sthash=82aea8e0368b8617fcc2733089e29b45&insertinli ne=1