اقتباس:
المشاركة الأصلية كتبت بواسطة سمير محمد ارمان
السلام عليكم اخى الكريم
لو ممكن توضيح اكثر ماهو hiden ts
وماهى المشكله عندك ممكن استطيع المساعده
تحياتى لك
سأوضح ذلك اخي الكريم
في trailing stop العادي يستعمل ال stop loss لغلق الصفقة اما في ال trailing stop hiden لا يستعمل ال stop loss يستعمل متغير يوافق ال stoploss العادي في trailing stop العادي
و الهدف من ال hiden trailing stop هو انه يمكنك من وضع trailing stop بقيم صغيرة جدا مثلا نقطة واحدة
و من مالمعروف أن اغلب شركات الفوركس لا تسمح ب stop loss قيمته اقل من 10 نقاط
و الخلاصة من ذلك بال trailing stop العادي ادنى قيمة له هي 10 نقاط لانه يستعمل stop loss
أما hiden trailing stop ليس له قيمة دنيا
حاولة من قبل بناء كود hiden trailing stop لكنه لم تنجح معي
هذا هو الكود
اتمنى ان تتمكن من مساعدتي لأني اكثر من اسبوع و انا احاول من دون جدوة
//__________________________________________________ __________________________________________________ ____________________//
input int TrailingStop=10;
double stoplossbuy;
double stoplosssell;
//__________________________________________________ __________________________________________________ ____________________//
//__________________________________________________ __________________________________________________ ____________________//
//__________________________________________________ __________________________________________________ ____________________//
//__________________________________________________ __________________________________________________ ____________________//
TrailingPositionsBuy(TrailingStop);
TrailingPositionsSell(TrailingStop);
closetrailingstop();
//__________________________________________________ __________________________________________________ ____________________//
if (OrdersTotal()==0)
{
stoplossbuy=0;
stoplosssell=0;
}
}
//__________________________________________________ __________________________________________________ ____________________//
//__________________________________________________ __________________________________________________ ____________________//
//__________________________________________________ __________________________________________________ ____________________//
//Closeall
void closeall()
{
int total=OrdersTotal();
for(int cnt=OrdersTotal()-1; cnt<total; cnt++)
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,0,Violet) ;
}
if(OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,0,Violet) ;
}
if(OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)
{
OrderDelete(OrderTicket());
}
}
}
//__________________________________________________ __________________________________________________ ____________________//
//__________________________________________________ __________________________________________________ ____________________//
//__________________________________________________ __________________________________________________ ____________________//
void TrailingPositionsBuy(int trailingStop) {
for (int z=0; z<OrdersTotal(); z++)
{
if (OrderSelect(z,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
// if (Bid-OrderOpenPrice()>trailingStop*Point)
// {
if (stoplossbuy < Bid-trailingStop*Point)
stoplossbuy=(Bid-trailingStop*Point);
// }
}
}
}
}
}
//__________________________________________________ __________________________________________________ ____________________//
void TrailingPositionsSell(int trailingStop) {
for (int w=0; w<OrdersTotal();w++)
{
if (OrderSelect(w,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol())
{
if (OrderType()==OP_SELL) {
// if (OrderOpenPrice()-Ask>trailingStop*Point) {
if (stoplosssell >Ask+trailingStop*Point)
stoplosssell=(Ask+trailingStop*Point);
// }
}
}
}
}
}
//__________________________________________________ __________________________________________________ ____________________//
void closetrailingstop()
{
OrderSelect(0,SELECT_BY_POS);
if (OrderType()==OP_BUY)
{
if (Bid<=stoplossbuy && stoplossbuy!=0){
closeall();}
}
if (OrderType()==OP_SELL)
{
if (Ask>=stoplosssell && stoplosssell!=0){
closeall();}
}
OrderSelect(1,SELECT_BY_POS);
if (OrderType()==OP_BUY)
{
if (Bid<=stoplossbuy && stoplossbuy!=0){
closeall();}
}
if (OrderType()==OP_SELL)
{
if (Ask>=stoplosssell && stoplosssell!=0){
closeall();}
}
}