ومرفق التمبليت بس احذف امتداد txt
منه
شكرا
Printable View
ومرفق التمبليت بس احذف امتداد txt
منه
شكرا
مثال
20 هو عدد مرات التنبيه وبين كل تنبيه سوف يتوقف 1000 ملي ثانيه = 1 ثانيهكود PHP:{
ticket=OrderSend(Symbol(),OP_BUY,Lot,b,3,bsl,bt,"",MagicNumber,0,Green );
int AlertNumber;
while(AlertNumber<20){
Alert("Buy Order ");
AlertNumber++;
Sleep(1000);
}
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
مشكوراخ اسامه قمت بدمج اكواد الاستوب المتحرك والايفن كما قلت ولكن لاحظت ان نتائج الباكتيست تختلف عما قبل الدمج رغم عدم وجود اخطاء.
اما بالنسبه لدمج اكواد اداره المال فقد حاولت ولكن لااعرف اذا كنت على صح او لا ........في المرفقات
جزاك الله كل خير اخ اسامه وجعلك من اهل الجنه ان شاء الله
بالنسبه لكود المضاعفات قمت باضافته ولكن لايعمل حسب الفكره فهو لايقوم بفتح اومر معلقه عكس الاوامر المفعله لااعرف اين الخطاء .
بالنسبه لكود المضاعفات قمت باضافته ولكن لايعمل حسب الفكره فهو لايقوم بفتح اومر معلقه عكس الاوامر المفعله لااعرف اين الخطاء .
كمت قلت الفكره هوفتح اوامر معلقه يوميا عند فتخ الساعه 17 ولاتقفل ولا تحذف هذه الاوامر الا نهايه الاسبوع فاذا تفعل امر ما يقوم كود المضاعفات بفتح عقود معاكسه مضاعفه و ان تبقى ايضا الى نهايه الاسبوع فاذا تفعلت هذه العقود المعاكسه يقوم كوذ المضاعفات مره اخرى بفتح عقود معاكسه مضاعفه وهكذا يبقى يضاعف الى ان يصل الى المضاعفه الثالثه او الرابعه او الخامسه حسب تغيرالضبط اوالتحكم في اقصى عدد للمضاعفات.
أ اسامه
طبعا انت فاهم قصدى ، وهو :
إنى أضع المؤشر بالتمبيلت على اكثر من شركه فى نفس الوقت ، ونصنع مؤشر يجيب خلاصه النتائج من هذه الشركات
يعنى مثلا لو وضعناه على خمس شركات ، وفى 3 شركات أوضح لى شراء اليورو مثلا بنسبه 7 الى 5 وفى الشركتين الباقيتين أظهر شراء اليورو بنسبه 6 الى 4 ، يظهر لى المؤشر متوسط هذه النتائج للخمس شركات وتكون بنسبه 33/5 الى 23/5
واضح كده ؟
شكرا مقدما
مستر دولار الفاضلتحيه وبعد جزاك الله كل خير سوالي بسيط
حيث وضعت شروط كثيره لدخول الصفقه ووضعت بينها اشاره او or
هل هكذا صحيح ام يجب وضع MyBuyRealOrdersTotal(MagicNumber)==0 بعد كل شروط ام يجب في النهايه
كود PHP:if(r3>r8&&r10>r11&&r6<=r2&&r5>r1&&r7>r9 &&n5<=a5&&n7<=a7&&n9<=a9
&&n11<=a11&&n13<=a13&&n15<=a15 &&n17<=a17&&n19<=a19&&n21<=a21
&&n23<=a23&&n25<=a25&&n27<=a27 &&n29<=a29&&n32<=a32&&n34<=a34&&n36<=a36&&n38<=a38
&&n40<=a40&&n42<=a42&&n44<=a44&&n46<=a46 &&n30>=a30&&MyBuyRealOrdersTotal(MagicNumber)==0 ||
r3>r8&&ra10>ra11&&ra6<=ra2&&ra5>ra1 &&na5<=aa5&&na7<=aa7&&na9<=aa9
&&na11<=aa11&&na13<=aa13&&na15<=aa15 &&na17<=aa17&&na19<=aa19&&na21<=aa21
&&na23<=aa23&&na25<=aa25&&na27<=aa27 &&na29<=aa29&&na30>=aa30
&&MyBuyRealOrdersTotal(MagicNumber)==0||
v4>v3&&rx10>rx11&&rx6<=rx2&&rx5>rx1&&rx7>rx9
&&nx5<=ax5&&nx7<=ax7&&nx9<=ax9
&&nx11<=ax11&&nx13<=ax13&&nx15<=ax15
&&nx17<=ax17&&nx19<=ax19&&nx21<=ax21
&&nx23<=ax23&&nx25<=ax25&&nx27<=ax27
&&nx29<=ax29&&nx32<=ax32&&nx34<=ax34&&nx36<=ax36&&nx38<=ax38
&&nx40<=ax40&&nx42<=ax42&&nx44<=ax44&&nx46<=ax46&&
nx30>=ax30&&MyBuyRealOrdersTotal(MagicNumber)==0||
v4>v3&&rxa10>rxa11&&rxa6<=rxa2&&rxa5>rxa1
&&nxa5<=axa5&&nxa7<=axa7&&nxa9<=axa9
&&nxa11<=axa11&&nxa13<=axa13&&nxa15<=axa15
&&nxa17<=axa17&&nxa19<=axa19&&nxa21<=axa21
&&nxa23<=axa23&&nxa25<=axa25&&nxa27<=axa27
&&nxa29<=axa29&&nxa30>=axa30&&MyBuyRealOrdersTotal(MagicNumber)==0
)//1
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,b,3,bsl,bt,"",MagicNumber,0,Green );
هل هذا صحيج ام ان هناك خطا قاتل بحيث الاكسبيرت على الباك تيست لا يفتح ولا صفقه علما انه يفتح صفقات لدى عمل باك تيست لاحد الشروط
وشكرا مستر دولار حيث انني بدات من الصفر وبفضل الله ومساعدتك انا حاليا استطيع البرمجه بشكل جيد وقدنا الله ان ترد بعض الخدمات التي تقدمها لنا
اسف مستر دولار على كثر الاسئله
فكرت انه ممكن ان اضعل كل شرط بشكل منفصل قد يكون افضل من وضع اشاره OR كما في الكود المرفق هل هذا اصح ام اهناك طريقه اخرى واعتذر على كثر الاسئله
كود PHP:if(r3>r8&&r10>r11&&r6<=r2&&r5>r1&&r7>r9 &&n5<=a5&&n7<=a7&&n9<=a9
&&n11<=a11&&n13<=a13&&n15<=a15 &&n17<=a17&&n19<=a19&&n21<=a21
&&n23<=a23&&n25<=a25&&n27<=a27 &&n29<=a29&&n32<=a32&&n34<=a34&&n36<=a36&&n38<=a38
&&n40<=a40&&n42<=a42&&n44<=a44&&n46<=a46 &&n30>=a30&&MyBuyRealOrdersTotal(MagicNumber)==0
)//1
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,b,3,bsl,bt,"BUY51",MagicNumber,0,Green );
int AlertNumber;
while(AlertNumber<20){
Alert("Buy Order ");
AlertNumber++;
Sleep(5000);
}
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
if(
r3>r8&&ra10>ra11&&ra6<=ra2&&ra5>ra1 &&na5<=aa5&&na7<=aa7&&na9<=aa9
&&na11<=aa11&&na13<=aa13&&na15<=aa15 &&na17<=aa17&&na19<=aa19&&na21<=aa21
&&na23<=aa23&&na25<=aa25&&na27<=aa27 &&na29<=aa29&&na30>=aa30
&&MyBuyRealOrdersTotal(MagicNumber)==0
)//1
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,b,3,bsl,bt,"BUY151",MagicNumber,0,Green );
while(AlertNumber<20){
Alert("Buy Order ");
AlertNumber++;
Sleep(5000);
}
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
if(v4>v3&&rx10>rx11&&rx6<=rx2&&rx5>rx1&&rx7>rx9
&&nx5<=ax5&&nx7<=ax7&&nx9<=ax9
&&nx11<=ax11&&nx13<=ax13&&nx15<=ax15
&&nx17<=ax17&&nx19<=ax19&&nx21<=ax21
&&nx23<=ax23&&nx25<=ax25&&nx27<=ax27
&&nx29<=ax29&&nx32<=ax32&&nx34<=ax34&&nx36<=ax36&&nx38<=ax38
&&nx40<=ax40&&nx42<=ax42&&nx44<=ax44&&nx46<=ax46&&
nx30>=ax30&&MyBuyRealOrdersTotal(MagicNumber)==0
)//1
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,b,3,bsl,bt,"BUY52",MagicNumber,0,Green );
while(AlertNumber<20){
Alert("Buy Order ");
AlertNumber++;
Sleep(5000);
}
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
طريقتك خاطئه فلا يوجد كود بهذه الطريقه
التصحيحكود PHP:OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-(TrailingStop1*Point||TrailingStop2*Point||TrailingStop3*Point||TrailingStop4*Point),Digits),OrderTakeProfit(),0,Blue);
كود PHP:void MoveTrailingStop()
{
double TrailingStop;
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&(OrderMagicNumber()==Magicnumber1||OrderMagicNumber()==Magicnumber2
||OrderMagicNumber()==Magicnumber3||OrderMagicNumber()==Magicnumber4))
{
if(OrderMagicNumber()==Magicnumber1)TrailingStop=TrailingStop1;
else if(OrderMagicNumber()==Magicnumber2)TrailingStop=TrailingStop2;
else if(OrderMagicNumber()==Magicnumber3)TrailingStop=TrailingStop3;
else if(OrderMagicNumber()==Magicnumber4)TrailingStop=TrailingStop4;
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStop*Point,Digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*Point,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(Bid-TrailingStop*Point,Digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop,Digits),OrderTakeProfit(),0,Blue);
}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingStop*Point,Digits)
<NormalizeDouble(OrderOpenPrice()-TrailingStop*Point,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)>(NormalizeDouble(Ask+TrailingStop*Point,Digits)))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*Point,Digits),OrderTakeProfit(),0,Red);
}
}
}
}
}
}
سوف يضع الأوامر المعلقه بعد أن تغلق الصفقه التي فتحت
إذا أردت أن تفتح الصفقه مباشرة فيجب أن تبحث في الصفقات المفتوحه وليس الصفقات المغلقهكود PHP:int LastOrdertype(){
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
int t=OrderType();
if(OrderMagicNumber()==Magicnumber||OrderMagicNumber()==Magicnumber1||OrderMagicNumber()==Magicnumber2
&&OrderSymbol()==Symbol()&&OrderType()<=OP_SELL){
return(t);
}
}
return(2);
}
أيضا يجب أن تراعي مشكله تداخل الصفقات وتجد طريقه لحلها فأنت تفتح أكثر من صفقه كلما جاء توقيت الساعه المعينه وهذا قد يؤثر على طريقة عمل المضاعفات
أيضا بالنسبه للأمر المعلق العكسي الرئيسي عندما يتفعل أحد الأمرين هل سوف تحذف الأمر الآخر حتى تضع المضاعفات أم ستتركه يتفعل
كل هذه الأمور يجب أن تأخذها في عين الإعتبار مع الشروط