[아카이브!] 무료로 어드바이저를 작성해 드립니다 - 페이지 13

 

안녕하세요!

아는 사람이 코드에서 다음을 올바르게 작성하는 방법을 알려줄 수 있습니까?

표시기 MACD 히스토그램 WIS가 있습니다. 그의 코드에서 히스토그램이 계산되고 막대는 MACD 라인과 필터의 방향에 따라 다른 색상으로 표시됩니다.

정수 시작()
{
정수 한계, i;
정수 counted_bars = IndicatorCounted();

if(counted_bars > 0) counted_bars--;
제한 = iBars(NULL,0) - counted_bars;

BufferResize(필터);
BufferResize(히스토그램);

for(i = 0, i <= 한계, i++)
MACD[i] = iMA(NULL, 0, FastMA, 0, MAMethod, MAAppliedPrice, i) - iMA(NULL, 0, SlowMA, 0, MAMethod, MAAppliedPrice, i);
for(i = 0, i <= 한계, i++)
신호[i] = iMAOnArray(MACD, iBars(NULL,0), SignalMA, 0, MAMethod, i);
for(i = 0, i <= 한계, i++)
히스토그램[i] = MACD[i] - 신호[i];
CalcFilter(선, 한계);
for(i = 한계, i >= 0, i--)
{
if(히스토그램[i] > 히스토그램[i+1] && 필터[i] > 필터[i+1])
{
히스토그램 대기 닫기[i] = 0.0;
히스토그램 판매[i] = 0.0;
히스토그램구매[i] = 히스토그램[i];
}
if(히스토그램[i] < 히스토그램[i+1] && 필터[i] < 필터[i+1])
{
히스토그램 대기 닫기[i] = 0.0;
히스토그램판매[i] = 히스토그램[i];
히스토그램구매[i] = 0.0;
}
if((히스토그램[i] >= 히스토그램[i+1] && 필터[i] <= 필터[i+1]) || (히스토그램[i] <= 히스토그램[i+1] && 필터[i] > = 필터[i+1]))
{
HistogramWaitClose[i] = 히스토그램[i];
히스토그램 판매[i] = 0.0;
히스토그램구매[i] = 0.0;
}
}

리턴(0);
}

나는 조건 중 하나인 고문에게 다음과 같은 경우 포지션을 여는 것을 처방하려고 합니다.

if(히스토그램[i] > 히스토그램[i+1] && 필터[i] > 필터[i+1])
{
히스토그램 대기 닫기[i] = 0.0;
히스토그램 판매[i] = 0.0;
히스토그램구매[i] = 히스토그램[i];

그러나 나는 2개의 닫힌 막대, 즉 첫 번째와 두 번째 막대(0은 건드리지 않음)만 비교해야 하고 모든 막대(i-막대)는 비교해야 하지 않습니다. 즉, 첫 번째 막대와 두 번째 막대를 비교해야 하며, 히스토그램이 첫 번째 막대의 두 번째 및 필터 조건 및 고문의 기타 조건보다 크면 반대로 판매를 위해 구매하십시오 .... 올바르게 쓰는 방법, 독학 주전자를 알려주십시오.)

감사해요

 
kvg31 :

나는 모든 복잡성의 고문을 쓸 것입니다. 중요한 것은 아이디어가 좋다는 것입니다. 나는 당신이 그것을 어떻게 사용하는지 상관하지 않습니다. 당신이 그것을 팔면 나는 상관 없습니다 (나는 돈을 요구하지 않을 것입니다).

추신: 지표가 필요한 경우 해당 지표를 사용하려는 전략을 저에게 설명해야 합니다.


저는 프로그래밍에 대해 아무것도 모르고 완전 초보자입니다.

일반적으로 다음과 같은 조언자가 이미 존재할 수 있습니다.

"roly-poly" 원칙에 따르면 두 EMA의 교차는 이전 EMA를 닫고 새 EMA를 열며 EMA는 가변적이어야 합니다.

나는 H1에서 H4가 상당히 관련이 있다고 생각합니다.

 
riabusha :


일반적으로 다음과 같이 그러한 조언자가 이미 존재 합니다.

"roly-poly" 원칙에 따르면 두 EMA의 교차는 이전 EMA를 닫고 새 EMA를 열며 EMA는 가변적이어야 합니다.

나는 H1에서 H4가 상당히 관련이 있다고 생각합니다.

있다. 이것은 MT4와 함께 제공되는 표준 이동 평균 입니다. EMA만 있는게 아니라 SMA(단순이동평균선)만 바뀌는 것입니다. 물론 Advisor에서 MA 유형을 교체하거나 외부 매개 변수로 이동할 수도 있지만 이것으로 성배가 되지는 않습니다.
 

안녕하세요.

Ennay에서 하나의 주문을 여는 간단한 Expert Advisor를 만드십시오. 포인트 수, 가격이 이를 통과하고 +에서 마감되면 주문이 닫히고 다시 Plus로 열립니다. 음수이면 음수로 바뀝니다.

설정할 매개변수는 로트 크기와 통과 포인트 수입니다.

미리 감사드립니다.

진심으로, 디미트리.

 
kvg31 :

나는 모든 복잡성의 고문을 쓸 것입니다. 중요한 것은 아이디어가 좋다는 것입니다. 나는 당신이 그것을 어떻게 사용하는지 상관하지 않습니다. 당신이 그것을 팔면 나는 상관 없습니다 (나는 돈을 요구하지 않을 것입니다).

추신: 지표가 필요한 경우 해당 지표를 사용하려는 전략을 저에게 설명해야 합니다.


친애하는 개발자 여러분 안녕하세요. SSL_fast_sBar_mtf 표시기를 기반으로 표시기를 만드는 데 도움을 주세요.

표시기는 두 개의 "선"을 그릴 필요가 있습니다. 하나는 더 큰 "Lb" 값을 갖고 다른 하나는 더 작은 것(또는 더 크고 더 작은 TIME FRAME)을 사용합니다. 색상 막대에 있는 경우

두 "눈금자"는 동일하며(이전 눈금자에서는 달랐음) 다음 막대의 시작 부분에서 열라는 신호를 제공해야 합니다(화살표 표시).

화살표는 그래픽 개체가 아닌 표시기 버퍼 를 사용하여 그려야 합니다. 외부 매개변수 창에서 두 "자"의 데이터가 모두 필요합니다.

(매개변수의 후속 선택을 위해).

 

http://savepic.ru/1965498.gif

지표에 대한 링크를 전달하는 방법을 모르겠습니다. MQL4.com 라이브러리에 있습니다.

 

안녕하세요!

나는 당신이 전문가가 되기를 간청합니다(글쎄요, 저는 프로그래머가 아닙니다): ((.

기술 사양:
1) 두 이동선 의 교차점에서 4시간 촛대 차트에서 작업합니다. 평균 : 하나( 빨간색 ) 기간 18, 방법 Exponential , 가격 닫기 닫기 , 두 번째 각각( 노란색 ) 기간 8, 방법 Exponential , 가격 닫기 .

2) 거래규모 1랏

3) 우리는 선의 교차점에서 교차점까지 작업합니다. 노란색( 노란색 ) 선이 구매 주문의 위쪽(북쪽) 방향으로 빨간색 선( 빨간색 )과 교차하는 즉시 두 번째 선의 교차점이 이제 노란색 선이 빨간색 선을 위에서 아래로 각각 교차합니다. 신규 매도 주문의 동시 개설과 함께 미결 주문에 대한 고정 등.

4) 모든 거래에 대해 35포인트의 손절매가 설정됩니다.

4시간 스케쥴은 1시간 스케쥴과 달리 불필요한 몸의 움직임을 피할 수 있어 확실히 일할 수 있습니다.

통화 쌍을 보면 아이디어 자체가 정당화됩니다 (최악의 경우 손실 거래가 없으며 최악의 경우 약 0). 물론 추세를 고려하고 다음을 주시하면서 Expert Advisor를 실행해야합니다. 그것. 따라서 예를 들어 유로/달러 쌍이 9월 1일부터 교차하기 전에 +139포인트를 구매하고 즉시 +115포인트를 판매한 다음 10월 12일 교차하기 전에 다시 구매하면 또 다른 +1184포인트가 발생합니다. 우리는 같은 그림을 8월에 +368 포인트 매도, 그 다음 손실 없이 동일한 수준에서 매수 매도, 매도 이익에 +181 포인트 하락을 취합니다. 또한 예를 들어 GOLD 골드(여기서 수수료는 70포인트이지만 포인트 자체는 로트당 $2.5)이므로 8월 31일부터 +1789포인트를 구매하고 즉시 매도 +547포인트, +4557포인트 매수, 매도 0, + 4328 매수, 매도 0, 이번 주말 이전에 +3636 포인트.

