احد يشرح لي كيف عكس صفقات الاكسبرت:016::016:
Printable View
احد يشرح لي كيف عكس صفقات الاكسبرت:016::016:
غير sell الى buy من اعدادات الاكسبيرت ولاتنسى نسخه منه
وكيف اضيف استوب لوز
لاكسبرت
معليش نسيت ارفقه
هذا الاكسبرت اخي لو تكرمت ابغى منك تعكسه والله يجزاك الف خير
http://www.up-00.com/s3files/UVI32045.bmp
يطلع الي بالصوره لاكن موضوعك افضل يكون في هذا القسم لوجود المبرمجين المحترفين
https://forum.arabictrader.com/f31.html
اخوي هذا الاكسبيرت شغال معاك ؟؟
طيب ياخون اذا ابغى اعكس صفقات الاكسبرت بس من sell الي buy او في حاجات ثانية مثل askالي bid والسالب الي موجب
مثل ما تفضلت هناك امور اخري يجب عكسها بحيث تراعي التالي
Order Type Open Price Close Price
Buy Ask Bid
Sell Bid Ask
فلا يمكن الشراء عند ال Bid ولا اغلاق الشراء عند Ask انما يجب مراعات ان يكون الشراء عند ال Ask واغلاق صفقه الشراء عند Bid
وقس على ذلك امر البيع
الخطا في برمجه امر البيع ةالشراء ممكن ان يمكن الاكسبرت من العمل على حساب الديموا لكن لا يعمل على حساب حقيقي
لو سمحت اخي هذا الكود حست فيه ممكن تعكسه لي
int start()
{
//---- do we have an open order ?
bool haveOpen = false;
int myOrderType = 0;
int myOrderPos = 0;
for(int j=0;j<OrdersTotal();j++) // scan all orders and positions...
{
OrderSelect(j, SELECT_BY_POS);
if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == MagicNumber) || (OrderComment() == Name)) ) // only look if mygrid and symbol...
{
haveOpen = true;
myOrderType = OrderType();
myOrderPos = j;
}
}
double fastMA = iMA(NULL, 0, fastMAPeriod * ParamMult, 0, MODE_LWMA, PRICE_CLOSE, shift);
double slowMA = iMA(NULL, 0, slowMAPeriod * ParamMult, 0, MODE_SMA, PRICE_CLOSE, shift);
bool RsiUp = (iRSI(NULL, 0, RSIP1 * ParamMult, PRICE_CLOSE, shift) > RSICutoffL);
//and iRSI(p1, 1) > iRSI(p1, 2)
bool RsiDown= (iRSI(NULL, 0, RSIP1 * ParamMult, PRICE_CLOSE, shift) < RSICutoffS);
//and iRSI(p1, 2) > iRSI(p1, 1)
double Stoch0 = iStochastic(NULL, 0, stochP1*ParamMult, stochP2*ParamMult, stochP3*ParamMult, MODE_SMA, PRICE_CLOSE, MODE_MAIN, shift);
double Stoch1 = iStochastic(NULL, 0, stochP1*ParamMult, stochP2*ParamMult, stochP3*ParamMult, MODE_SMA, PRICE_CLOSE, MODE_MAIN, shift + 1);
double StochSig0 = iStochastic(NULL, 0, stochP1*ParamMult, stochP2*ParamMult, stochP3*ParamMult, MODE_SMA, PRICE_CLOSE, MODE_SIGNAL, shift);
bool StochUp = (Stoch0 > Stoch1);
// bool StochUp = (Stoch0 > StochSig0);
//and Stoch0 > Stoch1
//and Stoch0 >= StochHigh
bool StochDown = (Stoch0 < Stoch1);
// bool StochDown = (Stoch0 < StochSig0);
//and Stoch0 < Stoch1
//and Stoch0 <= StochLow
double MacdCurrent = iMACD(NULL, 0, MACDP1*ParamMult, MACDP2*ParamMult, MACDP3*ParamMult, PRICE_CLOSE, MODE_MAIN, shift);
double MacdPrevious = iMACD(NULL, 0, MACDP1*ParamMult, MACDP2*ParamMult, MACDP3*ParamMult, PRICE_CLOSE, MODE_MAIN, shift + 1);
double MacdSig0 = iMACD(NULL, 0, MACDP1*ParamMult, MACDP2*ParamMult, MACDP3*ParamMult, PRICE_CLOSE, MODE_SIGNAL, shift);
bool MacdUp = (MacdCurrent > 0);
// bool MacdUp = (MacdCurrent > MacdSig0);
//and MacdCurrent > MacdPrevious
//and MacdCurrent > 50
bool MacdDown = (MacdCurrent < 0);
// bool MacdDown = (MacdCurrent < MacdSig0);
//and MacdCurrent < MacdPrevious
//and MacdCurrent < 50
bool goLong = false;
if ( fastMA > slowMA && StochUp && RsiUp && MacdUp ) goLong = true;
bool goShort = false;
if ( fastMA < slowMA && StochDown && RsiDown && MacdDown ) goShort = true;
if ( haveOpen == true )
{
if ( goLong == true && myOrderType == OP_SELL )
{
OrderSelect(myOrderPos, SELECT_BY_POS);
int result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
}
if ( goLong == false && myOrderType == OP_BUY )
{
OrderSelect(myOrderPos, SELECT_BY_POS);
result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
}
}
// Print(Hour()," ",Minute());
bool rightHours=false;
// int currentHour = MathMod(Hour()+24-TimeOffsetToEST,24) ; // this does not work in backtesting
int currentHour = MathMod(TimeHour(iTime(NULL,PERIOD_H1,0))+24-TimeOffsetToEST,24) ; //
if (( currentHour >= 8 && currentHour < 24 ) || ( currentHour >= 2 && currentHour < 4 )) rightHours = true;
if ( haveOpen == false && rightHours )
{
if ( goLong )
{
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Ask-StopLoss*Point,Ask+TakeProfit*Point,Name,MagicNumb er,0,Green);
}
if ( goShort )
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,0,Bid+S topLoss*Point,Bid-TakeProfit*Point,Name,MagicNumber,0,Red);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
لوسمحت تقدر تقولي ايش الي ينعكس هنا
كود PHP:if ( goLong == true && myOrderType == OP_SELL )
اعكس هذي الاوامركود PHP:if ( goLong == false && myOrderType == OP_BUY )
ان شاء الله تحللك المشكله
لو سمحت تقدر تعكس لي هذا
وبالمناسبة عندي اسكربت يعكس الصفقات لاكن معرف له :016: