대부분의 MTF 지표는 다른 지표보다 더 많이 칠해집니다. 나는 약간 다시 칠하는 것이 있지만 매우 좋고 방법에 포함될 수있는 한 가지 요소가 있습니다. 문제는 의미가 있으려면 수동으로 지속적으로 업데이트/새로 고침해야 한다는 것입니다. 매 틱 또는 매 'x'초/틱마다 자동 새로 고침을 코딩하는 방법이 있습니까?
현재 새로 고침을 하려면 차트 시간을 변경한 다음 뒤로 돌아가거나 차트/새로 고침 탭으로 이동하거나 차트에 다른 지표를 추가하고 이전 지표를 삭제합니다.....반복해서! 시간이 많이 걸립니다!
이 자동 새로 고침을 수행하는 방법이 있으면 내가 찾은 것을 공유하겠습니다.............
Metatrader는 새로운 틱이 들어올 때 창의 모든 지표에 자동 새로 고침 신호를 보내므로 새로 고침 문제가 아닙니다. 일반적으로 이러한 종류의 문제는 표시기가 변경된 막대 (일반적으로 표시기에서 "한계"로 명명됨)의 수를 제대로 찾지 못할 때 발생하므로 표시기의 문제입니다. 시간 프레임을 변경하면 모든 막대를 다시 다시 계산하므로 이 경우에는 제대로 표시되고 막대 값이 1개만 변경되면 제대로 수행되지 않습니다.
결론: 표시기의 코드를 확인하십시오. 버그가 있습니다.
el bee: 몇 주 전에 이 스레드 '코딩 도움말'에 이 질문을 게시했지만 응답이 없습니다.
대부분의 MTF 지표는 다른 지표보다 더 많이 칠해집니다. 나는 약간 다시 칠하는 것이 있지만 매우 좋고 방법에 포함될 수있는 한 가지 요소가 있습니다. 문제는 의미가 있으려면 수동으로 지속적으로 업데이트/새로 고침해야 한다는 것입니다. 매 틱 또는 매 'x'초/틱마다 자동 새로 고침을 코딩하는 방법이 있습니까?
현재 새로 고침하려면 차트 시간을 변경한 다음 뒤로 돌아가거나 차트/새로 고침 탭으로 이동하거나 차트에 다른 지표를 추가하고 이전 지표를 삭제합니다........반복해서! 시간이 많이 걸립니다!
이 자동 새로 고침을 수행하는 방법이 있으면 내가 찾은 것을 공유하겠습니다.............
ur Help ThanX로 EA를 다시 완료했습니다.
안녕하세요, mladen님,
큰 도움을 주셔서 다시 ThanX
ur Help ThanX로 EA를 다시 완료했습니다.
XXXXXXXXXX보다
다시 칠하기 표시기
몇 주 전에 이 스레드 '코딩 도움말'에 이 질문을 게시했지만 응답이 없습니다.
대부분의 MTF 지표는 다른 지표보다 더 많이 칠해집니다. 나는 약간 다시 칠하는 것이 있지만 매우 좋고 방법에 포함될 수있는 한 가지 요소가 있습니다. 문제는 의미가 있으려면 수동으로 지속적으로 업데이트/새로 고침해야 한다는 것입니다. 매 틱 또는 매 'x'초/틱마다 자동 새로 고침을 코딩하는 방법이 있습니까?
현재 새로 고침을 하려면 차트 시간을 변경한 다음 뒤로 돌아가거나 차트/새로 고침 탭으로 이동하거나 차트에 다른 지표를 추가하고 이전 지표를 삭제합니다.....반복해서! 시간이 많이 걸립니다!
이 자동 새로 고침을 수행하는 방법이 있으면 내가 찾은 것을 공유하겠습니다.............
고마워,
엘 비
...
엘 비
Metatrader는 새로운 틱이 들어올 때 창의 모든 지표에 자동 새로 고침 신호를 보내므로 새로 고침 문제가 아닙니다. 일반적으로 이러한 종류의 문제는 표시기가 변경된 막대 (일반적으로 표시기에서 "한계"로 명명됨)의 수를 제대로 찾지 못할 때 발생하므로 표시기의 문제입니다. 시간 프레임을 변경하면 모든 막대를 다시 다시 계산하므로 이 경우에는 제대로 표시되고 막대 값이 1개만 변경되면 제대로 수행되지 않습니다.
결론: 표시기의 코드를 확인하십시오. 버그가 있습니다.
몇 주 전에 이 스레드 '코딩 도움말'에 이 질문을 게시했지만 응답이 없습니다.
대부분의 MTF 지표는 다른 지표보다 더 많이 칠해집니다. 나는 약간 다시 칠하는 것이 있지만 매우 좋고 방법에 포함될 수있는 한 가지 요소가 있습니다. 문제는 의미가 있으려면 수동으로 지속적으로 업데이트/새로 고침해야 한다는 것입니다. 매 틱 또는 매 'x'초/틱마다 자동 새로 고침을 코딩하는 방법이 있습니까?
현재 새로 고침하려면 차트 시간을 변경한 다음 뒤로 돌아가거나 차트/새로 고침 탭으로 이동하거나 차트에 다른 지표를 추가하고 이전 지표를 삭제합니다........반복해서! 시간이 많이 걸립니다!
이 자동 새로 고침을 수행하는 방법이 있으면 내가 찾은 것을 공유하겠습니다.............
고마워,
엘 비표시기 도움말
나는 지표를 사용하여 가장 최근의 양초에 수직선 을 놓을 수 있습니다. 조정 가능한 사람이 있고 공유할 수 있거나 만들 수 있다면 가장 감사할 것입니다.
잘못된 코드가 있습니까?
바의 개폐를 기반으로 하는 EA를 작성하려고 합니다.
하지만 거래를 열 수 있는 조건에 문제가 있습니다.
내 방법은 다음과 같습니다.
+ 현재 봉의 시가가 이전 봉의 종가보다 높을 때 매도. TP는 이전 막대에 가깝습니다.
+ 현재 막대의 시가가 이전 막대의 시가보다 낮을 때 매수합니다. TP는 이전 막대를 엽니다.
+ 현재 막대가 닫힐 때 CLOSE.
그리고 여기 코드가 있습니다 (나는 여전히 mql4를 배우려고 노력하고 있으므로 이것이 최고의 코드가 아니라는 것을 압니다)
#property link "sando"
#define MAGICMA 20050610
//==========================================//
extern 이중 솔란탕 = 3;
extern 이중 솔란지암 =3;
외부 이중 LotSize = 1;
//=================================================//
//+----------------------------------------------- -------------------+
//| 오픈 트레이드 확인 |
//+----------------------------------------------- -------------------+
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) 반환(매수);
그렇지 않으면 반환(-판매);
}
//+----------------------------------------------- -------------------+
//| 자금 관리(유형 3) |
//+----------------------------------------------- -------------------+
이중 자금 관리3()
{
이중 lotSize = 0.1;
if(OrdersHistoryTotal()>0)
{
OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
if(OrderProfit() > 0)
{
if(OrderLots() > LotSize)
{
lotSize = OrderLots()/solangiam;
}
또 다른
{
랏 사이즈 = 랏 사이즈;
}
}
또 다른
{
lotSize = OrderLots() * solantang;
}
}
반환 (NormalizeDouble(LotsSize,2));
}
//+----------------------------------------------- -------------------+
//| 거래를 열기 위한 조건 |
//+----------------------------------------------- -------------------+
무효 공개 거래()
{
정수 해상도;
if(닫기[0]<열기[1])
{
res=OrderSend(Symbol(),OP_SELL,moneymanagement3(),Bid,3,Close[0],Close[1],"",MAGICMA,0,Red);
반품;
}
if(열기[0]>열기[1])
{
res=OrderSend(Symbol(),OP_BUY,moneymanagement3(),Ask,3,Open[0],Close[1],"",MAGICMA,0,Blue);
반품;
}
}
//+----------------------------------------------- -------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- -------------------+
무효 시작()
{
//---- 내역 및 거래 확인
if(Bars<100 || IsTradeAllowed()==false) 반환;
//---- 현재 기호로 미결 주문 계산
if(CalculateCurrentOrders(Symbol())==0) opentrade();
// 그렇지 않으면 donggiaodich();
//----
}
//+----------------------------------------------- -------------------+
그리고 첨부파일의 사진을 확인 해주세요
코드에 문제가 있는 것 같아요
가끔 EA가 조건을 만족하면 거래를 하지 않는 경우가 있습니다 T_T 왜 그런지 모르겠네요
그리고 때때로 EA는 조건을 충족하지 않을 때 거래를 합니다!
코드의 잘못된 부분을 수정하도록 도와주세요.
바의 개폐를 기반으로 하는 EA를 작성하려고 합니다.
하지만 거래를 열 수 있는 조건에 문제가 있습니다.
내 방법은 다음과 같습니다.
+ 현재 봉의 시가가 이전 봉의 종가보다 높을 때 매도. TP는 이전 막대에 가깝습니다.
+ 현재 막대의 시가가 이전 막대의 시가보다 낮을 때 매수합니다. TP는 이전 막대를 엽니다.
+ 현재 막대가 닫힐 때 CLOSE.
그리고 여기 코드가 있습니다 (나는 여전히 mql4를 배우려고 노력하고 있으므로 이것이 최고의 코드가 아니라는 것을 압니다)
그리고 첨부파일의 사진을 확인해주세요
코드에 문제가 있는 것 같아요
가끔 EA가 조건을 만족하면 거래를 하지 않는 경우가 있습니다 T_T 왜 그런지 모르겠네요
그리고 때때로 EA는 조건을 충족하지 않을 때 거래를 합니다!
코드의 잘못된 부분을 수정하도록 도와주세요.[lang=pl]+ 현재 막대의 시가가 이전 막대의 종가보다 높을 때 매도 . TP는 이전 막대에 가깝습니다.
+ 현재 막대의 시가가 이전 막대의 시가보다 낮을 때 매수합니다. TP는 이전 막대를 엽니다.
첫 번째 실수는 다음과 같습니다.
if(닫기[0]닫기[1])
if(Open[0]>Open[1]) (Open[0]<Open[1]이어야 함)
두 번째는 스톱로스입니다. 코드에서 StopLose를 설정했지만 위의 설명에서
당신은 새로운 막대가 나타나면 거래를 닫고 싶다고 말했습니다.
여기에 문제가 하나 더 있습니다. Open[0]<Open[1]이라고 가정합니다. 차이가 너무 작을 수 있습니다
주문이 실행될 때 가격이 Open[1]을 초과하고 TP가
주문 시가 보다 낮습니다. 아래에 이 경우를 잡을 수 있는 조건을 추가합니다.
당신이 바의 끝에 있는 모든 주문을 닫고 싶어한다는 것을 잘 이해한다면 여기에 코드가 있습니다.
#속성 링크 "산도"
#define MAGICMA 20050610
//==========================================//
extern 이중 솔란탕 = 3;
extern 이중 솔란지암 =3;
외부 이중 LotSize = 1;
//=================================================//
//+----------------------------------------------- -------------------+
//| 열린 거래 확인 |
//+----------------------------------------------- -------------------+
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) 반환(매수);
그렇지 않으면 반환(-판매);
}
//+----------------------------------------------- -------------------+
//| 자금 관리(유형 3) |
//+----------------------------------------------- -------------------+
이중 자금 관리3()
{
이중 lotSize = 0.1;
if(OrdersHistoryTotal()>0)
{
OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
if(OrderProfit() > 0)
{
if(OrderLots() > LotSize)
{
lotSize = OrderLots()/solangiam;
}
또 다른
{
랏 사이즈 = 랏 사이즈;
}
}
또 다른
{
lotSize = OrderLots() * solantang;
}
}
반환 (NormalizeDouble(LotsSize,2));
}
//+----------------------------------------------- -------------------+
//| 거래를 열기 위한 조건 |
//+----------------------------------------------- -------------------+
무효 공개 거래()
{
정수 해상도;
if(닫기[1] 닫기[1] )
{
res=OrderSend(Symbol(),OP_SELL,moneymanagement3(), Bid,3,0,Close[1],"",MAGICMA,0,Red);
반품;
}
if(열기[0]<열기[1] && 묻기 < 열기[1])
{
res=OrderSend(Symbol(),OP_BUY,moneymanagement3(),Ask,3,0,Open[1],"",MAGICMA,0,Blue);
반품;
}
}
//+----------------------------------------------- -------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- -------------------+
무효 시작()
{
if(isNewBar())
{
닫기 주문(MAGICMA,OP_BUY);
닫기 주문(MAGICMA,OP_SELL);
}
인쇄(닫기[1]-열기[0]);
//---- 내역 및 거래 확인
if(Bars<100 || IsTradeAllowed()==false) 반환;
//---- 현재 기호로 미결 주문 계산
if(CalculateCurrentOrders(Symbol())==0) opentrade();
// 그렇지 않으면 donggiaodich();
//----
}
무효 closeOrders(int oMagic,int oType) {
for(int i=0;i<OrdersTotal();i++) {
if(주문선택(i,SELECT_BY_POS)) {
if(OrderMagicNumber()==oMagic || oMagic<0) {
if(OrderSymbol()==Symbol()) {
if(OrderType()==oType || oType<0) {
if(주문유형()==OP_BUY) {
OrderClose(OrderTicket(),OrderLots(),Bid,0);
나--;
}
if (OrderType() == OP_BUYSTOP)
{
주문삭제(주문티켓());
나--;
}
if(주문유형()==OP_SELL) {
OrderClose(OrderTicket(),OrderLots(),Ask,0);
나--;
}
if (OrderType() == OP_SELLSTOP)
{
주문삭제(주문티켓());
나--;
}
}
}
}
}
}
}
부울 isNewBar() {
정적 정수 prevTime;
부울 newBar=거짓;
if(시간[0]!=prevTime) {
newBar=참;
prevTime=시간[0];
}
리턴(newBar);
}
//+----------------------------------------------- -------------------+
건배,
그르제식[/lang]
코딩 도움말: ECN 브로커를 사용하여 EA로 손절매 및 이익 실현
손절매, ECN 브로커와 함께 수익 창출
친구,
저는 MQL4 프로그래밍 의 초보자이며 ECN 브로커가 있는 ORDERSEND에 SL 및 TP를 연결하는 데 도움이 필요합니다.
처음에는 누군가가 ORDERSEND 내의 StopLoss & TakeProfit 필드를 "0"으로 설정해야 한다고 지적할 때까지 SL & TP가 내 주문 결과에 오류가 발생하도록 했는지 이해할 수 없었습니다. 그렇지 않으면 ECN/STP 중개인이 명령을 실행합니다.
그래서 제 질문은 어떻게 하면 마켓에서 주문을 실행한 다음 즉시(또는 1~2초 이내에) 해당 티켓에 SL/TP를 첨부할 수 있습니까?
내 질문과 관련된 코드는 다음과 같습니다.
if(CurrentPriceBuy>UpperPriceTrigger)
{
OrderSend(Sym,OP_BUY,Lots,CurrentPriceBuy,0,0,0,Co mm,0,0,CLR_NONE);
}
특정 티켓에 임의로 25pips의 TP/SL을 첨부할 수 있도록 OrderSend 명령 바로 뒤에 코드를 삽입하도록 도와줄 사람이 있습니까?
도움을 주시면 감사하겠습니다. 미리 감사드립니다.
문안 인사,
카시오
손절매, ECN 브로커와 함께 수익 창출
친구,
저는 MQL4 프로그래밍의 초보자이며 ECN 브로커가 있는 ORDERSEND에 SL 및 TP를 연결하는 데 도움이 필요합니다.
처음에는 누군가가 ORDERSEND 내의 StopLoss & TakeProfit 필드를 "0"으로 설정해야 한다고 지적할 때까지 SL & TP가 내 주문 결과에 오류가 발생하도록 했는지 이해할 수 없었습니다. 그렇지 않으면 ECN/STP 중개인이 명령을 실행합니다.
그래서 제 질문은 어떻게 하면 마켓에서 주문을 실행한 다음 즉시(또는 1~2초 이내에) 해당 티켓에 SL/TP를 첨부할 수 있습니까?
내 질문과 관련된 코드는 다음과 같습니다.
if(CurrentPriceBuy>UpperPriceTrigger)
{
OrderSend(Sym,OP_BUY,Lots,CurrentPriceBuy,0,0,0,Co mm,0,0,CLR_NONE);
}
특정 티켓에 임의로 25pips의 TP/SL을 첨부할 수 있도록 OrderSend 명령 바로 뒤에 코드를 삽입하도록 도와줄 사람이 있습니까?
도움을 주시면 대단히 감사하겠습니다. 미리 감사드립니다.
문안 인사,
카시오안녕하세요 카시오님
ECN 브로커에서 거래하는 경우 SL/TP 없이 주문을 보내고 수정해야 합니다.
다음은 예입니다.
외부 이중 손절매 = 25;
외부 이중 TakeProfit = 25;
if(isECN==true )
{
ticket=OrderSend(Symbol(),OP_BUY,lots,Ask, slippage,0,0,comment,magic);
주문선택(티켓,SELECT_BY_TICKET);
OrderModify(티켓,OrderOpenPrice(),sltpValue(Bid - StopLoss*Point, StopLoss),sltpValue(Ask+ TakeProfit*Point,TakeProfit),0);
}
이중 sltpValue(이중 w1, int w2)
{
if(w2 == 0)
리턴(0);
반환 (NormalizeDouble(w1, 숫자));
}
나는 그것이 명확하기를 바랍니다.
더 질문이 있으면 저에게 PM하십시오.
건배,
그르제지크
매 틱마다 정보가 업데이트되지 않음
안녕하세요 여러분,
내 화면의 다양한 표시기에 대한 정보를 표시하는 이 ea를 작성했습니다.
그러나 내 차트에 ea를 첨부하면 정보가 5분마다(5분 차트에서) 업데이트됩니다.
모든 틱 대신. 내 코딩에 문제가 있습니까? 모든 틱을 변경하는 정보를 보고 싶습니다.
//+----------------------------------------------- -------------------+
//| test.mq4 |
//| Copyright © 2011, Test Inc. |
//| test.net - 테스트 리소스 및 정보. |
//+----------------------------------------------- -------------------+
#property copyright "Copyright © 2011, Test Inc."
#속성 링크 "http://www.test.net"
//+----------------------------------------------- -------------------+
//| 라벨 |
//+----------------------------------------------- -------------------+
#define ccilabel "CCIValue"
#define rsilabel "RSIValue"
#define stochlabel "StochValue"
#define upperbandlabel "UpperBandValue"
#define lowerbandlabel "LowerBandValue"
//+----------------------------------------------- -------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
//----
//----
리턴(0);
}
//+----------------------------------------------- -------------------+
//| 전문가 초기화 해제 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
//----
//----
리턴(0);
}
//+----------------------------------------------- -------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- -------------------+
정수 시작()
{
//----
//================================================== ====================
// 동적 상대 강도 지수(Dynamic Relative Strength Index)
//================================================== ====================
이중 RSI;
이중 상위 대역;
이중 LowerBand;
RSI=iCustom(NULL,0,"동적 영역 RSI",14,0,1);
UpperBand=iCustom(NULL,0,"동적 영역 RSI",14,1,1);
LowerBand=iCustom(NULL,0,"동적 영역 RSI",14,2,1);
//================================================== ====================
// CCI 문제
//================================================== ====================
이중 CCI;
CCI=iCCI(NULL,0,14,PRICE_TYPICAL,1);
//================================================== ====================
// 스토캐스틱 베레켄
//================================================== ====================
더블 스토크;
Stoch=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
//================================================== ====================
// 정보 표시
//================================================== ====================
// CCI값
개체삭제(ccilabel);
ObjectCreate(ccilabel, OBJ_LABEL, 0, 0, 0);
ObjectSet(ccilabel, OBJPROP_XDISTANCE, 20);
ObjectSet(ccilabel, OBJPROP_YDISTANCE, 20);
ObjectSetText(ccilabel, "CCI값은 " + DoubleToStr(CCI,2), 10, "Arial", DeepSkyBlue);
// StochValue
ObjectDelete(stochlabel);
ObjectCreate(stochlabel, OBJ_LABEL, 0, 0, 0);
ObjectSet(stochlabel, OBJPROP_XDISTANCE, 20);
ObjectSet(stochlabel, OBJPROP_YDISTANCE, 40);
ObjectSetText(stochlabel, "StochValue는 " + DoubleToStr(Stoch,2), 10, "Arial", DeepSkyBlue);
// RSI값
개체삭제(rsilabel);
ObjectCreate(rsilabel, OBJ_LABEL, 0, 0, 0);
ObjectSet(rsilabel, OBJPROP_XDISTANCE, 20);
ObjectSet(rsilabel, OBJPROP_YDISTANCE, 60);
ObjectSetText(rsilabel, "RSI값은 " + DoubleToStr(RSI,2), 10, "Arial", DeepSkyBlue);
// 상위 밴드 값
ObjectDelete(상위 밴드 레이블);
ObjectCreate(상단 밴드 레이블, OBJ_LABEL, 0, 0, 0);
ObjectSet(상단 밴드 레이블, OBJPROP_XDISTANCE, 20);
ObjectSet(상단 밴드 레이블, OBJPROP_YDISTANCE, 80);
ObjectSetText(upperbandlabel, "UpperbandValue는 " + DoubleToStr(UpperBand,2), 10, "Arial", DeepSkyBlue);
// 낮은 밴드 값
ObjectDelete(lowerbandlabel);
ObjectCreate(lowerbandlabel, OBJ_LABEL, 0, 0, 0);
ObjectSet(lowerbandlabel, OBJPROP_XDISTANCE, 20);
ObjectSet(lowerbandlabel, OBJPROP_YDISTANCE, 100);
ObjectSetText(lowerbandlabel, "LowerBandValue는 " + DoubleToStr(LowerBand,2), 10, "Arial", DeepSkyBlue);
//----
리턴(0);
}
//+----------------------------------------------- -------------------+
KG 지원 및 저항 모드
여보세요,
첨부된 지지 및 저항 지표 중 하나를 수정할 사람이 필요합니다. 첫 번째는 브레이크아웃이 발생하면 경고가 표시됩니다. 새로운 지지선이나 저항선이 나타나면 바로 경고가 필요합니다. 이 지표는 최고의 지지선/저항선 지표 중 하나이며 특히 더 높은 기간에 매우 강력합니다.
감사해요
kg_support_and_resistance.mq4 또는
kg_support_and_resistance_alert_revision_2.ex4