모든 시장 주문을 반복하고 lastTicket()을 사용하여 마지막 주문을 선택하는 함수 가 있다고 가정해 보겠습니다. 그런 다음 ot = orderopentime() 을 사용합니다. 프로그램의 다른 기능에서 ot 값을 사용할 수 있도록 ot 값을 얻는 방법은 무엇입니까? 예를 들어 모든 함수를 통해 내부 루프에서 checko()를 호출하고 싶지 않습니다.
모든 시장 주문을 반복하고 lastTicket()을 사용하여 마지막 주문을 선택하는 함수가 있다고 가정해 보겠습니다. 그런 다음 ot = orderopentime() 을 사용합니다. 프로그램의 다른 기능에서 ot 값을 사용할 수 있도록 ot 값을 얻는 방법은 무엇입니까? 예를 들어 모든 함수를 통해 내부 루프에서 checko()를 호출하고 싶지 않습니다.
무효 체크()
{
if (ot>presetdatetime)
{
닫기 주문();
}
}
헤르메스
질문: 마지막 주문 티켓 이란 가장 큰 것(일반적으로 가장 최근에 주문한 것) 또는 가장 작은 것(일반적으로 가장 오래된 것)을 의미합니까?
안녕하세요 친구. Thinkorswim을 위한 훌륭한 지표 Dynamic_Momentum_Index입니다. 메타 트레이더 4에 대해 다시 작성할 수 있습니까?. 아니면 누군가가 MT4에 대한 그러한 지표를 가지고 있습니까?
더 낮은 선언;입력 가격 = 닫기;입력 stdevLength = 5;입력 avgOfStdevLength = 10;입력 DYMILength = 30;입력 DYMILengthLowerLimit = 3;입력 DYMILengthUpperLimit = 30;assert(DYMILengthLowerLimit > 0, "'dymi 길이 하한 : 양수여야 함' " + DYMILengthLowerLimit);assert(DYMILengthLowerLimit와 DYMILengthUpperLimit 사이의 DYMILength, "'dymi 길이'는 하한과 상한 사이여야 합니다. " + DYMILength);def std = stdev(price, stdevLength);def ratio = std / Average(std, avgOfStdevLength);def dynamicLength = Floor(DYMILength / ratio);def limitedLength = DYMILengthLowerLimit와 DYMILengthUpperLimit 사이의 dynamicLength이면 dynamicLength else 0;def sf = 2 / (limitedLength + 1);def bn = Max(barNumber(), 0); # ema multiplierdef에 대한 정밀도 10^-5 expIndex = if limitedLength == 0 then 1 else max(1, bn - ceil(-5 / lg(1 - sf)));def fromIndex = if isNan(expIndex) then 1 else expIndex;def chg = 가격 - 가격[1];def absChg = AbsValue(chg);def netChgAvg = fold indexN = fromIndex to bn + 1 with accuN do sf * (if isnan(getValue(chg, bn - indexN)) then 0 else getValue(chg, bn - indexN)) + (1 - sf) * accuN;def totChgAvg = fold indexT = fromIndex to bn + 1 with accuT do sf * (if isnan(getValue(absChg, bn - indexT)) then 0 else getValue(absChg, bn - indexT)) + (1 - sf) * accuT;def RSI = if totChgAvg != 0 및limitedLength != 0 다음 50 * (netChgAvg / totChgAvg + 1) else RSI[1];plot DYMI = RSI;과매도를 플롯 = 90;과매도를 플롯 = 10;DYMI.DefineColor("과매도", GetColor(5)); DYMI.DefineColor("Normal", GetColor(7));DYMI.DefineColor("OverSold", GetColor(1));DYMI.AssignValueColor(RSI > 과매수인 경우 DYMI.Color("과매수") else if RSI = OverBought , "과매수", Alert.BAR, Sound.ring);경고(DYMI=과매수 후 고가*72 else double.nan;DotDn.setStyle(curve.POINTS);DotDn.setPaintingStrategy(paintingStrategy.arROW_DOWN);DotDn.setLineWeight( 3);DotDn.setDefaultColor(color.wHITE);plot DotUp = if DYMI<=OverSold then low*-2 else double.nan;Dotup.setStyle(curve.POINTS);Dotup. setPaintingStrategy(paintingStrategy.arROW_UP);Dotup.setLineWeight(3);Dotup.setDefaultColor(color.wHITE);alert(Dotup, "Scalper 매수 신호", Alert.BAR, Sound.ring);alert(DotDn, "Scalper 매수 신호 ", Alert.BAR, Sound.ring);
안녕하세요 친구. Thinkorswim을 위한 훌륭한 지표 Dynamic_Momentum_Index입니다. 메타트레이더 4용으로 다시 쓸 수 있나요?. 아니면 누군가가 MT4에 대한 그러한 지표를 가지고 있습니까?
더 낮은 선언;입력 가격 = 닫기;입력 stdevLength = 5;입력 avgOfStdevLength = 10;입력 DYMILength = 30;입력 DYMILengthLowerLimit = 3;입력 DYMILengthUpperLimit = 30;assert(DYMILengthLowerLimit > 0, "'dymi 길이 하한'은 양수여야 합니다. " + DYMILengthLowerLimit);assert(DYMILengthLowerLimit와 DYMILengthUpperLimit 사이의 DYMILength, "'dymi 길이'는 하한과 상한 사이여야 합니다. " + DYMILength);def std = stdev(price, stdevLength);def ratio = std / Average(std, avgOfStdevLength);def dynamicLength = Floor(DYMILength / ratio);def limitedLength = DYMILengthLowerLimit와 DYMILengthUpperLimit 사이의 dynamicLength이면 dynamicLength else 0;def sf = 2 / (limitedLength + 1);def bn = Max(barNumber(), 0); # ema multiplierdef에 대한 정밀도 10^-5 expIndex = if limitedLength == 0 then 1 else max(1, bn - ceil(-5 / lg(1 - sf)));def fromIndex = if isNan(expIndex) then 1 else expIndex;def chg = 가격 - 가격[1];def absChg = AbsValue(chg);def netChgAvg = fold indexN = fromIndex에서 b로 n + 1 with accuN do sf * (if isnan(getValue(chg, bn - indexN)) then 0 else getValue(chg, bn - indexN)) + (1 - sf) * accuN;def totChgAvg = fold indexT = fromIndex to bn + 1 with accuT do sf * (if isnan(getValue(absChg, bn - indexT)) then 0 else getValue(absChg, bn - indexT)) + (1 - sf) * accuT;def RSI = if totChgAvg != 0 및limitedLength != 0 다음 50 * (netChgAvg / totChgAvg + 1) else RSI[1];plot DYMI = RSI;과매도를 플롯 = 90;과매도를 플롯 = 10;DYMI.DefineColor("과매도", GetColor(5)); DYMI.DefineColor("Normal", GetColor(7));DYMI.DefineColor("OverSold", GetColor(1));DYMI.AssignValueColor(RSI > 과매수인 경우 DYMI.Color("과매수") else if RSI = OverBought , "과매수", Alert.BAR, Sound.ring);경고(DYMI=과매수 후 고가*72 else double.nan;DotDn.setStyle(curve.POINTS);DotDn.setPaintingStrategy(paintingStrategy.arROW_DOWN);DotDn.setLineWeight( 3);DotDn.setDefaultColor(color.wHITE);plot DotUp = if DYMI<=OverSold then low*-2 else double.nan;Dotup.setStyle(curve.POINTS);Dotup.s etPaintingStrategy(paintingStrategy.arROW_UP);Dotup.setLineWeight(3);Dotup.setDefaultColor(color.wHITE);alert(Dotup, "Scalper 매수 신호", Alert.BAR, Sound.ring);alert(DotDn, "Scalper 매수 신호 ", Alert.BAR, Sound.ring);
올버스,
이 게시물을 참조하십시오: https://www.mql5.com/en/forum/172919/page4 . 아마 그게 도움이 될거야
안녕하세요 mladen, 이 부탁을 드리고 싶습니다. MT4용으로 이 프로그램을 번역할 가능성이 있습니까?
암튼 감사합니다..
이것은 다른 언어 로 된 프로그램입니다. // var: domanda(0), offerta(0), var1(0), var2(0), indzona1;
// var1= ((H/C[1])-1)*V;
// var2= ((L/C[1]-1)*V*(-1);
// 도만다= MOV(var1,450,S);
// 제안= MOV(var2,450,S);
// indzona1= CreateWiewport(100);
// PlotChart(domanda, indzona1, 녹색, 솔리드, 1);
// PlotChart(offerta, indzona1, red, solid, 1); 이것은 MT4 언어에 대한 작업이지만 최신 업데이트 이후에는 더 이상 작동하지 않습니다.
#속성 표시기_분리_창
#속성 표시기_버퍼 2
#property indicator_color1 녹색
#property indicator_color2 빨간색
#속성 표시기_너비1 1
#속성 표시기_너비2 1
extern int periodo=128;
더블 도만다[];
이중 제안[];
//+----------------------------------------------- -------------------+
//| 커스텀 인디케이터 초기화 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
IndicatorDigits(6);
표시 버퍼(2);
SetIndexBuffer(0,DOMANDA);
SetIndexBuffer(1,OFFERTA);
리턴(0);
}
//+----------------------------------------------- -------------------+
//| 커스텀 인디케이터 초기화 해제 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
//----
//----
리턴(0);
}
//+----------------------------------------------- -------------------+
//| 사용자 지정 표시기 반복 기능 |
//+----------------------------------------------- -------------------+
정수 시작()
{
int counted_bars=IndicatorCounted();
int limit = 막대 - counted_bars;
이중 var_dom[10000];
이중 var_off[10000];
ArraySetAsSeries(var_dom,true);
ArraySetAsSeries(var_off,true);
for(int i=0; i<limit; i++)
{
var_dom = ((고가/종가)-1)*볼륨;
var_off = ((낮음/종가)-1)*볼륨 * (-1);
DOMANDA = iMAOnArray(var_dom,0,periodo,0,MODE_SMA,i);
제안 = iMAOnArray(var_off,0,periodo,0,MODE_SMA,i);
}
리턴(0);
} //+---------------------------------------------- --------------------+
안녕하세요 mladen, 이 부탁을 드리고 싶습니다. MT4용으로 이 프로그램을 번역할 가능성이 있습니까?
암튼 감사합니다..
이것은 다른 언어 로 된 프로그램입니다. // var: domanda(0), offerta(0), var1(0), var2(0), indzona1;
// var1= ((H/C[1])-1)*V;
// var2= ((L/C[1]-1)*V*(-1);
// 도만다= MOV(var1,450,S);
// 제안= MOV(var2,450,S);
// indzona1= CreateWiewport(100);
// PlotChart(domanda, indzona1, 녹색, 솔리드, 1);
// PlotChart(offerta, indzona1, red, solid, 1); 이것은 MT4 언어에 대한 작업이지만 최신 업데이트 이후에는 더 이상 작동하지 않습니다.
#속성 표시기_분리_창
#속성 표시기_버퍼 2
#property indicator_color1 녹색
#property indicator_color2 빨간색
#속성 표시기_너비1 1
#속성 표시기_너비2 1
extern int periodo=128;
더블 도만다[];
이중 제안[];
//+----------------------------------------------- -------------------+
//| 커스텀 인디케이터 초기화 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
IndicatorDigits(6);
표시기버퍼(2);
SetIndexBuffer(0,DOMANDA);
SetIndexBuffer(1,OFFERTA);
리턴(0);
}
//+----------------------------------------------- -------------------+
//| 커스텀 인디케이터 초기화 해제 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
//----
//----
리턴(0);
}
//+----------------------------------------------- -------------------+
//| 사용자 지정 표시기 반복 기능 |
//+----------------------------------------------- -------------------+
정수 시작()
{
int counted_bars=IndicatorCounted();
int limit = 막대 - counted_bars;
이중 var_dom[10000];
이중 var_off[10000];
ArraySetAsSeries(var_dom,true);
ArraySetAsSeries(var_off,true);
for(int i=0; i<limit; i++)
{
var_dom = ((고가/종가)-1)*볼륨;
var_off = ((낮음/종가)-1)*볼륨 * (-1);
DOMANDA = iMAOnArray(var_dom,0,periodo,0,MODE_SMA,i);
제안 = iMAOnArray(var_off,0,periodo,0,MODE_SMA,i);
}
리턴(0);
} //+---------------------------------------------- --------------------+스테판
여기 있습니다:
스테판 여기 있습니다:
네, 완벽합니다!!!!
정말 감사합니다!!!
씨. mladen, thinkorswim 지표를 메타트레이더 4 지표(포스트 2474)로 다시 쓸 수 있습니까?
안녕하세요 여러분 ,
모든 시장 주문을 반복하고 lastTicket()을 사용하여 마지막 주문을 선택하는 함수 가 있다고 가정해 보겠습니다. 그런 다음 ot = orderopentime() 을 사용합니다. 프로그램의 다른 기능에서 ot 값을 사용할 수 있도록 ot 값을 얻는 방법은 무엇입니까? 예를 들어 모든 함수를 통해 내부 루프에서 checko()를 호출하고 싶지 않습니다.
무효 체크()
{
if (ot>presetdatetime)
{
닫기 주문();
}
}
안녕하세요 여러분 ,
모든 시장 주문을 반복하고 lastTicket()을 사용하여 마지막 주문을 선택하는 함수가 있다고 가정해 보겠습니다. 그런 다음 ot = orderopentime() 을 사용합니다. 프로그램의 다른 기능에서 ot 값을 사용할 수 있도록 ot 값을 얻는 방법은 무엇입니까? 예를 들어 모든 함수를 통해 내부 루프에서 checko()를 호출하고 싶지 않습니다.
무효 체크()
{
if (ot>presetdatetime)
{
닫기 주문();
}
}헤르메스
질문: 마지막 주문 티켓 이란 가장 큰 것(일반적으로 가장 최근에 주문한 것) 또는 가장 작은 것(일반적으로 가장 오래된 것)을 의미합니까?
헤르메스 질문: 라스트 오더 티켓이란 가장 큰 것(보통 가장 최근에 주문한 것) 또는 가장 작은 것(일반적으로 가장 오래된 것)을 의미합니까?
감사합니다 Mladen, 나는 가장 최신 주문인 가장 큰 것을 의미합니다.
감사합니다 Mladen, 나는 가장 최신 주문인 가장 큰 것을 의미합니다.
그런 다음 다음과 같은 기능 을 사용할 수 있습니다.
{
int largestTicketNo = -1;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
largestTicketNo = MathMax(largestTicketNo,OrderTicket());
}
//
//
//
//
//
if (largestTicketNo>-1 )
{
if (OrderSelect(largestTicketNo,SELECT_BY_TICKET,MODE_TRADES))
if (OrderOpenTime()>timeLimit)
OrderDelete(largestTicketNo);
}
}추신: 기호나 최종 매직 넘버 간에 차이를 만들지 않습니다. 그것들도 확인해야 하는 경우 위의 기능에 몇 가지 추가 코드를 추가해야 합니다.