묻다! - 페이지 145

 

MQL을 사용한 웹 서비스 호출

전문가 고문에게서 외부 웹 서비스를 호출하는 방법을 아는 사람이 있습니까?

 
 

나는 이것이 기본적인 것이라고 생각합니다. 단지 나는 그것에 접근하는 방법을 모릅니다. 내가 일간이 아닌 차트에 있는지 여부에 관계없이 누군가가 며칠 전의 일일 시가/종가를 검색하는 방법을 알려줄 수 있습니까? 샘플 코드를 제공하면 도움이 될 것입니다.

고마워

동부 표준시

 

iopen 및 iclose 에 대한 MetaEditor 도움말 보기

럭스

 
luxinterior:
iopen 및 iclose Lux에 대한 MetaEditor 도움말 보기

감사합니다. 트릭을 했습니다...

동부 표준시

 

코드 수정 요청

여보세요,

첨부된 표시기를 수정하여 다음을 수행하려고 합니다.

1) 시작 날짜를 color1과 일치시키십시오. 바로 지금 표시기는 시리즈의 두 번째 색상(color2)을 첫 번째 날짜가 아닌 시작 날짜에 표시합니다.

2) 시리즈의 각 플롯 라인의 날짜, 색상, 시가, 고가, 저가 및 종가를 출력합니다. 새 데이터를 사용할 수 있게 되면 파일이 추가됩니다.

미리 도와주셔서 감사합니다.

문안 인사,

 

가장 낮은 낮은 계산/높은 시간 프레임 추세 사용/확산 문제 방지

다음 요구 사항을 제공할 수 있는 코딩 샘플을 찾으려고 합니다.

정류장 위치를 계산하기 위해 주어진 시간 프레임 동안 EA가 마지막 X 개의 막대 동안 가장 낮은 값(또는 가장 높은 값)을 말할 수 있는 코딩을 보고 싶습니다. 그런 다음 그 가격을 더 적게 사용합니다. (또는 최고가의 경우 플러스) 정지 레벨을 설정하기 위한 X 핍 수.

새로운 짧은 시간 프레임 주문이 더 큰 시간 프레임의 추세와 같은 방향으로 배치되도록 하려면 새 주문을 짧은 시간 프레임 차트에 동일한 방향으로만 배치할 수 있는 코딩을 보고 싶습니다. 더 큰 시간 프레임 차트의 추세로 방향. 간단한 예로서, 15분 차트에 첨부된 EA가 MA1과 MA2의 교차 UP에 매수 주문을 하기를 원한다고 가정합니다(이전 질문에 따라 마지막 5개 막대 중 가장 낮은 값보다 5핍 아래에 스탑이 배치됨) ) 그러나 동일한 쌍에 대한 1시간 차트에서 현재 가격이 X 기간 MA보다 높거나(또는 매도의 경우 아래) 새 주문을 하는 코딩을 찾고 있습니다.

비정상적으로 넓은 스프레드로 인해 주문이 잘못 열리거나 닫히는 것을 방지하기 위해 현재(또는 이전 막대도 고려할 수 있음)의 CLOSE를 기반으로 주문 작업을 트리거하는 코딩을 보고 싶습니다. 바는 여전히 열려 있습니다. 예를 들어 IBFX를 사용하면 일반적으로 5핍이었던 스프레드가 종종 20핍만큼 넓어지는 것을 보았습니다(한 번은 53핍도 보았습니다!). 막대가 형성되는 동안 MA가 일시적으로 교차했기 때문에 그러한 광범위한 확산 조치는 종종 새로운 주문을 열었던 것 같습니다... 그러나 막대가 닫힐 때 그들은 교차하지 않았으므로 저에게 매수 주문을 남겨두었습니다. 원하지 않는다!

이러한 문제를 해결하기 위한 코드 샘플은 크게 감사하겠습니다.

 
파일:
 

친애하는 코더 구루,

색바꾸는게 제일 쉬운 코딩일지도........... 못하겠어...........

이 코드의 색상과 저항을 다른 색상으로 변경하기만 하면 됩니다........

여기에서 저항과 지지는 비슷한 색입니다...........

그리고 인디케이터가 삭제되어도 객체는 삭제되지 않습니다..............

미리 감사합니다..............

파일:
 

후행 정지 / 1 위험 또는 위치 M에 대한 도움말

안녕하세요 여러분,

내 문제에 대한 포럼 솔루션에서 검색을 시도했습니다.

내 EA 시작 시:

//---- buy conditions

if(Ask > mybuyconditions)

{

ticket=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-lowestof10bars), ((BBupper-BBlower)/(Ask-lowestof10bars))*1000 ,"Einstieg 1",magic+1,0,Green);

}

//---- sell conditions

if(Bid < mysellconditions)

{

ticket=OrderSend(Symbol(),OP_SELL,LotsShort(),Bid,Spread,Ask+(highestof10bars-Bid), ((BBupper-BBlower)/(highestof10bars-Bid))/100 ,"Einstieg -1",magic-1,0,Red);

}

//----[/CODE]

Stopploss: its easy 10 bars hi/lo

Takeprofit: here i write my formula for my Trailingstop, and that is:

Take the differenz of BBupper - BBlower at the order open time. Then divide by StopLoss in Pips and you have an Factor. Then take the actual BB differenz and divide it by this Faktor. NOW WE HAVE OUR VOLA BB TRAILINGSTOPP!!!!!

SO, my big problem is now to save this FAKTOR!!!! I saved it in th Takeprofit of Ordersend, it works but it is not right!!!!!

And know the 2te Question:

Position Management:

so my order is open and i have my trailing stopp that trails : So and now if the trailingstop is > orderopenprice send next ORDER!!! It's logical because so i can always sicure to risk just my 1 R Risk.

.... if Trailingstopp is > orderopenprice of secondOrder send 3te order.

HERE MY EXAMPLES:

for(int i = (OrdersTotal()-1); i >= 0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 2",magic+2,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2 && CalculateCurrentAfterOrders(Symbol()) <= 1)

{

if(OrderStopLoss()<Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 3",magic+3,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3 && CalculateCurrentAfterOrders(Symbol()) <= 2)

{

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

}

}

}

[CODE] if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

{

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 2",magic+2,0,Green);

return;

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 3",magic+3,0,Green);

return;

}

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(CalculateCurrentOrders(Symbol()) == 0)

{

OrderClose(ticket1,OrderLots(),Ask,Spread,Red); return;

}

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3)

{

OrderClose(i,OrderLots(),Ask,Spread,Red); return;

}

누군가가 이 문제를 해결할 수 있기를 바랍니다!!!!! 모두에게 감사합니다.