0
Не пойдёт, нужен автомат
avatar

Gatti

  • 13 января 2017, 12:23
0
лучше сделать по другому: на вершине этого луча, есть свеча, отложку ставим на закрытии этой свечи, а стоп за ее макс\мин.Профит коэфф. к стопу
avatar

Gatti

  • 28 сентября 2016, 08:36
0
Символы было бы хорошо чтобы красным цветом писал, чтобы не сливалось
avatar

Gatti

  • 22 августа 2016, 12:05
0
с 600 -го вроде
avatar

Gatti

  • 25 мая 2015, 22:45
0
так он работал сначала, потом на новом билде перестал
avatar

Gatti

  • 25 мая 2015, 22:25
0
а как оно изменилось?
avatar

Gatti

  • 25 мая 2015, 22:00
0
Спасибо за скрипты поручик, всё работает
avatar

Gatti

  • 25 мая 2015, 21:52
0
Формулу не знаю, вот этот же скрипт работающий в процентах, потом мне программист добавил в него несколько строк, чтобы считал в валюте. Может это поможет

//+------------------------------------------------------------------+
//| Version1.mq4 |
//| VadimVP |
//| poluyan@fxmail.ru |
//+------------------------------------------------------------------+
#property copyright «VadimVP»
#property link «poluyan@fxmail.ru»
#include <WinUser32.mqh>
/* /+------------------------------------------------------------------+
Скрипт помогает открыть ордер «с рынка» при этом автоматически расчитывает размер лота
в соответствии с установленным Вами уровнем убытка (в процентах от депозита), открывает ордер и
устанавливает StopLoss и TakeProfit.
Вы перемещаете линию StopLoss (красная мигающая линия) — советник тут же пересчитывает размер лота
под заданный убыток Вами % убытка, и корректирует расположение TakeProfit (синяя мигающая линия).
Размер убытка (в %) можно изменять прямо на графике перемещая красную стрелку вверх-вниз.
Линия TakeProfit размещается автоматически на том же удалении от цены что и StopLoss но умноженная на
коэффициент kProfitLine.
Чтобы установить ордер — удалите красную мигающую линию (линия StopLoss).
+------------------------------------------------------------------+
*/

// Параметры советника:

double LOSSmin = 2;// минимальный процент убытка (диапазон изменений, нижний предел)
double LOSSmax = 4;// максимальный процент убытка (диапазон изменений, верхний предел)
double MaxLot = 6;// максимально разрешенный Вами лот для ордера
double kProfitLine = 5;// отношение прибыли к убытку, коэффициент TakeProfit = kProfitLine * TrailingStop
color clrOK = Blue; // Цвет шрифта OK
color clrNO = Red; // Цвет шрифта NOT OK
int font = 11; // Размер шрифта

//-------------------------------------------------------------------+

// Формула коррекции % профита Прибыль(%) = ( 100 / ( (100 — Убыток)/100) ) — 100; (в %) можно применить если стоп от 5% депозита и выше

double PFL; color clr; double DilerPercent = 0;
int iii = 0; double STL = 0; double LOT = 0; double deltareal=1; double LOSS = 0.1;

int init() {linebye();return(0);}
int deinit(){Comment (" ");ObjectDelete («10»);ObjectDelete («123»);ObjectDelete( «Profit»);ObjectDelete («321»);ObjectDelete( «label123»);return(0); }
int start()
{
//----
if (IsConnected()) {

while ( ObjectFind(«Label123»)!=(-1) )
{if (ObjectFind(«Label123») == (-1)) {linebye();}
if (ObjectFind(«123») == (-1)) {ObjectCreate («123»,OBJ_TEXT,0,Time[WindowBarsPerChart( )/3] ,WindowPriceMax() — (WindowPriceMax() — WindowPriceMin())/10 );
ObjectSetText(«123», «Старт скрипта», font, «Arial», clr);}
if (ObjectFind(«321») == (-1)) {ObjectCreate («321»,OBJ_ARROW,0,Time[WindowBarsPerChart( )/2] ,WindowPriceMin()+((WindowPriceMax() — WindowPriceMin())/10) );
ObjectSet(«321», OBJPROP_ARROWCODE, 231); ObjectSet(«321», OBJPROP_WIDTH, 2); }

STL = ObjectGet(«Label123», 1); textset(); DrowProfitLine();
if (iii == 5) {Sleep (30); ObjectSet( «label123», 6, Red); ObjectSet( «Profit», 6, Blue); WindowRedraw( ) ;} else Sleep (30);
if (iii == 10) {Sleep (30); ObjectSet( «label123», 6, PeachPuff);ObjectSet( «Profit», 6, LightBlue); WindowRedraw( ) ;} else Sleep (30);
if (iii >= 10) iii = 0; iii = iii+1;
}
//-----------------------------------
ObjectCreate( «label123», OBJ_HLINE, 0, 0, STL); ObjectSet( «label123», 6, Red);
ObjectSet( «label123», 8, 3);WindowRedraw( );

if (MessageBox (" Открыть ордер ??? ",«Скрипт интересуется:»,1)==1) startset();
} else MessageBox («Нет соединения с сервером!!!»," Скрипт сообщает:",0x00000000);
//----
return(0);
}
//+------------------------------------------------------------------+

int linebye() {// Рисуем линию (которая мигает)
ObjectDelete( «label123»);
ObjectCreate( «label123», OBJ_HLINE, 0, 0, (MarketInfo( Symbol(), MODE_BID) -Point*((MarketInfo(Symbol(), MODE_STOPLEVEL)+10*MathPow(10,Digits)/10000 ))) );
ObjectSet( «label123», 6, White); ObjectSet( «label123», 8, 2); WindowRedraw( );
return(0); }
//+------------------------------------------------------------------+
double textset() {
double delta = WindowPriceMax() — WindowPriceMin();
double PriceMax = WindowPriceMax() — delta/10;
double PriceMin = delta/10 + WindowPriceMin();
if (ObjectGet(«321», 1) > PriceMax) ObjectSet(«321»,1,PriceMax);
if (ObjectGet(«321», 1) < PriceMin) ObjectSet(«321»,1,PriceMin);
double deltascreen = PriceMax — PriceMin;
LOSS = (((ObjectGet(«321», 1)-PriceMin)/deltascreen)*(LOSSmax — LOSSmin))+LOSSmin;
if (STL > (MarketInfo( Symbol(), MODE_ASK) + Point*MarketInfo(Symbol(), MODE_STOPLEVEL))) deltareal = (STL — MarketInfo( Symbol(), MODE_BID) )/Point;
if (STL < (MarketInfo( Symbol(), MODE_BID) — Point*MarketInfo(Symbol(), MODE_STOPLEVEL))) deltareal = (MarketInfo( Symbol(), MODE_ASK) — STL)/Point;
LOT = ((AccountFreeMargin()*(LOSS/100))/MarketInfo(Symbol(), MODE_TICKVALUE))/deltareal;
LOT = Round(LOT);
double LOSSreal = (LOT*deltareal*MarketInfo(Symbol(), MODE_TICKVALUE)/AccountFreeMargin())*100;
if (MathAbs(LOSS-LOSSreal) < MathAbs(LOSS*0.1)) clr = clrOK; else clr = clrNO;//меняем цвет шрифта

ObjectSetText(«123»,«Задача:LOSS=»+DoubleToStr(LOSS,1)+" % "+"; Получим:LOT="+DoubleToStr(LOT,2)+", LOSS="+DoubleToStr(LOSSreal,2)+"% (Спред="+ DoubleToStr(DilerPercent*100,1)+"%)", font, «Arial», clr);

WindowRedraw( );
Comment ( «Сумма возможного убытка = „+DoubleToStr(AccountFreeMargin()*LOSSreal/100,0));
return(0); }

int startset() {

//-----
Alert (“!!! Пожалуйста дождитель окончания работы скрипта!»);
int resi = 0;
STL = MathRound (STL * MathPow ( 10, MarketInfo(Symbol(), MODE_DIGITS)) );
STL = STL / MathPow ( 10, MarketInfo(Symbol(), MODE_DIGITS));
PFL = MathRound (PFL * MathPow ( 10, MarketInfo(Symbol(), MODE_DIGITS)) );
PFL = PFL / MathPow ( 10, MarketInfo(Symbol(), MODE_DIGITS));

Print(«линии Стопов, Цены Открытия и Профита: »,STL,", ",MarketInfo( Symbol(), MODE_BID),", ",PFL);

if (STL>MarketInfo( Symbol(), MODE_ASK) ) resi = OrderSend (Symbol(),OP_SELL,LOT, MarketInfo( Symbol(), MODE_BID), 10, STL, PFL );
if (STL<MarketInfo( Symbol(), MODE_BID) ) resi = OrderSend (Symbol(),OP_BUY,LOT, MarketInfo( Symbol(), MODE_ASK), 10, STL, PFL );

Alert ("***************************************************");
if (resi == (-1))
Alert ("!!! Неудачное открытие ордера! Повторите попытку! Ошибка №: "+GetLastError());
else Alert («Ордер открыт успешно, результат: „+resi);
Alert (“************ информация от скрипта ************»);

return(0); }

void DrowProfitLine()
{

// ObjectDelete( «Profit»);
if (ObjectFind(«Profit») == (-1)){
ObjectCreate( «Profit», OBJ_HLINE, 0, 0, (MarketInfo( Symbol(), MODE_ASK) +Point*2*(MarketInfo(Symbol(), MODE_STOPLEVEL))) );
ObjectSet( «Profit», 6, Blue); ObjectSet( «Profit», 8, 2); WindowRedraw( ) ;}

if (STL > (MarketInfo( Symbol(), MODE_ASK) +Point*2*(MarketInfo(Symbol(), MODE_STOPLEVEL)))) {PFL = MarketInfo( Symbol(), MODE_BID) — ((STL-MarketInfo( Symbol(), MODE_BID) )*kProfitLine );
DilerPercent = (MarketInfo( Symbol(), MODE_ASK) — MarketInfo( Symbol(), MODE_BID)) / (STL-MarketInfo( Symbol(), MODE_BID) ); }
if (STL < (MarketInfo( Symbol(), MODE_BID) -Point*2*(MarketInfo(Symbol(), MODE_STOPLEVEL)))) {PFL = MarketInfo( Symbol(), MODE_ASK) + ((MarketInfo( Symbol(), MODE_ASK) -STL)*kProfitLine );
DilerPercent =(MarketInfo( Symbol(), MODE_ASK) — MarketInfo( Symbol(), MODE_BID)) / (MarketInfo( Symbol(), MODE_ASK) -STL); }
if (STL > (MarketInfo( Symbol(), MODE_BID) -Point*2*(MarketInfo(Symbol(), MODE_STOPLEVEL))) && STL < (MarketInfo( Symbol(), MODE_ASK) +Point*2*(MarketInfo(Symbol(), MODE_STOPLEVEL)))) ObjectDelete( «Profit»);

ObjectSet( «Profit», 1, PFL );
WindowRedraw( );

}
double Round(double A1) // Функция округляет А1 до Шага Лота и проверяет нижнюю границу и верхние границы
{
A1 = MathRound (A1 / MarketInfo(Symbol(), MODE_LOTSTEP));
A1 = A1 * MarketInfo(Symbol(), MODE_LOTSTEP);

if (A1 < MarketInfo(Symbol(), MODE_MINLOT)) A1 = MarketInfo(Symbol(), MODE_MINLOT);
if (A1 > MaxLot) A1 = MaxLot;
if (A1 > (AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED))) A1 = (AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED)); //средства для открытия 1 лота
return(A1);
}
avatar

Gatti

  • 25 мая 2015, 18:45
0
Формулу не знаю, вот этот же скрипт работающий в процентах, потом мне программист добавил в него несколько строк, чтобы считал в валюте. Может это поможет
avatar

Gatti

  • 25 мая 2015, 18:38
0
перед глазами строчка должна быть какой лот получается и сколько процентов в стопе составляет спред при этом, как в том скрипте
avatar

Gatti

  • 25 мая 2015, 18:10
0
Да, главное чтобы расчитывал позицию в валюте депозита, а не в %
avatar

Gatti

  • 25 мая 2015, 15:16
0
ок, спасибо
avatar

Gatti

  • 23 мая 2015, 21:20
+2
Работаю, проблем не было, вывод моментальный на webmoney, первый раз чуть дольше, проверка кошелька идёт. Низкие спреды, можно памм открыть от 100$. За торговый обЪём и доходность учавствуете в конкурсах на реальных счетах автоматически, призы достойные
avatar

Gatti

  • 5 июня 2013, 22:31
+1
Да
avatar

Gatti

  • 5 июня 2013, 22:15
+1
RVD попробуйте, ECN брокер
avatar

Gatti

  • 5 июня 2013, 21:09
Начать торговлю с Альпари