안부, 유리

 
안녕하세요! 얘들 아, 나는 mql4를 사용하는 방법을 알 수 없다((나는 교차 후 경고음이 울리는 두 개의 EMA(미끄러운 평균)을 기반으로 한 작은 Expert Advisor를 작성하고 싶었습니다. 이 프로그램에 대해 알려주실 수 있습니까? 감사합니다. 미리!!!
 
silmin85 :
안녕하세요! 얘들 아, 나는 mql4를 사용하는 방법을 알 수 없다((나는 교차 후 경고음이 울리는 두 개의 EMA(미끄러운 평균)을 기반으로 한 작은 Expert Advisor를 작성하고 싶었습니다. 이 프로그램에 대해 알려주실 수 있습니까? 감사합니다. 미리!!!
패키지에 포함된 표준 이동 평균 을 기본으로 사용하여 실험합니다. MA를 EMA로 바꿀 수 있습니다.
 
goldtrader :
패키지에 포함된 표준 이동 평균을 기본으로 사용하여 실험합니다. MA를 EMA로 바꿀 수 있습니다.
사실 저는 두 개의 EMA가 교차할 때마다 신호음이 울리는 간단한 조언자를 원합니다! MetaTrader 전문가에는 Moving Average.mq4가 있습니다.

전체 설명은 다음과 같습니다.

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

//| 이동 평균.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+----------------------------------------------- --------------------+
#define MAGICMA 20050610

extern 이중 랏 = 0.1;
외부 이중 최대 위험 = 0.02;
외부 이중 DecreaseFactor = 3;
extern 이중 MovingPeriod = 12;
외부 이중 이동 시프트 = 6;
//+----------------------------------------------- --------------------+
//| 오픈 포지션 계산 |
//+----------------------------------------------- --------------------+
int CalculateCurrentOrders(문자열 기호)
{
구매 = 0, 판매 = 0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) 중단;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) 구매++;
if(OrderType()==OP_SELL) 판매++;
}
}
//---- 반품 주문량
if(매수>0) 반환(매수);
그렇지 않으면 반환(-판매);
}
//+----------------------------------------------- --------------------+
//| 최적 로트 크기 계산 |
//+----------------------------------------------- --------------------+
이중 LotOptimized()
{
이중 로트 = 로트;
int 주문 = HistoryTotal(); // 히스토리 주문 합계
정수 손실 = 0; // 중단 없는 손실 주문 수
//---- 로트 크기 선택
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- 중단 없이 손실 주문 수를 계산합니다.
if(감소인자>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("기록에 오류가 있습니다!"); 부서지다; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) 계속;
//----
if(OrderProfit()>0) 휴식;
if(OrderProfit()<0) 손실++;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//---- 반환 로트 크기
if(lot<0.1) lot=0.1;
반환(로트);
}
//+----------------------------------------------- --------------------+
//| 미결 주문 조건 확인 |
//+----------------------------------------------- --------------------+
무효 CheckForOpen()
{
더블 마;
인트르;
//---- 새 막대의 첫 번째 틱에 대해서만 거래를 시작합니다.
if(볼륨[0]>1) 반환;
//---- 이동 평균 얻기
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- 판매 조건
if(열기[1]>ma && 닫기[1]<ma)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
반품;
}
//---- 구매 조건
if(열기[1]<ma && 닫기[1]>ma)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
반품;
}
//----
}
//+----------------------------------------------- --------------------+
//| 마감 주문 조건 확인 |
//+----------------------------------------------- --------------------+
무효 CheckForClose()
{
더블 마;
//---- 새 막대의 첫 번째 틱에 대해서만 거래를 시작합니다.
if(볼륨[0]>1) 반환;
//---- 이동 평균 얻기
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) 중단;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) 계속;
//---- 주문 유형 확인
if(주문유형()==OP_BUY)
{
if(열기[1]>ma && 닫기[1]<ma) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
부서지다;
}
if(주문 유형()==OP_SELL)
{
if(열기[1]<ma && 닫기[1]>ma) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
부서지다;
}
}
//----
}
//+----------------------------------------------- --------------------+
//| 시작 기능 |
//+----------------------------------------------- --------------------+
무효 시작()
{
//---- 내역 및 거래 확인
if(Bars<100 || IsTradeAllowed()==false) 반환;
//---- 현재 기호로 미결 주문 계산
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
그렇지 않으면 CheckForClose();
//----
}

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

내 의견으로는 작동하도록 어떻게 변경할 수 있습니까? 이해하지 못합니까?! 나는 50EMA와 100EMA가 필요하고 모든 십자가에서 경고음이 울립니다!!!

사유: