النتائج 9,706 إلى 9,720 من 10284
الموضوع: موضوع مخصص للأسئلة البرمجية
- 30-10-2019, 09:46 PM #9706
نفس الإجابة كنت قد حصلت عليها من الأخ حمزة...ولكن قلت نتأكد منك لعل وعسى بحل للمشكلة.
بس ممكن توضحوا لي كيف يقوم الاكسبيرت بفتح صفقات على بيانات حركة الشموع السابقة ومتابعة الربح والخسارة نقطة نقطة، هذا يدل على أن بيانات السعر موجودة على الشارت من أجل أن يمر
الاكسبيرت عليها ويفتح ويغلق الصفقات ويتابع الربح بداخل الشموع نقطة نقطة ان لم يكن تكة تكة.. يمكن تصححوا لي أن كنت مخطئ أو تفسروا لي أن كان هناك التباس في الامر؟آخر تعديل بواسطة Sakkar ، 30-10-2019 الساعة 09:52 PM
- 31-10-2019, 12:53 AM #9707
- 31-10-2019, 12:42 PM #9708السلام عليكم
الله يعطيكم العافيه جميعا
سؤالي اذا كان هنالك امر معلق وابتعد عنه سعر الحالي بنقاط معينه هل يمكن اغلاقه بكود معين او باضافه ع امر نفسه
مثال وضعت امر ع 1.300 وابتعد عنه 1.350 فيحذف امر معلق واذا بقي ما بين سعرين يبقى مفعل ؟؟
وشكرا لكم جميعا
- 31-10-2019, 12:46 PM #9709
- 31-10-2019, 12:59 PM #9710
انا ايضا ابحث عن اكسبيرت مشابه
- 31-10-2019, 04:32 PM #9711
- 31-10-2019, 04:40 PM #9712
عندما نستعمل اكسبيرت من الطبيعي اما نترك الحاسوب مفتوح 24/24 وطوال الاسبوع او نستاجر vps لان لكي يشتغل الاكسبيرت على طول يجب ان تكون المنصة مفتوحة على طول بالنسبة لمنصة الميتاتريدر تحتفظ في قاعدة البيانات فقط ب الافتتاح والاغلاق لا تحتفظ بالتكات ابدا لهذا لا نقدر على استدعاء التيكات لشموع الماضية لان المنصة لم تحتفظ بها سواءا اردنا استعملها في مؤشر او اكسبيرت ....اذا اردت التيك شارت لاي زوج انصحك بالاستعانة اما ب ctrader او ninjatrader
- 31-10-2019, 06:09 PM #9713
الفكرة هو ان نحدد حجم الربح في الحساب لزوج معين بدالة account_profit ثم اذا كان حجم الربح يتجاوز مثلا 100 دولار نقوم بتفعيل التريلينغ ستوب لصفقات مع الاحتفاظ بالتيك سايز الخاص بها يعني رقمها لاننا نحتاجها لكي نعلم اذا اذا ضرب ستوب التريلينغ ستوب نغلق كل الصفقات (هذه طريقة من الطرق)
كود PHP:#property copyright "Copyright 2019,HamzaGhennami Software Corp."
#property version "1.00"
#property strict
extern int Account_Profit=100;
extern int TrailAmount=10;
double pips=0;
int Ticket[],Size=1,Index=0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
ArrayResize(Ticket,Size);
double ticksize=MarketInfo(Symbol(),MODE_TICKSIZE);
if(ticksize==0.00001 || ticksize==0.001)
pips=ticksize*10;
else pips=ticksize;
return(0);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if(Get_Account_Profits()>Account_Profit)AdjustTrail();
Check_Ticket();
if(OpenOrdersThisPairBuy()==0 && OpenOrdersThisPairSell()==0){ArrayFree(Ticket);Size=1;Index=0;ArrayResize(Ticket,Size);}
}
//+------------------------------------------------------------------+
double Get_Account_Profits(){
double Profits=0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderType()<2 && OrderSymbol()==Symbol())
Profits+=OrderProfit();
}
return(Profits);
}
//+------------------------------------------------------------------+
void AdjustTrail()
{
for(int b=OrdersTotal()-1;b>=0;b--)
{
if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY)
if(OrderStopLoss()<NormalizeDouble(Bid-TrailAmount*pips,Digits) || OrderStopLoss()==0){
if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-(TrailAmount*pips),Digits),OrderTakeProfit(),0,CLR_NONE))
Print("error modifying buy order ",GetLastError());
Save_Ticket(OrderTicket());}
}
for(int s=OrdersTotal()-1;s>=0;s--)
{
if(OrderSelect(s,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol() && OrderType()==OP_SELL)
if(OrderStopLoss()>NormalizeDouble(Ask+TrailAmount*pips,Digits) || OrderStopLoss()==0){
if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+(TrailAmount*pips),Digits),OrderTakeProfit(),0,CLR_NONE))
Print("error modifying sell order ",GetLastError());
Save_Ticket(OrderTicket());}
}
}
//+-------------------------------------------------------------------+
void Save_Ticket(int T){
int Total=0;
for(int i=0;i<ArraySize(Ticket);i++){
if(T!=Ticket[i])Total++;
}
if(Total==ArraySize(Ticket)){Ticket[Index]=T;Size++;Index++;ArrayResize(Ticket,Size);}
}
//+-------------------------------------------------------------------+
void Check_Ticket(){
for(int i=0;i<ArraySize(Ticket);i++){
if(Ticket[i]!=0 && !OrderSelect(Ticket[i],SELECT_BY_TICKET))Close_Trades();
}
}
//+-------------------------------------------------------------------+
void Close_Trades(){
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderType()==OP_BUY && Symbol()==Symbol()){
if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,clrGreen))printf("Failure To Close The Order",GetLastError());}
else if(OrderType()==OP_SELL && Symbol()==Symbol())
if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,clrRed))printf("Failure To Close The Order",GetLastError());
}
}
//+-------------------------------------------------------------------+
int OpenOrdersThisPairBuy()
{
int total=0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))Print("error Selecting order ",GetLastError());
if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
total++;
}
return (total);
}
//+-------------------------------------------------------------------+
int OpenOrdersThisPairSell()
{
int total=0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))Print("error Selecting order ",GetLastError());
if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
total++;
}
return (total);
}
//+-------------------------------------------------------------------+
- 31-10-2019, 06:20 PM #9714
الطريقة الاخرى بمقارنة عدد الصفقات قبل وبعد ضرب ستوب التريلينغ ستوب حاول تعدل على الكود او تضيف حسب مبتغاك
كود PHP:#property copyright "Copyright 2019,HamzaGhennami Software Corp."
#property version "1.00"
#property strict
extern int Account_Profit=100;
extern int TrailAmount=10;
double pips=0;
int Trades=0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
double ticksize=MarketInfo(Symbol(),MODE_TICKSIZE);
if(ticksize==0.00001 || ticksize==0.001)
pips=ticksize*10;
else pips=ticksize;
return(0);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if(Get_Account_Profits()>Account_Profit)AdjustTrail();
if(OpenOrdersThisPairBuy()==0 && OpenOrdersThisPairSell()==0)Trades=0;
if(OpenOrdersThisPairBuy()+OpenOrdersThisPairSell()<Trades)Close_Trades();
}
//+------------------------------------------------------------------+
double Get_Account_Profits(){
double Profits=0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderType()<2 && OrderSymbol()==Symbol())
Profits+=OrderProfit();
}
return(Profits);
}
//+------------------------------------------------------------------+
void AdjustTrail()
{
for(int b=OrdersTotal()-1;b>=0;b--)
{
if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY)
if(OrderStopLoss()<NormalizeDouble(Bid-TrailAmount*pips,Digits) || OrderStopLoss()==0){
if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-(TrailAmount*pips),Digits),OrderTakeProfit(),0,CLR_NONE))
Print("error modifying buy order ",GetLastError());
if(OpenOrdersThisPairBuy()+OpenOrdersThisPairSell()>Trades)Trades=OpenOrdersThisPairBuy()+OpenOrdersThisPairSell();}
}
for(int s=OrdersTotal()-1;s>=0;s--)
{
if(OrderSelect(s,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol() && OrderType()==OP_SELL)
if(OrderStopLoss()>NormalizeDouble(Ask+TrailAmount*pips,Digits) || OrderStopLoss()==0){
if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+(TrailAmount*pips),Digits),OrderTakeProfit(),0,CLR_NONE))
Print("error modifying sell order ",GetLastError());
if(OpenOrdersThisPairBuy()+OpenOrdersThisPairSell()>Trades)Trades=OpenOrdersThisPairBuy()+OpenOrdersThisPairSell();}
}
}
//+-------------------------------------------------------------------+
void Close_Trades(){
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderType()==OP_BUY && Symbol()==Symbol()){
if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,clrGreen))printf("Failure To Close The Order",GetLastError());}
else if(OrderType()==OP_SELL && Symbol()==Symbol())
if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,clrRed))printf("Failure To Close The Order",GetLastError());
}
}
//+-------------------------------------------------------------------+
int OpenOrdersThisPairBuy()
{
int total=0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))Print("error Selecting order ",GetLastError());
if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
total++;
}
return (total);
}
//+-------------------------------------------------------------------+
int OpenOrdersThisPairSell()
{
int total=0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))Print("error Selecting order ",GetLastError());
if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
total++;
}
return (total);
}
//+-------------------------------------------------------------------+
- 31-10-2019, 08:32 PM #9715
- 31-10-2019, 08:58 PM #9716
كل العمل سيكون يدور حول loop تخص الصفقات المعلقة والمفتوحة فقط زد على ذالك متغيرات اللي بدك
كود PHP:for(int i=OrdersTotal()-1; i>=0; i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))Print("error Selecting order ",GetLastError());
if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
//****************************************************************************
}
- 31-10-2019, 09:00 PM #9717
- 31-10-2019, 09:59 PM #9718
لا اريد المقاطعة لكن هل توجد طريقة لعمل اكسبيرت يقوم بتحديد التيك برفيل عن الطريق السعر وليس النقاط لصفقات مفتوحة ( المفعلة و ليس المعلقة ) سابقا فغير لها سعر التيك بروفيل مثلا انا فاتح يدويا 20 صفقة شراء على زوج واحد كيف لي ان احدد اتوماتكيا انو يكون الغلق على سعر 1.15200 لكل عمليات الشارء ونفس الشي للبيع ان تغلق جميع الصفقات المفعلة المفتوحة وليس المعلقة.
يحتوي الاكسبيرت مايلي :
سعر وليس نقاط TP_SELL : 1.10540
سعر وليس نقاط TP_Buy : 1.11540
فقط.......
تحياتي
- 31-10-2019, 11:12 PM #9719
لقد وجدت اكسبيرت لمستر دولار يضع هدف لكل صفقات BuyTakeProfit الهدف لجميع صفقات لكن يوجد مشكل في وضع هدف لصفقات sell فهو يضع SellTakeProfit السعر المحدد كستوب لوز لصفقات buy وليس هدف لجميع صفقات sell
كود PHP:extern int Ticket=0;
extern string S1=" Set Target As Price";
extern double BuyTakeProfit=0;
extern double SellTakeProfit=0;
extern string S2=" Set Trailing For Orders";
extern int TrailingDistance=0;
double point;
int digits;
int init()
{
if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
return(0);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+
int start()
{
Comment("Programmed by MR.dollar"+"\n"+"ãäÊÏì ÇáãÊÏÇæá ÇáÚÑÈí"+"\n"+"www.arabictrader.com/vb");
if(TrailingDistance>0)MoveTrailing();
//////////////////////////////////////
//////////////////////////////////////////////////
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&(OrderTicket()==Ticket||Ticket==0)){
int tick=OrderTicket();int type=OrderType();double take=OrderTakeProfit();double open=OrderOpenPrice();
if(take!=BuyTakeProfit&&BuyTakeProfit!=0&&type==OP_BUY){
OrderModify(tick,OrderOpenPrice(),OrderStopLoss(),BuyTakeProfit,0,0);}
if(take!=SellTakeProfit&&SellTakeProfit!=0&&type==OP_SELL){
OrderModify(tick,OrderOpenPrice(),OrderStopLoss(),SellTakeProfit,0,0);
}
}
}
}
void MoveTrailing()
{
for(int cnt=0;cnt<=OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
int tick1=OrderTicket();double open1=OrderOpenPrice();int type1=OrderType();double stop=OrderStopLoss();double prof=OrderTakeProfit();
if(type1<=OP_SELL&&OrderSymbol()==Symbol()&&(tick1==Ticket||Ticket==0))
{
if(type1==OP_BUY)
{
if(TrailingDistance>0)
{
if(((MathAbs(NormalizeDouble(stop,digits)-NormalizeDouble(Bid,digits)))/point!=TrailingDistance)||(stop==0))
{
OrderModify(tick1,open1,NormalizeDouble(Bid-TrailingDistance*point,digits),prof,0,Blue);
}
}
}
else
{
if(TrailingDistance>0)
{
if(((MathAbs(NormalizeDouble(stop,digits)-NormalizeDouble(Ask,digits)))/point!=TrailingDistance)||(stop==0))
{
OrderModify(tick1,open1,NormalizeDouble(Ask+TrailingDistance*point,digits),prof,0,Red);
}
}
}
}
}
}
- 01-11-2019, 12:57 AM #9720
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM