코딩하는 방법? - 페이지 152

 
m_43_62:
안녕

모든 친구들에게 정말 감사합니다.

지표를 어드바이저로 사용할 수 없으며 다음과 같이 지표와 함께 어드바이저를 사용해야 합니다.

PS 표시기 디렉토리에 표시기를 넣는 것을 잊지 마십시오.

파일:
 

삭제됨

--- 삭제 ---

 

마지막 MA 교차 이후 DAYS/HOURS를 표시하는 코드

마지막으로 두 MA가 교차한 시간(즉, 얼마나 오래 전)을 보여주는 코드가 필요합니다. 그것은 며칠 또는 몇 시간 안에 그것을 보여줄 수 있습니다.

도움을 주시면 감사하겠습니다!

토드

 

시장 실행으로의 전환

저는 Metatrader4의 "Instant Execution" 버전용으로 구축된 EA를 가지고 있으며 Metatrader4의 "Market Execution" 버전에서 작동하도록 코드를 변경할 사람이 필요합니다. 견적이나 질문이 있는 경우 phasna@gmail.com 으로 이메일을 보내주십시오.

감사해요

 

이 지표에 대해 EA에서 사용할 icustom 문을 아는 사람이 있습니까?

버퍼는 하나뿐입니다. SetIndexBuffer( 0, TrStopLevel ); 후행 점에 사용되는 화살표는 ObjectSet에 의해 그려집니다. icustom 문에서 이를 어떻게 선택합니까?

MT4-LevelStop-Reverse-v2-1.mq4

 
increase:
이 지표에 대해 EA에서 사용할 icustom 문을 아는 사람이 있습니까?

버퍼는 하나뿐입니다. SetIndexBuffer( 0, TrStopLevel ); 후행 점에 사용되는 화살표는 ObjectSet에 의해 그려집니다. icustom 문에서 이를 어떻게 선택합니까?

MT4-LevelStop-Reverse-v2-1.mq4

도움을 청할 사람이 있습니까?

 

스프레드 사이에 거래를 배치하는 것을 도와주세요!

좋아, 스프레드는 몇 쌍을 죽입니다. 그러나 스프레드 중간에 거래를 하기 위해 멀리 떨어져 있습니다. 이렇게 하면 핍을 절약하고 더 많은 돈을 벌 수 있습니다. 이 코드가 있는데 입찰가가 아닌 차트 가격으로 주문을 수정하도록 변경할 수 있습니까?

무효 PlaceBuyOrder()

{

이중 BuyOrders, 랏;

이중 LowestBuy = 1000, HighestBuy;

if (BarTime != 시간[0])

{

BarTime = 시간[0];

TickPrice = 0;

TradeAllowed = true;

}

새로 고침 비율();

(주문 = OrdersTotal() - 1, 주문 >= 0, 주문--)

{

if (OrderSelect(주문, SELECT_BY_POS, MODE_TRADES))

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == 참조 && OrderType() == OP_BUY)

{

if (OrderOpenPrice() < LowestBuy) LowestBuy = OrderOpenPrice();

if (OrderOpenPrice() > HighestBuy) HighestBuy = OrderOpenPrice();

주문 구매++;

}

}

}

if (거래 허용)

{

if (질문 >= HighestBuy + (TrendSpacing * 포인트))

{

// if (승수)

if (승수 == 1)

랏 = NormalizeDouble(LotSize * MathPow(LotIncrement, BuyOrders), 2);

또 다른

랏 = NormalizeDouble(LotSize + (LotIncrement * BuyOrders), 2);

}

if (요청 <= LowestBuy - (간격 * 포인트))

{

// if (승수)

if (승수 == 1)

랏 = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, BuyOrders), 2);

또 다른

랏 = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * BuyOrders), 2);

}

if (많은 == 0)

{

// if (승수)

if (승수 == 1)

로트 = NormalizeDouble(LotSize, 2);

또 다른

로트 = NormalizeDouble(LotSize, 2);

}

OrderSend(Symbol(), OP_BUY, 랏, 매도, 슬리피지, 0, 0, TradeComment, Reference, Green);

오류 = GetLastError();

if (오류 != 0)

Write("구매 주문 열기 오류: " + ErrorDescription(오류) + " (C" + 오류 + ") 묻기:" + 묻기 + " 슬리피지:" + 슬리피지);

또 다른

{

TickPrice = 닫기[0];

TradeAllowed = 거짓;

}

}

}

무효 PlaceSellOrder()

{

이중 SellOrders, 로트;

이중 최고 판매, 최저 판매 = 1000;

if (BarTime != 시간[0])

{

BarTime = 시간[0];

TickPrice = 0;

TradeAllowed = true;

}

새로 고침 비율();

(주문 = OrdersTotal() - 1, 주문 >= 0, 주문--)

{

if (OrderSelect(주문, SELECT_BY_POS, MODE_TRADES))

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == 참조 && OrderType() == OP_SELL)

{

if (OrderOpenPrice() > HighestSell) HighestSell = OrderOpenPrice();

if (OrderOpenPrice() < LowestSell) LowestSell = OrderOpenPrice();

SellOrders++;

}

}

}

if (거래 허용)

{

if (입찰가 <= LowestSell - (TrendSpacing * 포인트))

{

// if (승수)

if (승수 == 1)

랏 = NormalizeDouble(LotSize * MathPow(LotIncrement, SellOrders), 2);

또 다른

랏 = NormalizeDouble(LotSize + (LotIncrement * SellOrders), 2);

}

if (입찰가 >= HighestSell + (간격 * 포인트))

{

// if (승수)

if (승수 == 1)

랏 = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, SellOrders), 2);

또 다른

랏 = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * SellOrders), 2);

}

if (많은 == 0)

{

// if (승수)

if (승수 == 1)

로트 = NormalizeDouble(LotSize, 2);

또 다른

로트 = NormalizeDouble(LotSize, 2);

}

OrderSend(Symbol(), OP_SELL, 랏, 비드, 슬리피지, 0, 0, TradeComment, 레퍼런스, 레드);

오류 = GetLastError();

if (오류 != 0)

Write(" 판매 주문 열기 오류: " + ErrorDescription(Error) + " (D" + 오류 + ") Bid:" + Bid + " Slippage:" + Slippage);

또 다른

{

TickPrice = 닫기[0];

TradeAllowed = 거짓;

}

}

}

이것이 할 수 있는 일입니까?

 

HELP~단 1개의 오류, 3시간을 사용해도 여전히 찾을 수 없음

아래 오류를 수정하는 방법을 찾을 수 없기 때문에 매우 걱정됩니다.

아무도 나에게 실수가 어디 있는지 말해 줄 수 있습니까? 또는 디버깅하는 데 도움이됩니다. 파일을 첨부했습니다. buttom을 참조하십시오 ~ ~

'\end_of_program' - 불균형 왼쪽 괄호 C:\Program Files\ MetaTrader\experts\scripts\delete_pending_SAM.mq4 (38, 2)

스크립트 파일입니다~ ~

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

//| delete_pending.mq4 |

//| Copyright ?2004, MetaQuotes Software Corp. |

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

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#속성 링크 "http://www.metaquotes.net/"

#property show_inputs

부울 결과;

외부 이중 OverSymbolDel = 1; //0:FASLE ; 1: 참

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

//| 스크립트 " 대기 중인 주문 삭제" |

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

정수 시작()

{

for (int number=0; (number <= OrdersTotal()+1); number++ )

{for (int times=0;( times <= OrdersTotal()+1); times++ )

{if (OrderSelect(숫자,SELECT_BY_POS,MODE_TRADES) )

{if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) 중단;

if ((OverSymbolDel ==0)&& (Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

else Print("주문 선택 시 오류 발생", GetLastError() ) ;

}

}

}

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

무효 delPending()

{주문인쇄();

int 티켓 =OrderTicket();

result=OrderDelete(티켓);

if (result==False) Print("주문 삭제 시 오류 발생 ", GetLastError() );

}

파일:
 

씹다

이 시도:

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property show_inputs

bool result;

extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE

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

//| script "delete pending order" |

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

int start()

{

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

{

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;

if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

}

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

void delPending()

{

OrderPrint();

int ticket =OrderTicket();

result=OrderDelete(ticket);

if (!result) Print("Error when delete Order ", GetLastError() );

}
 
Roger09:
씹다

이 시도:

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property show_inputs

bool result;

extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE

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

//| script "delete pending order" |

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

int start()

{

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

{

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;

if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

}

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

void delPending()

{

OrderPrint();

int ticket =OrderTicket();

result=OrderDelete(ticket);

if (!result) Print("Error when delete Order ", GetLastError() );

}

도와주셔서 감사합니다~~

그리고 내 실수를 찾습니다.

{ if (OrderSelect(숫자,SELECT_BY_POS,MODE_TRADES) )

로 변경

주문 선택(번호,SELECT_BY_POS,MODE_TRADES);

{if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) 중단;

로 변경

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) 집계 ;