MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1618

 
Vitaly Muzichenko # :

라이브러리를 사용하지 않고 가능한가요?

고맙습니다!

 
MakarFX # :
이제 시장이 닫히고 TimeCurrent()는 변경되지 않습니다. 토굴 확인, 주말에도 작동

왜 진드기에 의존합니까? 버튼은 그들에 의존해서는 안됩니다.

 

안녕하세요.

브로커에서 ndx(mt4)에 대한 M1 견적 아카이브를 본 사람 몇 가지 전략을 테스트하고 싶은데 2개월 이상 있는 사람이 없습니다.

제가 알기로는 볼륨이 커서 중개인이 다운로드를 허용하지 않습니다. 메인 커플만 가능합니다.

누군가가 서버의 폴더에 남아있을 수 있습니까? 적어도 1년 동안.

 
문제가 해결되었습니다.
 
안녕하세요! 나는 여기에 쓰기로 결정했습니다 ... 아마도 누군가가 응답 할 것입니다 !!! CodeBase에...오래전...지표가 게시되었습니다.이름이나 작성자가 기억나지 않습니다. 그것의 본질은 그런 공입니다 ... 우리는 수동으로 수평선을 설정합니다 .. 그리고 그것은 가격이 한 방향과 다른 방향으로이 선을 몇 번이나 넘었는지 보여줍니다 .. 그리고이 가격에 대한 통계를 보여주었습니다 ... 나는 66 페이지를 삽질했습니다 두 번하지만 찾지 못했습니다 ... 아마도 누군가가 누군가를 기억하거나 누군가가있을 수 있습니다 !!! 플리즈가 많이 필요합니다!!!
 
Sinax # :
안녕하세요! 나는 여기에 쓰기로 결정했습니다 ... 아마도 누군가가 응답 할 것입니다 !!! CodeBase에...오래전...지표가 게시되었습니다.이름이나 작성자가 기억나지 않습니다. 그것의 본질은 그런 공입니다 ... 우리는 수동으로 수평선을 설정합니다 .. 그리고 그것은 가격이 한 방향과 다른 방향으로이 선을 몇 번이나 넘었는지 보여줍니다 .. 그리고이 가격에 대한 통계를 보여주었습니다 ... 나는 66 페이지를 삽질했습니다 두 번하지만 찾지 못했습니다 ... 아마도 누군가가 누군가를 기억하거나 누군가가있을 수 있습니다 !!! 플리즈가 많이 필요합니다!!!
이거 말고:
?

 
Sergey Gridnev # :
이거 말고:
?

아니요, 그 사람이 아닙니다 ... MT4의 것은 .. 감사합니다)))

 

모두 좋은 하루!!!!

그리드 어드바이저의 코드를 작성 중이라고 말해주세요. 그리드를 닫는 원칙은 손익분기 가격에서 손실과 이익을 더한 모든 주문에 대해 이익이 있는 모든 주문이 단순하다는 것입니다.

특정 수준의 드로다운에서 그리드의 최소 및 최대 차수만 평균화되고 닫혀서 드로다운 수준이 감소하도록 아이디어를 구현하려고 합니다.

다음은 그룹 주문을 여는 코드의 일부입니다.

if (CountTrade() < MaxOrders)

{

int order_type = FindLastOrderType();

if (order_type == OP_BUY)

{

가격 = FindLastOrderPrice(OP_BUY);

if(Ask<= price - (NormalizeDouble(ATR/DivisorVolatility/Point, 0)*Point))

{

lastlot = NormalizeDouble(Lots()*MathPow(MultiplierParameter, OrdersTotal()), 2);

티켓 = OrderSend(Symbol(), OP_BUY, lastlot, Ask, slip, 0, 0, "그룹 주문", Magic, 0, Blue);

만약 (티켓 < 1)

Print("구매 주문 실패");

주문 수정(OP_BUY);

}

}

if (order_type == OP_SELL)

{

가격 = FindLastOrderPrice(OP_SELL);

if(Bid>= price + (NormalizeDouble(ATR/DivisorVolatility/Point, 0)*Point))

{

lastlot = NormalizeDouble(Lots()*MathPow(MultiplierParameter, OrdersTotal()), 2);

티켓 = OrderSend(Symbol(), OP_SELL, lastlot, Bid, slip, 0, 0, "그룹 주문", Magic, 0, Red);

만약 (티켓 < 1)

Print("판매 주문 실패!");

주문 수정(OP_SELL);

}

}

}

주문을 수정하는 명령이 나오는 코드 부분에서. 여기에서 "이익이 있는 모든 주문과 손실이 있는 모든 주문" 및 "최소 및 최대 주문의 평균화" 원칙에 따라 주문 수정을 교차했습니다.

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

//| 주문 수정 |

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

무효 ModifyOrders(int otype)

{

더블

BuyPriceMax = 0, BuyPriceMin = 0, BuyPriceMaxLot = 0, BuyPriceMinLot = 0,

SelPriceMin = 0, SelPriceMax = 0, SelPriceMinLot = 0, SelPriceMaxLot = 0


정수

BuyPriceMaxTic = 0, BuyPriceMinTic = 0, SelPriceMaxTic = 0, SelPriceMinTic = 0


더블

op = 0, lt = 0, order_lots = 0;


정수

tk = 0, b = 0, s = 0;

가격 = 0, tp = 0,


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

if(주문선택(i, SELECT_BY_POS, MODE_TRADES))

if(OrderMagicNumber() == 매직)

if(OrderSymbol() == Symbol() && OrderType() == otype)

{

연산 = NormalizeDouble(OrderOpenPrice(), Digits());

lt = NormalizeDouble(OrderLots(), 2);

tk = 주문 티켓();

if(otype == OP_BUY)

{

ㄴ++;

if(op > BuyPriceMax || BuyPriceMax == 0)

{

BuyPriceMax = op;

BuyPriceMaxLot = lt;

BuyPriceMaxTic = tk;

}

if(op < BuyPriceMin || BuyPriceMin == 0)

{

BuyPriceMin = op;

BuyPriceMinLot = lt;

BuyPriceMinTic = tk;

}

}

if(otype == OP_SELL)

{

s++;

if(op > SelPriceMax || SelPriceMax == 0)

{

SelPriceMax = op;

SelPriceMaxLot = lt;

SelPriceMaxTic = tk;

}

if(op < SelPriceMin || SelPriceMin == 0)

{

SelPriceMin = op;

SelPriceMinLot = lt;

SelPriceMinTic = tk;

}

}

if (otype == OP_BUY || otype == OP_SELL)

{

가격 += OrderOpenPrice() * OrderLots();

order_lots += OrderLots();

}

}

//************************************************ ** ***************//

이중 AwerageBuyPrice = 0, AwerageSelPrice = 0, avg_price = 0;

if(b >= 2 && Drawdown >= DrawdownClosingMinMaxOrder)

AwerageBuyPrice = NormalizeDouble((BuyPriceMax*BuyPriceMaxLot + BuyPriceMin*BuyPriceMinLot)/

(BuyPriceMaxLot + BuyPriceMinLot) + TakeProfitMinMaxOrder* Point(), Digits());

if(s >= 2 && Drawdown >= DrawdownClosingMinMaxOrder)

AwerageSelPrice = NormalizeDouble((SelPriceMax * SelPriceMaxLot + SelPriceMin * SelPriceMinLot)/

(SelPriceMaxLot + SelPriceMinLot) - TakeProfitMinMaxOrder* Point(), Digits());

if (드로다운 < DrawdownClosingMinMaxOrder)

avg_price = NormalizeDouble(price / order_lots, Digits);

//************************************************ ** ***************//

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

if(주문선택(i, SELECT_BY_POS, MODE_TRADES))

if(OrderMagicNumber() == 매직)

if(주문 기호() == 기호())

{

연산 = NormalizeDouble(OrderOpenPrice(), Digits());

tp = NormalizeDouble(OrderTakeProfit(), Digits());

lt = NormalizeDouble(OrderLots(), 2);

tk = 주문 티켓();


if(otype == OP_BUY && b >= 2 && Drawdown >= DrawdownClosingMinMaxOrder)

{

if(tk == BuyPriceMaxTic || tk == BuyPriceMinTic)

if(입찰가 < AwerageBuyPrice && tp != AwerageBuyPrice)

if(!OrderModify(tk, op, OrderStopLoss(), AwerageBuyPrice, 0, clrRed))

Print("주문 수정 오류 #", GetLastError());


if(tk != BuyPriceMaxTic && tk != BuyPriceMinTic && tp != 0)

if(!OrderModify(tk, op, 0, 0, 0, clrRed))

Print("주문 수정 오류 #", GetLastError());

}

if(otype == OP_SELL && s >= 2 && Drawdown >= DrawdownClosingMinMaxOrder)

{

if(tk == SelPriceMaxTic || tk == SelPriceMinTic)

if(질문 > AwerageSelPrice && tp != AwerageSelPrice)

if(!OrderModify(tk, op, OrderStopLoss(), AwerageSelPrice, 0, clrRed))

Print("주문 수정 오류 #", GetLastError());


if(tk != SelPriceMaxTic && tk != SelPriceMinTic && tp != 0)

if(!OrderModify(tk, op, 0, 0, 0, clrRed))

Print("주문 수정 오류 #", GetLastError());

}

if (드로다운 < DrawdownClosingMinMaxOrder)

if (otype == OP_BUY) tp = NormalizeDouble(avg_price + TakeProfitGroupOrder*포인트, 자릿수);

if (otype == OP_SELL) tp = NormalizeDouble (avg_price - TakeProfitGroupOrder*포인트, 자릿수);

{

if(OrderModify(OrderTicket(), OrderOpenPrice(), 0, tp, 0))

Print("주문이 성공적으로 수정되었습니다!");

else Print("주문 수정 오류!");

}

}

}

결과는 허용 가능한 축소 수준에 대한 그룹 주문의 다음 수정이 일반적으로 허용 가능한 축소 수준 이후에 발생하며 최소 및 최대의 평균화 및 마감이 의도한 대로 발생합니다.

그러나 더 나아가 드로다운이 줄어들면 새로운 테이크 프로핏은 어느 것에도 설치되기를 원하지 않습니다.

다음은 오류 코드가 있는 로그입니다.

이 오류를 수정하는 데 도움을 주세요!

 
EVGENII SHELIPOV # :

모두 좋은 하루!!!!

이용하다

 
MakarFX # :

이용하다

더 자세히 알려주실 수 있나요?