أخي ايضا شوف هاد الموضوع للاستاذ Ram22 مناسب تماما لموضوعك
https://forum.arabictrader.com/t137752.html?highlight=
Printable View
أخي ايضا شوف هاد الموضوع للاستاذ Ram22 مناسب تماما لموضوعك
https://forum.arabictrader.com/t137752.html?highlight=
و الله يا أخى ما أعرف كيف أشكرك على أهتمامك بسؤالى و البحث من أجله
صدقنى ألف شكر لك لن يكفي
أنا قرأت الموضوع فعلا شئ جميل و الأجمل إن أحد الأعضاء الكرام كان يسأل عن إمكانية تفعيل الإكسبيرت مع موقع آخر غير منتدانا و لكن مع الأسف لا توجد إجابة حيث أن هذا الأكسبيرت يقرأ التوصية من صفحة المنتدى بشروط معينة لن أتتطرق إليها لأنها موجوده بالموضوع الأصلى..........
على العموم جارى البحث عن طلبى و شكرا جزيلا لك على تعبك معى
سوف تقوم بعمل دالة لمعرفة صفقات البيع والشراء المفتوحه وإذا كان يوجد صفقة بيع وشراء يتم إغلاق الصفقات
مثال
سأقوم أولا بعمل دالة لحساب عدد الصفقات المفتوحه حسب نوعها
ثم دالة للبحث عن صفقات البيع والشراء لمعرفة رقم التيكيت للصفقهكود PHP:int orderscnt(int type)
{
int cnt;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
{
cnt++;
}
}
return(cnt);
}
ثم ستكون الشروطكود PHP:int GetTicketNumber(int type)
{
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
{
return(OrderTicket());
}
}
return(-1);
}
كود PHP:double ma=iMA(Symbol(),0,14,0,MODE_SMA,PRICE_CLOSE,1);
if(Close[1]>ma&&orderscnt(OP_BUY)>0&&orderscnt(OP_SELL)>0)
{
int ticket1=GetTicketNumber(OP_BUY);
int ticket2=GetTicketNumber(OP_SELL);
OrderCloseBy(ticket1,ticket2,Red);
}
السلام عليكم اخ مستر دولار
كيف سيكون الكود لهذ الشرط؟
قم بشراء المباشرفي حاله اذا كان عدد الوتات المفتوحه مثلا صفر او اثنين و ارتفع السعر 80 نقطه فوق الافتتاح اليومي والعكس في حاله البيع ..وكما قلت ان اتكلم عن شراء اوبيع مباشر وليس اوامر معلقه..
كنت قد حاولت بهذا لشكل ولكن لم يفتح اي عقد رغم عدم وجود اي خطلء
[ PHP] if (iHigh(Symbol(),PERIOD_D1,0)>=iOpen(Symbol(),PERIO D_D1,0)+Step1 )
{
double BuyPrice1=Ask;
double BuyTP1=BuyPrice1+Takeprofit1*Point*Q;
double BuySL1=BuyPrice1-Stoploss1*Point*Q;
double SellPrice1=Bid;
double SellTP1=SellPrice1-Takeprofit1*Point*Q;
double SellSL1=SellPrice1+Stoploss1*Point*Q;
int ticket1;
ticket1=OrderSend(Symbol(),OP_BUY,Lots1,NormalizeD ouble(BuyPrice1,Digits),3,BuySL1,BuyTP1,"",Magicnu mber3,0,Green);
while(ticket1<0){
ticket1=OrderSend(Symbol(),OP_BUY,Lots1,NormalizeD ouble(BuyPrice1,Digits),3,BuySL1,BuyTP1,"",Magicnu mber3,0,Green);Sleep(1000);
}
ticket1=OrderSend(Symbol(),OP_SELL,Lots1,Normalize Double(SellPrice1,Digits),3,SellSL1,SellTP1,"",Mag icnumber4,0,Red);
while(ticket1<0){
ticket1=OrderSend(Symbol(),OP_SELL,Lots1,Normalize Double(SellPrice1,Digits),3,SellSL1,SellTP1,"",Mag icnumber4,0,Red);Sleep(1000);
}}
return(0);
}[/PHP]
السلام عليكم اخ مستر دولار
كيف سيكون الكود لهذ الشرط؟
قم بشراء المباشرفي حاله اذا كان عدد الوتات المفتوحه مثلا صفر او اثنين و ارتفع السعر 80 نقطه فوق الافتتاح اليومي والعكس في حاله البيع ..وكما قلت ان اتكلم عن شراء اوبيع مباشر وليس اوامر معلقه..
او بصيغه اخرى
عندما يصل السعر الحالي فوق او تحت سعر الافتتاح اليومي 80 نقطه وكان عدد الوتات المفتوحه صفر مثلا
قم بالدخول بالبيع او الشراء المباشر وليس المعلق.
كنت قد حاولت بهذا لشكل ولكن لم يفتح اي عقد
كود PHP:if (iHigh(Symbol(),PERIOD_D1,0)>=iOpen(Symbol(),PERIOD_D1,0)+Step1 && Lotsvolumen()==0)
{
double BuyPrice1=Ask;
double BuyTP1=BuyPrice1+Takeprofit1*Point*Q;
double BuySL1=BuyPrice1-Stoploss1*Point*Q;
double SellPrice1=Bid;
double SellTP1=SellPrice1-Takeprofit1*Point*Q;
double SellSL1=SellPrice1+Stoploss1*Point*Q;
int ticket1;
ticket1=OrderSend(Symbol(),OP_BUY,Lots1,NormalizeDouble(BuyPrice1,Digits),3,BuySL1,BuyTP1,"",Magicnumber3,0,Green);
while(ticket1<0){
ticket1=OrderSend(Symbol(),OP_BUY,Lots1,NormalizeDouble(BuyPrice1,Digits),3,BuySL1,BuyTP1,"",Magicnumber3,0,Green);Sleep(1000);
}
ticket1=OrderSend(Symbol(),OP_SELL,Lots1,NormalizeDouble(SellPrice1,Digits),3,SellSL1,SellTP1,"",Magicnumber4,0,Red);
while(ticket1<0){
ticket1=OrderSend(Symbol(),OP_SELL,Lots1,NormalizeDouble(SellPrice1,Digits),3,SellSL1,SellTP1,"",Magicnumber4,0,Red);Sleep(1000);
}}
return(0);
}
جزاك الله خيرا أستاذنا الرائع
عدلت الاكسبيرت المرفق بالمطلوب وحدفت شرط الموفينج لتسهيل الباكتيست وللأسف لا يتم تنفيذ أمر closeby
للأسف أستاذي أنا مبتدئ جدا في البرمجة وهتقل عليك :75_75:
ولأني بعتمد على البرمجة البسيطة ببرنامج EA GENERATOR وحفظت تقريبا كل أكواده وبحاول أجمع أكبر قدر من الأكواد المعقدة وتدمج مع طريقة البرنامج ثم تخزن في الذاكرة لاستخدامها عند الحاجة
المطلوب فضلا لا أمرا أستاذي الغالي المراجعة والتصحيح ضمن الاكسبيرت أحسن طريقة للفهم :eh_s(7):
الاكسبيرت بالمرفقات
مشكور اخ جميل ولكن عندي بعض الملاحظات لوسمحت اعد قرأة المشاركه السابقه .
اولا اريد ان يقوم بالشراء بعد ان يكون السعر اللحظي فوق سعر الافتتاح على بعد 80 نقطه وان يكون عدد اللوتات المفتوحه مثلا تحقق 0 او اصغر اوتساوي 2
ثانيا انت كتبتهل هذا يعني السعر اللحظي؟ ولماذا لايكونكود PHP:Close[0]
هو السعر اللحظي ؟ وعلى ماذا يدل الصفر داخل الاقواس؟ وهل يمكن تغييره؟وماالفرق بينكود PHP:Open[0]
وكود PHP:Close[0]
؟كود PHP:Close(0)
كود PHP:Open[0] هو افتتاح سعر الشمعة ويكون ثابت
كود PHP:Close[0] تحل مكان Ask في حالة الشراء ومكان Bid في حالة البيع وتمثل السعر اللحظي وتكتبها بدلا من Ask / Bid
كود PHP:وجود 0 بين القوسين هو السعر اللحظي حتى تغلق الشمعة سيظل متحرك مع السعر أما اذا وضعت الرقم 1 فهذا يعني اغلاق الشمعة السابقة وهو رقم ثابت لايتغير لكون الشمعة أنتهت
إن شاء الله الأجابات واضحة وأن كانت مقلوبة بسبب اللغةكود PHP:ماكتبته لك هو مجرد مفتاح وعليك المتابعة بأضافة ماتريد الى الشروط مثلا if(Close[0]>=ahi) + 80 * Point
استاذ kirah بما انك ذكرت انك تستخدم هذا البرنامج فيا ريت تجاوبني على سؤالي في هذا الموضوع : https://forum.arabictrader.com/t138523-28.html
أستاذ أسامة
لو عندي إكسبيرت بيفتح مضاعفات 1- 2 -4 -6 - 8 وهكذا كل 20 نقطة مثلا والهدف أيضا 20 نقطة
بحيث مثلا فعل بيع من 130.00 والهدف 20 نقطة
ثم صعد أكثر وفعل بيع من 130.20 والهدف 20 نقطة
ثم صعد أكثر وفعل بيع من 130.40 والهدف 20 نقطة
وهكذا
كيف أجعل الإكسبيرت يغلق كل العمليات عندما يحقق العقد الأخير هدفه