Orders Execution
0
Views
0
Downloads
0
Favorites
GoStopAndProfitVVP
//+------------------------------------------------------------------+
//| GoStopAndProfitVVP.mq4 |
//| Âàäèì Ïîëóÿí |
//|ÂÛÑÒÀÂËßÅÌ ÑÒÎÏ È ÏÐÎÔÈÒ, ÇÀÒÅÌ ÈÇÌÅÍßÅÌ ÑÒÎÏ È ÏÐÎÔÈÒ. |
//|Ñêîëüçÿùèå Ñòîï è Ïðîôèò, |
//|Âû âûñòàâëÿåòå îðäåð âðó÷íóþ, à ñîâåòíèê òóò æå âûñòàâëÿåò |
//|Ñòîï è Ïðîôèò (åñëè âû ýòî ðàçðåøèëè), çàòåì åñëè ïîçèöèÿ èäåò |
//|â "ïëþñ" òî Ñòîï óìåíüøàåòñÿ (åñëè ïîçèöèÿ óéäåò ðåçêî |
//|â "ìèíóñ" - ïîëó÷èì ìåíüøèé óáûòîê); åñëè æå ïîçèöèÿ èäåò |
//|â "Ìèíóñ", òî Ïðîôèò óìåíüøàåòñÿ (íà ñëó÷àé åñëè áóäåò íåáîëüøîå |
//|äâèæåíèå â "ïîëþñ" åñòü âåðîÿòíîñòü ïîëó÷èòü õîòü êàêóþ òî ïðèáûëü|
//+------------------------------------------------------------------+
#property copyright "Âàäèì Ïîëóÿí"
#property link ""
bool result;
double stop_loss,take_profit,point;
int cmd,total,error;
extern int TrailingStop = 400;
extern int TrailingProfit = 400;
extern int GoStop = 1;// åñëè "1" òî äâèãàåì ñòîï, åñëè "0" òî íå äâèãàåì.
extern int GoProfit = 1;// åñëè "1" òî äâèãàåì, åñëè "0" òî íå äâèãàåì.
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
total=OrdersTotal();
//Print("total",total);
point=MarketInfo(Symbol(),MODE_POINT);
//----
for(int i=0; i<total; i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
//---- print selected order
//OrderPrint();
cmd=OrderType();
//---- buy or sell orders are considered
if(cmd==OP_BUY || cmd==OP_SELL)
{
//---- modify first market order
//while(true)
stop_loss = OrderStopLoss();
take_profit = OrderTakeProfit();
//Print(" ñòàðûå stop_loss ",stop_loss,"take_profit ",take_profit);
if (GoStop >= 1)
{
if(cmd==OP_BUY)
{
if((OrderStopLoss()< Ask-point*TrailingStop)||(OrderStopLoss()==0)) stop_loss=Ask-TrailingStop*point;
}
else
{
if((OrderStopLoss()> Bid+point*TrailingStop)||(OrderStopLoss()==0)) stop_loss=Bid+TrailingStop*point;
}
}
if (GoProfit >= 1)
{
if(cmd==OP_BUY)
{
if((OrderTakeProfit()>Ask+(point*TrailingProfit))||(OrderTakeProfit()==0)) take_profit=Ask+(TrailingProfit*point);
}
else
{
if((OrderTakeProfit()<Bid-(point*TrailingProfit))||(OrderTakeProfit()==0)) take_profit=Bid-(TrailingProfit*point);
}
}
Print("Order #",OrderTicket()," profit: ", OrderTakeProfit());
if ((stop_loss != OrderStopLoss()) || (take_profit != OrderTakeProfit()))
{
result=OrderModify(OrderTicket(),0,stop_loss,take_profit,0,CLR_NONE);
//Sleep (1000);
Print("ðàáîòàþ, èçìåíÿþ - íîâûå ñòîï è ïðîôèò ",stop_loss," ",take_profit, "Ðåçóëüòàò: ", result);
}
else
{
Print("Íè÷åãî íå ìåíÿþ");
}
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---