[아카이브!] 어드바이저를 무료로 써드립니다 - 페이지 65

 
Antton86 :
도와주세요. SL과 TP와 지표(Stochastic) 및 필터(MA)의 매개변수를 변경할 수 있는 조언자가 필요합니다. 빠른 선을 넘는 BUY 신호는 SELL 하락의 경우 느려집니다. 거래는 MA 방향으로 수행됩니다! 어드바이저가 복잡하지도 않고 별로 흥미롭지도 않은건 알겠는데 데이터베이스에 있는 어드바이저들을 다 훑어본 결과 비슷한거 못찾았어요! 나는 나 자신을 쓰려고 노력했다 - 3 일 동안 빈 (((
https://www.mql5.com/en/job
 
tigra-max :
좋은 오후입니다. 고문의 코더에게 거래 방법을 제거하라는 요청(이미 5개가 있습니다.) 또한 그가 설정한 테이크 이익을 제거하면 그는 단순히 이익을 줄입니다!(미리 감사합니다!
게시물이 삭제되었습니다. 디컴파일된 코드.
 
너 뭐야!)
 
tigra-max :
너 뭐야!)
무슨 얘기를 하는 건가요?
 

안녕하세요. 누가 그림과 같은 알고리즘을 프로그래밍 방식으로 실행할 수 있습니까? 손으로 시도하고 작동하는 것 같습니다. 하지만 모니터 앞에 앉는 것은 끔찍하다. 조금 자동화하고 싶습니다. 포지션 오프닝입니다. 다른 프로그램은 이익을 위해 닫을 것입니다.

나는 당신의 도움을 요청합니다. 그것은 스스로 해결되지 않았거나 한 방향으로 전체 무리를 열거나 완전히 건너 뜁니다. MQL을 오랫동안 공부해야 하는데 그게 무엇인지 이해해야 합니다. 그러므로 나는 당신에게 도움을 청합니다.

여기가 분명해 보입니다. 1.4125의 가격에서 보류 중인 매도 정지 가 트리거되었고, 1.4135의 가격에 매수 정지를 설정하고, 다른 프로그램이 모든 것을 마감할 때까지 로트에 LotUp을 곱하는 식으로 계속됩니다.

안부, 세르게이.

 
fortrader.ru :
무료로 어드바이저를 작성해 드리지만, 필요하신 분에게 1인 1글 작성합니다. http://forum.fortrader.ru/index.php?board=3.0
 

privet ya ne programist svyazal nekotorie idei vmesto zakinul sovetnik na reale stal zakrivat vse sdelki drugix sovetnikov vrode bi prisvoil i svoy magik number. privoju kod chtobi posmotreli v chem prichna i eshe dorobotali vzyali nailuchie svyazki indikatorov


#property copyright "Armen Alaverdyan"
#property link "bravolc@mail.ru"

extern double PercentProfit = 0.15 ; // Процент профита
extern double PercentLoss = 100 ; // Процент убытка
extern bool DeleteOrders = False; // Удалять ордера
extern bool CloseTerminal = False; // Закрывать терминал
extern bool ShowComment = True; // Показывать комментарий
extern int NumberAccount = 0 ; // Номер торгового счёта
extern bool UseSound = False; // Использовать звуковой сигнал
extern string NameFileSound = "expert.wav" ; // Наименование звукового файла
extern int Slippage = 3 ; // Проскальзывание цены
extern int NumberOfTry = 5 ; // Количество попыток
extern int PauseAfterError = 75 ; // Пауза после ошибки в секундах

extern double maxsimum_Lots= 0.3 ;
extern int rsi_period= 22 ;
extern double MATrendPeriod= 26 ;
extern double MACDOpenLevel= 3 ;
extern double MACDCloseLevel= 2 ;

//---- input parameters
extern double Lots= 0.1 ;
extern int StLoss= 200 ;
extern int TPrfit= 100 ;
extern string Times= "H1" ;
extern int TrailingStop= 11 ;
extern int MagicNumber = 15031963 ;


//------- Глобальные переменные советника --------------------------------------
bool gbDisabled = False; // Флаг блокировки советника
color clCloseBuy = Blue ; // Цвет значка закрытия покупки
color clCloseSell = Red ; // Цвет значка закрытия продажи
color clDelete = Yellow ; // Цвет значка удаления ордеров

//------- Поключение внешних модулей -------------------------------------------
#include <stdlib.mqh>
#include <WinUser32.mqh>

//===================================================================================================
extern int MaxOrders= 100 ;

extern int n= 5 ; //minuta starta
double lava_aper;
double LotsOptimized() {
lava_aper = NormalizeDouble (AccountFreeMargin() * Lots / 10000.0 , 1 );

if (lava_aper < Lots) lava_aper = Lots;
if (lava_aper > maxsimum_Lots) lava_aper = Lots;{
return (lava_aper);
}
}

Print ( "Свободная маржа счета = " ,AccountFreeMargin());
Print ( "Баланс счета = " ,AccountBalance());
Print ( " Средства = " ,AccountEquity());




int Tick;
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{


for ( int cnt= 0 ;cnt< OrdersTotal ();cnt++)
{
OrderSelect (cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()== Symbol ())
{
if (OrderType()==OP_BUY)
{


if (TrailingStop> 0 && Bid-OrderOpenPrice()> Point *TrailingStop && (OrderStopLoss()<Bid- Point *TrailingStop|| OrderStopLoss()== 0 ))
{
OrderModify(OrderTicket(),OrderOpenPrice(),
Bid- Point *TrailingStop,OrderTakeProfit(), 0 );
}
}
if (OrderType()==OP_SELL)
{ 
if (TrailingStop> 0 && OrderOpenPrice()-Ask> Point *TrailingStop && (OrderStopLoss()>Ask+ Point *TrailingStop || OrderStopLoss()== 0 ))
{
OrderModify(OrderTicket(),OrderOpenPrice(),
Ask+ Point *TrailingStop,OrderTakeProfit(), 0 );
}
}
}
}
Comment ( "lava_aper= " ,lava_aper,
"TrailingStop= " ,TrailingStop, "StopLoss= " ,StLoss,
"TakeProfit= " ,TPrfit,
" Средства = " ,AccountEquity(),
"AccountBalance()= " ,AccountBalance(),
"AccountFreeMargin()= " ,AccountFreeMargin() );
double bull= 0 ,bear= 0 ; 
bull = iBullsPower ( NULL , 0 , 5 , PRICE_CLOSE , 1 );
bear = iBearsPower ( NULL , 0 , 5 , PRICE_CLOSE , 1 );
// Comment("bull+bear= ",bull + bear,"\n I Blue "); 
double SignalPrevious, MaCurrent, MaPrevious;
MaCurrent= iMA ( NULL , 0 ,MATrendPeriod, 0 , MODE_EMA , PRICE_CLOSE , 0 );
MaPrevious= iMA ( NULL , 0 ,MATrendPeriod, 0 , MODE_EMA , PRICE_CLOSE , 1 ); 
double MacdCurrent, MacdPrevious, SignalCurrent;
MacdCurrent= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 0 );
MacdPrevious= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 1 );
SignalCurrent= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, 0 );
SignalPrevious= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, 1 );



double rsi17_0 = NormalizeDouble ( iRSI ( Symbol (), PERIOD_H1 , rsi_period, 0 , 0 ), Digits );
double rsi17_1 = NormalizeDouble ( iRSI ( Symbol (), PERIOD_H1 , rsi_period, 3 , 3 ), Digits );

if (Minute() == n 
&& ( iDeMarker ( NULL , 0 , 14 , 2 )< 0.49 )
&&( iDeMarker ( NULL , 0 , 14 , 0 )> 0.49 )
//&& rsi17_1<rsi17_0
//&& Open[1] < Close[1] 
&& Tick == 0 
//&& (bull + bear > 0)
&& MacdCurrent< 0 
//&& MacdCurrent>SignalCurrent 
//&& MacdPrevious<SignalPrevious 
//&& MathAbs(MacdCurrent)>(MACDOpenLevel*Point)


//&& MaCurrent>MaPrevious
)
{

OrderSend ( Symbol (),OP_BUY,LotsOptimized(),Ask, 0 ,Ask - StLoss* Point ,Ask + TPrfit* Point , "" ,MagicNumber, 0 , CLR_NONE );
Tick++;
return ( 0 );
}

if (Minute() == n 
&& ( iDeMarker ( NULL , 0 , 14 , 2 )> 0.51 ) 
&&( iDeMarker ( NULL , 0 , 14 , 0 )< 0.51 )
//&& (bull + bear < 0) 
//&& rsi17_1>rsi17_0
//&& Open[1] > Close[1] 
&& Tick == 0 
&& MacdCurrent> 0 
//&& MacdCurrent<SignalCurrent 
//&& MacdPrevious>SignalPrevious 
//&& MathAbs(MacdCurrent)>(MACDOpenLevel*Point)

//&& MaCurrent<MaPrevious

)
{
OrderSend ( Symbol (),OP_SELL,LotsOptimized(),Bid, 0 ,Bid + StLoss* Point ,Bid - TPrfit* Point , "" ,MagicNumber, 0 , CLR_NONE );
Tick++;






return ( 0 );
}



if ( OrdersTotal () <= MaxOrders) { //1
//----
if (Minute() == 59 )
{
Tick = 0 ;
}

}





if (AccountEquity()>=AccountBalance()*( 1 +PercentProfit/ 100 )
|| AccountEquity()<=AccountBalance()*( 1 -PercentLoss / 100 )) {
ClosePosFirstProfit();
DeleteOrders();
}
}


//+----------------------------------------------------------------------------+
//| |
//| ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ |
//| |
//+----------------------------------------------------------------------------+
//| Закрытие одной предварительно выбранной позиции |
//+----------------------------------------------------------------------------+
void ClosePosBySelect() {
bool fc;
color clClose;
double ll, pAsk, pBid, pp;
int err, it;

if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
for (it= 1 ; it<=NumberOfTry; it++) {
if (!IsTesting() && (!IsExpertEnabled() || IsStopped ())) break ;
while (!IsTradeAllowed()) Sleep ( 5000 );
RefreshRates();
pAsk=MarketInfo(OrderSymbol(), MODE_ASK);
pBid=MarketInfo(OrderSymbol(), MODE_BID);
if (OrderType()==OP_BUY) {
pp=pBid; clClose=clCloseBuy;
} else {
pp=pAsk; clClose=clCloseSell;
}
ll=OrderLots();
fc=OrderClose(OrderTicket(), ll, pp, Slippage, clClose);
if (fc) {
if (UseSound) PlaySound (NameFileSound); break ;
} else {
err= GetLastError ();
if (err== 146 ) while (IsTradeContextBusy()) Sleep ( 1000 *PauseAfterError);
Print ( "Error(" ,err, ") Close " ,GetNameOP(OrderType()), " " ,
ErrorDescription(err), ", try " ,it);
Print (OrderTicket(), " Ask=" ,pAsk, " Bid=" ,pBid, " pp=" ,pp);
Print ( "sy=" ,OrderSymbol(), " ll=" ,ll, " sl=" ,OrderStopLoss(),
" tp=" ,OrderTakeProfit(), " mn=" ,OrderMagicNumber());
Sleep ( 1000 *PauseAfterError);
}
}
} else Print ( "Некорректная торговая операция. Close " ,GetNameOP(OrderType()));
}

//+----------------------------------------------------------------------------+
//| Закрытие позиций по рыночной цене сначала прибыльных |
//+----------------------------------------------------------------------------+
void ClosePosFirstProfit() {
int i, k= OrdersTotal ();

// Сначала закрываем прибыльные позиции
for (i=k- 1 ; i>= 0 ; i--) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (OrderProfit()+OrderSwap()> 0 ) ClosePosBySelect();
}
}
}
// Потом все остальные
k= OrdersTotal ();
for (i=k- 1 ; i>= 0 ; i--) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) ClosePosBySelect();
}
}
if (CloseTerminal && !ExistPositions()) CloseTerminal();
}

//+----------------------------------------------------------------------------+
//| Закрывает торговый терминал. |
//+----------------------------------------------------------------------------+
void CloseTerminal() {
Print ( "Сработала функция CloseTerminal()" );
int hwnd=WindowHandle( Symbol (), Period ());
int hwnd_parent= 0 ;

while (! IsStopped ()) {
// hwnd=GetParent(hwnd);
if (hwnd== 0 ) break ;
hwnd_parent=hwnd;
}
if (hwnd_parent!= 0 ) PostMessageA(hwnd_parent, WM_CLOSE, 0 , 0 );
}

//+----------------------------------------------------------------------------+
//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Версия : 28.11.2006 |
//| Описание : Удаление ордеров |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| op - операция (-1 - любой ордер) |
//| mn - MagicNumber (-1 - любой магик) |
//+----------------------------------------------------------------------------+
void DeleteOrders( string sy= "" , int op=- 1 , int mn=- 1 ) {
bool fd;
int err, i, it, k= OrdersTotal (), ot;

if (sy== "0" ) sy= Symbol ();
for (i=k- 1 ; i>= 0 ; i--) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
ot=OrderType();
if (ot> 1 && ot< 6 ) {
if ((OrderSymbol()==sy || sy== "" ) && (op< 0 || ot==op)) {
if (mn< 0 || OrderMagicNumber()==mn) {
for (it= 1 ; it<=NumberOfTry; it++) {
if (!IsTesting() && (!IsExpertEnabled() || IsStopped ())) break ;
while (!IsTradeAllowed()) Sleep ( 5000 );
fd=OrderDelete(OrderTicket(), clDelete);
if (fd) {
if (UseSound) PlaySound (NameFileSound); break ;
} else {
err= GetLastError ();
Print ( "Error(" ,err, ") delete order " ,GetNameOP(ot), ": " ,ErrorDescription(err), ", try " ,it);
Sleep ( 1000 * 5 );
}
}
}
}
}
}
}
}

//+----------------------------------------------------------------------------+
//| Возвращает флаг существования позиций |
//| Параметры: |
//| sy - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| op - операция (-1 - любая позиция) |
//| mn - MagicNumber (-1 - любой магик) |
//+----------------------------------------------------------------------------+
bool ExistPositions( string sy= "" , int op=- 1 , int mn=- 1 ) {
int i, k= OrdersTotal ();

if ( StringLen (sy)== 1 && StringGetChar(sy, 0 )== 48 ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy== "" ) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op< 0 || OrderType()==op) {
if (mn< 0 || OrderMagicNumber()==mn) return (True);
}
}
}
}
}
return (False);
}
//+----------------------------------------------------------------------------+
//| Возвращает наименование операции |
//+----------------------------------------------------------------------------+
string GetNameOP( int op) {
switch (op) {
case OP_BUY : return ( "Buy" );
case OP_SELL : return ( "Sell" );
case OP_BUYLIMIT : return ( "Buy Limit" );
case OP_SELLLIMIT: return ( "Sell Limit" );
case OP_BUYSTOP : return ( "Buy Stop" );
case OP_SELLSTOP : return ( "Sell Stop" );
default : return ( "Unknown Operation" );
}
//}
//+----------------------------------------------------------------------------+
//| Вывод сообщения в коммент и в журнал |
//+----------------------------------------------------------------------------+
//void Message(string m) {
// Comment(m);
// if (StringLen(m)>0) Print(m);
//}


return ( 0 );
} //0
//+------------------------------------------------------------------+





//+------------------------------------------------------------------+
 
Armen63 :

privet ya ne programist svyazal nekotorie idei vmesto zakinul sovetnik na reale stal zakrivat vse sdelki drugix sovetnikov vrode bi prisvoil i svoy magik number. privoju kod chtobi posmotreli v chem prichna i eshe dorobotali vzyali nailuchie svyazki indikatorov

사적인. chtobi posmotret v chom prichina - nuzhno kod pravilno razmestit - knopka "SCR" - togda kod budet bolee strukturirovan is nim budet legche rabotat
 
abolk :
사적인. chtobi posmotret v chom prichina - nuzhno kod pravilno razmestit - knopka "SCR" - togda kod budet bolee strukturirovan is nim budet legche rabotat
파일:
artur1.mq4  14 kb
 
eto chernovik xotel posmotret cto ot etogo poluchtsya i spasibo