저는 사용자 지정 표시기 를 코딩하고 있으며, 새 막대의 시작에만 있는 현재 입찰 가격을 읽기만 하면 됩니다. Open[0]을 사용할 수는 없습니다. 새 틱이 들어올 때마다 현재 막대에 대한 열린 값을 계속 반환하기 때문입니다. 새 막대가 형성될 때까지 값이 한 번만 반환되기를 원합니다.
나는 여기서 아주 간단한 것을 놓치고 있다는 것을 알고 있지만 그것을 알아내는 데 약간의 문제가 있습니다. 누군가 나를 도울 수 있습니까?
저는 사용자 지정 지표를 코딩 중이며, 새 막대의 시작에만 있는 현재 입찰 가격을 읽기만 하면 됩니다. Open[0]을 사용할 수는 없습니다. 새 틱이 들어올 때마다 현재 막대에 대한 열린 값을 계속 반환하기 때문입니다. 새 막대가 형성될 때까지 값이 한 번만 반환되기를 원합니다.
나는 여기서 아주 간단한 것을 놓치고 있다는 것을 알고 있지만 그것을 알아내는 데 약간의 문제가 있습니다. 누군가 나를 도울 수 있습니까?
감사해요,
-늑대
현재 막대 시간(Time[0])을 저장하기만 하면 됩니다. 이 값이 변경되면 새 막대가 생기므로 가격을 가져와서 새 값을 저장하고 반복합니다...
여러분, 안녕하세요,
이것은 어리석은 코딩 질문이며 이전에 어디선가 본 적이 있지만 도움이 필요합니다.
저는 사용자 지정 표시기 를 코딩하고 있으며, 새 막대의 시작에만 있는 현재 입찰 가격을 읽기만 하면 됩니다. Open[0]을 사용할 수는 없습니다. 새 틱이 들어올 때마다 현재 막대에 대한 열린 값을 계속 반환하기 때문입니다. 새 막대가 형성될 때까지 값이 한 번만 반환되기를 원합니다.
나는 여기서 아주 간단한 것을 놓치고 있다는 것을 알고 있지만 그것을 알아내는 데 약간의 문제가 있습니다. 누군가 나를 도울 수 있습니까?
감사해요,
-늑대
여러분, 안녕하세요,
이것은 어리석은 코딩 질문이며 이전에 어디선가 본 적이 있지만 도움이 필요합니다.
저는 사용자 지정 지표를 코딩 중이며, 새 막대의 시작에만 있는 현재 입찰 가격을 읽기만 하면 됩니다. Open[0]을 사용할 수는 없습니다. 새 틱이 들어올 때마다 현재 막대에 대한 열린 값을 계속 반환하기 때문입니다. 새 막대가 형성될 때까지 값이 한 번만 반환되기를 원합니다.
나는 여기서 아주 간단한 것을 놓치고 있다는 것을 알고 있지만 그것을 알아내는 데 약간의 문제가 있습니다. 누군가 나를 도울 수 있습니까?
감사해요,
-늑대현재 막대 시간(Time[0])을 저장하기만 하면 됩니다. 이 값이 변경되면 새 막대가 생기므로 가격을 가져와서 새 값을 저장하고 반복합니다...
현재 막대 시간(Time[0])을 저장하기만 하면 됩니다. 이 값이 변경되면 새 막대가 생기므로 가격을 가져와서 새 값을 저장하고 반복합니다...
오믈렛님, 감사합니다.
나는 그것에 대해 생각했어야 했는데, 나 자신에게 약간 실망했다!
도와 주셔서 감사합니다!
다른 사람이 내가 이 코드에 대해 무엇을 잘못하고 있는지 보여줄 수 있습니까?
나는 timeframe Daily와 같이 더 많은 시간 프레임을 추가하고 싶지만 무엇이 잘못되었는지 모르겠습니다.
//| #MTF_Hi_Low_Middle.mq4
//| spudfibo의 베이스. Darkkiller의 업그레이드
//: 수정을 도와준 Mladen에게 감사합니다.
//+----------------------------------------------- -------------------+
#속성 표시기_차트_창
extern string note1 = "H4 높은, 중간, 낮은 색상";
외부 색상 H4HigherColor = DeepSkyBlue;
외부 색상 H4MiddleColor = 노란색;
외부 색상 H4LowerColor = 핫핑크;
extern string note2 = "H4 상, 하, 중을 그리시겠습니까?";
extern bool H4HiLow = true;
extern bool H4Mid = true;
extern string note3 = "D1 상위, 중, 하위 색상";
외부 색상 D1HigherColor = DeepSkyBlue;
외부 색상 D1MiddleColor = 노란색;
외부 색상 D1LowerColor = 핫핑크;
extern string note4 = "D1 상, 하, 중을 그리시겠습니까?";
extern 부울 D1HiLow = true;
extern bool D1Mid = true;
이중 HiPrice, LoPrice, Range, D1HiPrice, D1LoPrice, D1Range;
날짜 시간 시작 시간;
정수 초기화()
{
리턴(0);
}
정수 초기화()
{
ObjectDelete("H4Higher");
ObjectDelete("H4Lower");
ObjectDelete("H4Middle");
ObjectDelete("D1Higher");
ObjectDelete("D1Lower");
ObjectDelete("D1Middle");
리턴(0);
}
//+----------------------------------------------- -------------------+
//| 무승부
//+----------------------------------------------- -------------------+
int DrawFibo()
{
/////////////////////////////////////////////HILO//////
if(H4HiLow)
{
if(ObjectFind("H4Higher") == -1)
ObjectCreate("H4Higher", OBJ_FIBO, 0, StartTime, HiPrice+Range, StartTime, HiPrice);
또 다른
{
ObjectSet("H4Higher",OBJPROP_TIME2, 시작 시간);
ObjectSet("H4Higher",OBJPROP_TIME1, 시작 시간);
ObjectSet("H4Higher",OBJPROP_PRICE1,고가+범위);
ObjectSet("H4Higher",OBJPROP_PRICE2,HiPrice);
}
ObjectSet("H4Higher", OBJPROP_LEVELCOLOR, H4HigherColor);
ObjectSet("H4Higher", OBJPROP_FIBOLEVELS,1);
ObjectSet("H4Higher", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("H4Higher", 0, "H4 HIGHER- %$");
ObjectSet("H4Higher", OBJPROP_RAY,true);
ObjectSet("H4Higher", OBJPROP_BACK,true);
ObjectSet("H4Higher", OBJPROP_COLOR,EMPTY);
if(ObjectFind("H4Lower") == -1)
ObjectCreate("H4Lower", OBJ_FIBO, 0, StartTime, LoPrice-Range, StartTime, LoPrice);
또 다른
{
ObjectSet("H4Lower", OBJPROP_TIME2, 시작 시간);
ObjectSet("H4Lower", OBJPROP_TIME1, 시작 시간);
ObjectSet("H4낮은", OBJPROP_PRICE1, 낮은 가격 범위);
ObjectSet("H4Lower", OBJPROP_PRICE2,LoPrice);
}
ObjectSet("H4Lower", OBJPROP_LEVELCOLOR, H4LowerColor);
ObjectSet("H4낮음", OBJPROP_FIBOLEVELS, 1);
ObjectSet("H4낮음", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("H4Lower", 0, "H4 LOWER - %$");
ObjectSet("H4Lower", OBJPROP_RAY, true);
ObjectSet("H4Lower", OBJPROP_BACK, true);
ObjectSet("H4Lower", OBJPROP_COLOR, EMPTY);
}
if(D1HiLow)
{
if(ObjectFind("D1Higher") == -1)
ObjectCreate("D1Higher", OBJ_FIBO, 0, D1StartTime, D1HiPrice+D1Range, D1StartTime, D1HiPrice);
또 다른
{
ObjectSet("D1Higher", OBJPROP_TIME2, D1StartTime);
ObjectSet("D1Higher", OBJPROP_TIME1, D1StartTime);
ObjectSet("D1Higher", OBJPROP_PRICE1, D1HiPrice+D1Range);
ObjectSet("D1Higher", OBJPROP_PRICE2, D1HiPrice);
}
ObjectSet("D1Higher", OBJPROP_LEVELCOLOR, D1HigherColor);
ObjectSet("D1고급", OBJPROP_FIBOLEVELS,1);
ObjectSet("D1상위", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("D1Higher", 0, "H4 HIGHER- %$");
ObjectSet("D1Higher", OBJPROP_RAY, true);
ObjectSet("D1Higher", OBJPROP_BACK, true);
ObjectSet("D1상위", OBJPROP_COLOR, EMPTY);
if(ObjectFind("D1Lower") == -1)
ObjectCreate("D1Lower", OBJ_FIBO, 0, D1StartTime, D1LoPrice-D1Range, D1StartTime, 1LoPrice);
또 다른
{
ObjectSet("D1Lower", OBJPROP_TIME2, D1StartTime);
ObjectSet("D1Lower", OBJPROP_TIME1, D1StartTime);
ObjectSet("D1Lower", OBJPROP_PRICE1, D1LoPrice-D1Range);
ObjectSet("D1낮음", OBJPROP_PRICE2, D1LoPrice);
}
ObjectSet("D1Lower", OBJPROP_LEVELCOLOR, D1LowerColor);
ObjectSet("D1낮음", OBJPROP_FIBOLEVELS,1);
ObjectSet("D1낮음", OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("D1Lower", 0, "H4 LOWER - %$");
ObjectSet("D1Lower", OBJPROP_RAY, true);
ObjectSet("D1Lower", OBJPROP_BACK, true);
ObjectSet("D1Lower", OBJPROP_COLOR, EMPTY);
}
//////////////////////////////////////////HILO/////////
/////////////////////////////////////////가운데////
if(H4Mid)
if(ObjectFind("H4Middle") == -1)
ObjectCreate("H4Middle", OBJ_FIBO, 0, StartTime, HiPrice, StartTime+PERIOD_H4*60, LoPrice);
또 다른
{
ObjectSet("H4Middle", OBJPROP_TIME2, 시작 시간);
ObjectSet("H4Middle", OBJPROP_TIME1, StartTime+PERIOD_H4*60);
ObjectSet("H4Middle", OBJPROP_PRICE1, HiPrice);
ObjectSet("H4Middle", OBJPROP_PRICE2, LoPrice);
}
ObjectSet("H4Middle", OBJPROP_LEVELCOLOR, H4MiddleColor);
ObjectSet("H4Middle", OBJPROP_FIBOLEVELS,1);
ObjectSet("H4Middle", OBJPROP_FIRSTLEVEL+0,0.500); ObjectSetFiboDescription("H4Middle", 0, "H4 중간 - %$");
ObjectSet("H4Middle", OBJPROP_RAY, true);
ObjectSet("H4Middle", OBJPROP_BACK, true);
ObjectSet("H4Middle", OBJPROP_COLOR, EMPTY);
}
if(D1Mid)
if(ObjectFind("D1Middle") == -1)
ObjectCreate("D1Middle", OBJ_FIBO, 0, D1StartTime, D1HiPrice, D1StartTime+PERIOD_D1*60, D1LoPrice);
또 다른
{
ObjectSet("D1Middle", OBJPROP_TIME2, D1StartTime);
ObjectSet("D1Middle", OBJPROP_TIME1, D1StartTime+PERIOD_D1*60);
ObjectSet("D1Middle", OBJPROP_PRICE1, D1HiPrice);
ObjectSet("D1Middle", OBJPROP_PRICE2, D1LoPrice);
}
ObjectSet("D1Middle", OBJPROP_LEVELCOLOR, D1MiddleColor);
ObjectSet("D1Middle", OBJPROP_FIBOLEVELS,1);
ObjectSet("D1Middle", OBJPROP_FIRSTLEVEL+0,0.500); ObjectSetFiboDescription("D1Middle", 0, "D1 MIDDLE - %$");
ObjectSet("D1Middle", OBJPROP_RAY, true);
ObjectSet("D1Middle", OBJPROP_BACK, true);
ObjectSet("D1Middle", OBJPROP_COLOR, EMPTY);
}
/////////////////////////////////////////가운데////
//+----------------------------------------------- +
//| 표시기 시작 기능
//+----------------------------------------------- +
정수 시작()
{
int shift = iBarShift(NULL, PERIOD_D1, 시간[0]) + 1; // H4
HiPrice = iHigh(NULL, PERIOD_H4, 시프트);
LoPrice = iLow(NULL, PERIOD_H4, 시프트);
StartTime = iTime(NULL, PERIOD_H4, 시프트);
D1HiPrice = iHigh(NULL, PERIOD_D1, 시프트);
D1LoPrice = iLow(NULL, PERIOD_D1, 시프트);
D1StartTime = iTime(NULL, PERIOD_D1, 시프트);
if(TimeDayOfWeek(StartTime) == 0/*일요일*/)
{//금요일 높음 및 낮음 추가
HiPrice = MathMax(HiPrice, iHigh(NULL,PERIOD_H4, shift+1));
LoPrice = MathMin(LoPrice, iLow(NULL,PERIOD_H4, shift+1));
D1HiPrice = MathMax(D1HiPrice, iHigh(NULL, PERIOD_D1, shift+1));
D1LoPrice = MathMin(D1LoPrice, iLow(NULL, PERIOD_D1, shift+1));
}
범위 = HiPrice - LoPrice;
D1Range = D1HiPrice - D1LoPrice;
DrawFibo();
반환(0);
}
//+------------------------------+
Bellow this 나는 H4 high low mid 용 원본을 첨부합니다.
도움을 받고 싶습니다. 델타 스톱을 손절매 로 사용하려고 합니다.
그리고 후행 정지. 첨부 파일은 EA입니다.
이것이 가능합니까?
//+------------------------------------------------------------------+
//| 수정됨 Avery T. Horton, Jr. 일명 TheRumpledOne |
//| |
//| |
//|
//
// 구글 검색 "therumpledone mt4"
//
//+----------------------------------------------- -------------------+
//| _Fibo_Hi_Low_Middle.mq4
//| spudfibo의 베이스. Darkkiller의 업그레이드
//: 수정을 도와준 Mladen에게 감사합니다.
//+----------------------------------------------- -------------------+
#속성 표시기_차트_창
외부 int myChartPeriod = 0 ;
extern string note1 = "높은, 중간, 낮은 색상";
외부 색상 HigherColor = DeepSkyBlue;
외부 색상 MiddleColor = 노란색;
외부 색상 LowerColor = HotPink;
extern string note2 = "가운데를 그리시겠습니까?";
extern bool HiLow = true;
extern bool 중간 = true;
이중 HiPrice, LoPrice, 범위;
날짜 시간 시작 시간;
문자열 tChartPeriod, tHigher, tLower, tMiddle ;
정수 초기화()
{
if(myChartPeriod == 0) { myChartPeriod = 기간() ; }
tChartPeriod = TimeFrameToString(myChartPeriod) ;
tHigher = tChartPeriod + "H" ;
tLower = tChartPeriod + "L" ;
tMiddle = tChartPeriod + "M" ;
리턴(0);
}
정수 초기화()
{
ObjectDelete(tHigher);
개체삭제(tLower);
ObjectDelete(tMiddle);
리턴(0);
}
//+----------------------------------------------- -------------------+
//| 무승부
//+----------------------------------------------- -------------------+
int DrawFibo()
{
if(하이로우)
{
if(ObjectFind(tHigher) == -1)
ObjectCreate(tHigher,OBJ_FIBO,0,StartTime,HiPrice+Range,StartTime,HiPrice);
또 다른
{
ObjectSet(tHigher,OBJPROP_TIME2, 시작 시간);
ObjectSet(tHigher,OBJPROP_TIME1, 시작 시간);
ObjectSet(tHigher,OBJPROP_PRICE1,HiPrice+Range);
ObjectSet(tHigher,OBJPROP_PRICE2,HiPrice);
}
ObjectSet(tHigher,OBJPROP_LEVELCOLOR,HigherColor);
ObjectSet(tHigher,OBJPROP_FIBOLEVELS,1);
ObjectSet(tHigher,OBJPROP_FIRSTLEVEL+0,0.0);
ObjectSetFiboDescription(tHigher,0,tChartPeriod+" HIGHER- %$");
ObjectSet(tHigher,OBJPROP_RAY,true);
ObjectSet(tHigher,OBJPROP_BACK,true);
ObjectSet(tHigher,OBJPROP_COLOR,EMPTY);
if(ObjectFind(tLower) == -1)
ObjectCreate(tLower,OBJ_FIBO,0,StartTime,LoPrice-Range,StartTime,LoPrice);
또 다른
{
ObjectSet(tLower,OBJPROP_TIME2, 시작 시간);
ObjectSet(tLower,OBJPROP_TIME1, 시작 시간);
ObjectSet(tLower,OBJPROP_PRICE1,LoPrice-Range);
ObjectSet(tLower,OBJPROP_PRICE2,LoPrice);
}
ObjectSet(tLower,OBJPROP_LEVELCOLOR,LowerColor);
ObjectSet(tLower,OBJPROP_FIBOLEVELS,1);
ObjectSet(tLower,OBJPROP_FIRSTLEVEL+0,0.0);
ObjectSetFiboDescription(tLower,0,tChartPeriod+" LOWER - %$");
ObjectSet(tLower,OBJPROP_RAY,true);
ObjectSet(tLower,OBJPROP_BACK,true);
ObjectSet(tLower,OBJPROP_COLOR,EMPTY);
}
/////////////////////////////////////////가운데//////// ////////////////////
if(중)
if(ObjectFind(tMiddle) == -1)
ObjectCreate(tMiddle,OBJ_FIBO,0,StartTime,HiPrice,StartTime+myChartPeriod*60,LoPrice);
또 다른
{
ObjectSet(tMiddle,OBJPROP_TIME2, 시작 시간);
ObjectSet(tMiddle,OBJPROP_TIME1, StartTime+myChartPeriod*60);
ObjectSet(tMiddle,OBJPROP_PRICE1,HiPrice);
ObjectSet(tMiddle,OBJPROP_PRICE2,LoPrice);
}
ObjectSet(tMiddle,OBJPROP_LEVELCOLOR,MiddleColor);
ObjectSet(tMiddle,OBJPROP_FIBOLEVELS,1);
ObjectSet(tMiddle,OBJPROP_FIRSTLEVEL+0,0.500);
ObjectSetFiboDescription(tMiddle,0,tChartPeriod+" 중간 - %$");
ObjectSet(tMiddle,OBJPROP_RAY,true);
ObjectSet(tMiddle,OBJPROP_BACK,true);
ObjectSet(tMiddle,OBJPROP_COLOR,EMPTY);
}
//+----------------------------------------------- -------------------+
//| 표시기 시작 기능
//+----------------------------------------------- -------------------+
정수 시작()
{
int shift = iBarShift(NULL, myChartPeriod, 시간[0]) + 1; //
고가 = iHigh(NULL,myChartPeriod,shift);
LoPrice = iLow(NULL, myChartPeriod, 시프트);
시작 시간 = iTime(NULL, myChartPeriod, 시프트);
if(TimeDayOfWeek(StartTime)==0/*일요일*/)
{//금요일 높음 및 낮음 추가
HiPrice = MathMax(HiPrice,iHigh(NULL,myChartPeriod,shift+1));
LoPrice = MathMin(LoPrice,iLow(NULL,myChartPeriod,shift+1));
}
범위 = HiPrice-LoPrice;
DrawFibo();
// 주석( "Period_", tChartPeriod ) ;
리턴(0);
}
//+----------------------------------------------- -------------------+
문자열 TimeFrameToString(int tf)
{
문자열 tfs;
스위치(tf) {
사례 PERIOD_M1: tfs="M1" ; 부서지다;
사례 PERIOD_M5: tfs="M5" ; 부서지다;
사례 PERIOD_M15: tfs="M15" ; 부서지다;
사례 PERIOD_M30: tfs="M30" ; 부서지다;
케이스 PERIOD_H1: tfs="H1" ; 부서지다;
사례 PERIOD_H4: tfs="H4" ; 부서지다;
케이스 PERIOD_D1: tfs="D1" ; 부서지다;
사례 PERIOD_W1: tfs="W1" ; 부서지다;
사례 PERIOD_MN1: tfs="MN";
}
반환(tfs);
}
그게 내가 한 방법입니다.
추신: 내 첨부 파일이 삭제되는 이유는 무엇입니까?
MoveStopOnce
안녕하세요, 이 MoveStopOnce 코드가 작동하도록 하려고 하지만 Sell 거래는 코드에 의해 수정되지 않고 Buys만 수정되는 것 같습니다. 문제가 있나요?
//Buys
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
[/code]
[code]
//Sells
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
MoveStopOnce
나는이 문제가 있었다.
다음을 추가해야 한다고 생각합니다.
if (OrderType() == OP_BUY)
그리고 판매 코드에 OP_SELL을 사용합니다.
빅비
나는이 문제가 있었다.
다음을 추가해야 한다고 생각합니다.
if (OrderType() == OP_BUY)
그리고 판매 코드에 OP_SELL을 사용합니다.
빅비알겠습니다. 집에 도착하면 시도해 보겠습니다. 그런데 왜 이미 구매 주문과 함께 작동합니까?
감사해요