النتائج 1 إلى 5 من 5
- 20-01-2011, 11:17 AM #1
ارجو مساعدة بسيطة لانهاء برمجة اكسبيرت
السلام عليكم, اريد مساعدة بسيطة:-
الاكسبيرت ينظر للشمة المغلقة, و عليها يقوم بفتح اوردر شراء/بيع/او لا يفتح.
الاكسبيرت يفتح صفقة واحدة كل كاندل لان كود &&Time0!=Time[0] موجود في شروط الشراء والبيع ويعمل جيدا.
المشكلة كالتالي:-
الاكسبيرت لا يقوم بعمل Double, ضفت هذا الكود على اعتقاد انه المسؤول عن هذه العملية, اذا لم يكن هو فممكن اعرف ازاي اعمل Double?
كود PHP://----------------------------- Using Double For Buy Orders ----------------------------------------
int ant;
for(ant = OrdersTotal() - 1; ant >= 0; ant--)
{
if(OrderSelect(ant, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumberBuy)
{
if(OrderType()==OP_BUY)
{
if(OrderProfit() < 0.00)
{
Lots=Lots*2 ;
}
}
}
}
}
//------------------------------ End of Using Double For Buy Orders ---------------------------------
آخر تعديل بواسطة abdull1996 ، 20-01-2011 الساعة 11:25 AM
- 20-01-2011, 09:58 PM #2
رد: ارجو مساعدة بسيطة لانهاء برمجة اكسبيرت
للرفع
- 21-01-2011, 10:01 AM #3
رد: ارجو مساعدة بسيطة لانهاء برمجة اكسبيرت
غيرت كل شيء و جعلت الDouble يتحقق عند اغلاق الاوردر لوجود اشارة عكسية:
كود PHP://----------------------------- Closing Sell Orders--------------------------------------
int snt;
for(snt = OrdersTotal() - 1; snt >= 0; snt--)
{
if(OrderSelect(snt, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumberSell)
{
if(OrderType()==OP_SELL) // long position is opened
{
OrderClose(OrderTicket(),Lots,OrderClosePrice(),SlipPageClose,Red); // To be closed
if(OrderProfit() < 0.00 &&BuyTime0!=Time[0]) // To Calculate The Profit
{
NewLots=NewLots*Multiplier ;
OrderSend(Symbol(),OP_BUY,NewLots,Ask,SlipPage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"Abdu EA",MagicNumberBuy,0,Blue); //int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
BuyTime0=Time[0];
}
}
}
}
}
//------------------------------ End of Closing Sell Orders---------------------------------
- 21-01-2011, 01:42 PM #4
رد: ارجو مساعدة بسيطة لانهاء برمجة اكسبيرت
نظرا تاخير المساعدة, اضطررت للمحاولة الى ان توصلت الى هذا:-
كود PHP:int FindBuyProfit;
for(FindBuyProfit = OrdersHistoryTotal(); FindBuyProfit >= 0; FindBuyProfit--)
{
if(OrderSelect(FindBuyProfit, SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumberBuy)
{
if(OrderType()==OP_BUY)
{
double BuyProfit= OrderProfit();
}
}
}
}
- 21-01-2011, 04:42 PM #5
رد: ارجو مساعدة بسيطة لانهاء برمجة اكسبيرت
السلام عليكم, لقد حلت المشكلة السابقة, المشكلة الحالية تعود الى الDouble فالاكسبيرت يفعل Double بطريقة غريبة, يفتح صفقات باحجام عالية
كود PHP:if (BuyProfit>=0) {LastLot=LotsNormal;}
if (SellProfit>=0) {LastLot=LotsNormal;}
double DoubleLots=LastLot;
if (B1>0.2){
if(BuyProfit<0 &&Time0!=Time[0])
{
DoubleLots=DoubleLots*Multiplier ;
OrderSend(Symbol(),OP_SELL,DoubleLots,Bid,SlipPage,Bid+StopLoss*Point,Bid-TakeProfit*Point,"Abdu EA",MagicNumberSell,0,Red);
Time0=Time[0];
GetLastError( );
}
}