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

 

...

런타임 스프레드의 경우 다음을 사용하십시오.

double currentSpread = MarketInfo(Symbol().MODE_SPREAD);
Premeus:
EA 내부에 확산된 실시간 코드를 보여주고 싶습니다. 아무거나 조언 좀 부탁드립니다.
 

고마워요 말든. 하지만 웹 서버용 PHP 코드를 알고 있습니다. 나는 사이드 EA에서 코딩을 모른다. 또는 다른 사람을 위한 것입니다.

좀 더 구체적으로 말씀해주세요. 죄송합니다. 저는 MQL4 프로그래밍을 처음 접했습니다.

그리고 새로운 가격이 들어올 때 프로그램의 어떤 부분이 어떻게 실행되었는지 잘 모르겠습니다.

프로그램 전체 또는 init() 내부 또는 start() 내부.

이 스레드에 묻는 것처럼 진드기 정보를 얻고 표시하고 싶습니다.

 

프레메우스

현재 기호에 대한 스프레드를 가져오는 메타트레이더 MQl 4 코드입니다. 코드에 복사하기만 하면 해당 방법으로 스프레드 정보를 검색할 수 있습니다.

각 틱 의 스프레드를 확인하려면 해당 코드 라인이 start()에 있어야 합니다(각 틱마다 변경될 수 있기 때문에). MarketInfo() 함수를 호출하고 currentSpread 변수에 값이 할당되면 currentSpread를 필요한 테스트 또는 추가 처리에 사용하십시오.

Premeus:
고마워요 말든. 하지만 웹 서버용 PHP 코드를 알고 있습니다. 나는 사이드 EA에서 코딩을 모른다. 또는 다른 사람을 위한 것입니다.

좀 더 구체적으로 말씀해주세요. 죄송합니다. 저는 MQL4 프로그래밍을 처음 접했습니다.

그리고 새로운 가격이 들어올 때 프로그램의 어떤 부분이 어떻게 실행되었는지 잘 모르겠습니다.

프로그램 전체 또는 init() 내부 또는 start() 내부.

나는 이 스레드 에 묻는 것처럼 진드기 정보 를 얻고 표시 하고 싶습니다 .
 

MartinailExpert_v1.0_Stochastic, 어떻게?

안녕!

누군가 나에게 왜 티켓을 주문할 때 손절매를 삽입할 수 없는지 말해 줄 수 있습니까?

삽입하면 EA가 작동하지 않습니다!

감사해요!

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

//| aaa.mq4 |

//| Copyright Š 2007, MetaQuotes Software Corp. |

//| TeamWox 그룹웨어 / MetaQuotes Software Corp. |

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

#property copyright "Copyright Š 2007, MetaQuotes Software Corp."

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

외부 이중 단계 = 25;

외부 정수 StepMode=0;

// Ĺńëč StepMode = 0, ňî řŕă ěĺćäó îđäĺđŕěč ôčęńčđîâŕííűé č đŕâĺí 단계

// Ĺńëč StepMode = 1, ňî řŕă ďîńňĺďĺííî óâĺëč÷čâŕĺňń˙

외부 이중 교수 = 10;

extern 이중 다중 = 1.5;

extern 이중 lotbuy=0.01;

extern 더블 랏셀=0.01;

외부 이중 per_K=200;

외부 이중 per_D=20;

extern 더블 슬로우 = 20;

외부 이중 영역BUY=20;

외부 이중 영역SELL=80;

extern 더블 Magicbuy=555;

외부 이중 Magicsell=556;

이중 openpricebuy,openpricesell,lotsbuy2,lotssell2,lastlotbuy,lastlotsell,tpb,tps,cnt,smbuy,smsell,lotstep,

ticketbuy,ticketsell,maxLot,무료,잔액,lotsell,lotbuy,파기,sig_buy,sig_sell,요청,입찰;

int OrdersTotalMagicbuy(int Magicbuy)

{

정수 j=0;

정수 r;

(r=0;r<OrdersTotal();r++)

{

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

{

if (OrderMagicNumber()==Magicbuy) j++;

}

}

리턴(j);

}

int OrdersTotalMagicsell(int Magicsell)

{

정수 d=0;

정수 n;

(n=0;n<OrdersTotal();n++)

{

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

{

if (OrderMagicNumber()==Magicsell) d++;

}

}

반환(d);

}

int orderclosebuy(int ticketbuy)

{

문자열 기호 = Symbol();

정수 cnt;

for(cnt = OrdersTotal(); cnt >= 0; cnt--)

{

주문 선택(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol() == 기호 && OrderMagicNumber()==Magicbuy)

{

ticketbuy=OrderTicket();OrderSelect(티켓 구매, SELECT_BY_TICKET, MODE_TRADES);lotsbuy2=OrderLots() ;

이중 입찰 = MarketInfo(symbol,MODE_BID);

새로 고침 비율();

OrderClose(ticketbuy,lotsbuy2,bid,3,Magenta);

}

}

lotsbuy2=lotsbuy;반환(0);

}

int orderclosesell(int ticketsell)

{

문자열 기호 = Symbol();

정수 cnt;

for(cnt = OrdersTotal(); cnt >= 0; cnt--)

{

주문 선택(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol() == 기호 && OrderMagicNumber()==Magicsell)

{

ticketell=OrderTicket();OrderSelect(티켓 판매, SELECT_BY_TICKET, MODE_TRADES);lotssell2=OrderLots() ;

이중 요청 = MarketInfo(symbol,MODE_ASK);

새로 고침 비율();

OrderClose(티켓 판매, lotssell2, 요청, 3, 라임);

}

}

lotsell2=lotssell;return(0);

}

정수 시작()

{

//----

이중 이익 매수=0; 이중 이익 매도=0;

문자열 기호 = OrderSymbol();

이중 스프레드 = MarketInfo(symbol,MODE_SPREAD);

이중 minLot = MarketInfo(기호,MODE_MINLOT);

if (minLot==0.01){dig=2;maxLot=MarketInfo(symbol,MODE_MAXLOT);}

if (minLot==0.1){dig=1;maxLot=((AccountBalance()/2)/1000);}

if(OrdersTotalMagicbuy(Magicbuy)>0)

{

더블 smbuy;

(cnt=0;cnt<OrdersTotal();cnt++)

{

주문 선택(cnt,SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magicbuy)

{

티켓 구매 = OrderTicket();OrderSelect(티켓 구매,SELECT_BY_TICKET, MODE_TRADES);

smbuy = smbuy+OrderLots(); openpricebuy = OrderOpenPrice(); lastlotbuy = OrderLots();

}

}

{

if (smbuy+(NormalizeDouble((lastlotbuy*mult),dig))<maxLot)

{

if(단계 모드==0)

{

if(문의<=openpricebuy-step*포인트)

{

lotbuy2=lastlotbuy*mult;

RefreshRates();ticketbuy=OrderSend(Symbol(),OP_BUY,NormalizeDouble(lotsbuy2,dig),Ask,3,0,0,"MartingailExpert",Magicbuy,0,Blue);

}

}

if(단계 모드==1)

{

if(Ask<=openpricebuy-(step+OrdersTotalMagicbuy(Magicbuy)+OrdersTotalMagicbuy(Magicbuy)-2)*포인트)

{

lotbuy2=lastlotbuy*mult;

RefreshRates();ticketbuy=OrderSend(Symbol(),OP_BUY,NormalizeDouble(lotsbuy2,dig),Ask,3,0,0,"MartingailExpert",Magicbuy,0,Blue);

}

}

}

}

}

if(OrdersTotalMagicsell(Magicsell)>0)

{

이중 smsell;

(cnt=0;cnt<OrdersTotal();cnt++)

{

주문 선택(cnt,SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magicsell)

{

티켓 판매 = OrderTicket();OrderSelect(티켓 판매,SELECT_BY_TICKET, MODE_TRADES);

smsell = smsell + OrderLots(); openpricesell = OrderOpenPrice(); lastlotsell = OrderLots();

}

}

{

if (smsell+(NormalizeDouble((lastlotsell*mult),dig))<maxLot)

{

if(단계 모드==0)

{

if(Bid>=openpricesell+step*Point)

{

lotsell2=lastlotsell*mult;

RefreshRates();ticketsell=OrderSend(Symbol(),OP_SELL,NormalizeDouble(lotssell2,dig),Bid,3,0,0,"MartingailExpert",Magicsell,0,Red);

}

}

if(단계 모드==1)

{

if(Bid>=openpricesell+(step+OrdersTotalMagicsell(Magicsell)+OrdersTotalMagicsell(Magicsell)-2)*포인트)

{

lotsell2=lastlotsell*mult;

RefreshRates();ticketsell=OrderSend(Symbol(),OP_SELL,NormalizeDouble(lotssell2,dig),Bid,3,0,0,"MartingailExpert",Magicsell,0,Red);

}

}

}

}

}

// 신호가 생성되는 방식을 변경하기 위한 xm7 수정. 이전 코드가 종료되었습니다.

이중 Stoch_0 = iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,0);

이중 Stoch_1 = iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1);

if(OrdersTotalMagicbuy(Magicbuy)<1)

{

if(Stoch_0 > zoneBUY && Stoch_1 <= zoneBUY)

ticketbuy = OrderSend(Symbol(),OP_BUY,lotsbuy,Ask,3,0,0,"MartingailExpert",Magicbuy,0,Blue);

}

if(OrdersTotalMagicsell(Magicsell)<1)

{

if(Stoch_0 = zoneSELL)

티켓셀 = OrderSend(Symbol(),OP_SELL,lotssell,Bid,3,0,0,"MartingailExpert",Magicsell,0,Red);

}

(cnt=0;cnt<OrdersTotal();cnt++)

{

주문 선택(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magicbuy)

{

ticketbuy = OrderTicket();OrderSelect(ticketbuy,SELECT_BY_TICKET, MODE_TRADES);profitbuy = 이익 구매+OrderProfit() ;

openpricebuy = OrderOpenPrice();

}

}

tpb = (OrdersTotalMagicbuy(Magicbuy)*proffactor*Point)+openpricebuy;

이중 입찰 = MarketInfo(Symbol(),MODE_BID);

if (이익매수>0)

{

if (Bid>=tpb) orderclosebuy(ticketbuy);

}

(cnt=0;cnt<OrdersTotal();cnt++)

{

주문 선택(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magicsell)

{

티켓 판매 = OrderTicket();OrderSelect(티켓 판매,SELECT_BY_TICKET, MODE_TRADES);profitsell = 이익 판매+OrderProfit();

openpricesell = OrderOpenPrice();

}

}

tps = openpricesell-(OrdersTotalMagicsell(Magicsell)*proffactor*Point);

이중 요청 = MarketInfo(Symbol(),MODE_ASK);

if (이익 판매>0)

{

if (Ask<=tps)orderclosesell(티켓 판매);

}

무료 = AccountFreeMargin(); 균형 = AccountBalance();

(cnt=0;cnt< OrdersTotal();cnt++)

{

주문 선택(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magicbuy) ticketbuy = OrderTicket();

if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magicsell) ticketsell = OrderTicket();

}

if (OrdersTotalMagicbuy(Magicbuy)==0)

{

이익구매=0;티켓구매=0;tpb=0;

}

if (OrdersTotalMagicsell(Magicsell)==0)

{

이익 판매=0;티켓 판매=0;tps=0;

}

Comment("FreeMargin = ",NormalizeDouble(free,0)," 균형 = ",NormalizeDouble(balance,0)," maxLot = ",NormalizeDouble(maxLot,dig),"\n",

"Totalbuy = ",OrdersTotalMagicbuy(Magicbuy)," Lot = ",smbuy," Totalsell = ",OrdersTotalMagicsell(Magicsell)," Lot = ",smsell,"\n",

"------------------------------------------------ --------------","\n","Profitbuy = ",Profitbuy,"\n",

"Profitsell = ",profitsell);

//----

for(int ii=0; ii<2; ii+=2)

{

ObjectDelete("직사각형"+ii);

ObjectCreate("직사각형"+ii,OBJ_HLINE, 0, 0,tps);

ObjectSet("직사각형"+ii, OBJPROP_COLOR, 빨간색);

ObjectSet("직사각형"+ii, OBJPROP_WIDTH, 1);

ObjectSet("rect"+ii, OBJPROP_RAY, False);

}

for(int rr=0; rr<2; rr+=2)

{

ObjectDelete("rect1"+rr);

ObjectCreate("rect1"+rr,OBJ_HLINE, 0, 0,tpb);

ObjectSet("rect1"+rr, OBJPROP_COLOR, 파란색);

ObjectSet("rect1"+rr, OBJPROP_WIDTH, 1);

ObjectSet("rect1"+rr, OBJPROP_RAY, False);

}

반환(0);

}
 

...

몇 가지 이유가 있을 수 있지만 가장 일반적인 이유는 다음과 같습니다.

- 손절매 및/또는 현재 가격에 너무 근접한 이익 실현

- 귀하의 중개인은 ECN/STP 유형 중개인입니다. 이 경우 먼저 손절매로 주문하고 이익을 0으로 설정해야 하며 주문이 열릴 때만 손절매를 수정하거나 이익을 얻을 수 있습니다. 원하는 값 (물론 이전 포인트를 존중)

pearl1:
안녕!

누군가 나에게 왜 티켓을 주문할 때 손절매를 삽입할 수 없는지 말해 줄 수 있습니까?

삽입하면 EA가 작동하지 않습니다!

감사해요!
 

안녕하세요. 차트에서 최신 현재 가격을 확인 하는 방법을 알고 싶습니다. 나는 그 멍청한 놈을 알고 있지만 그 개미를 찾지 못하는 것 같다. 도와주세요. 감사해요.

문안 인사

테런스

 

...

다음 중 하나에 따라 다릅니다.

- 현재 입찰가는 입찰가

- 현재 매도호가는 매도호가입니다.

- 기타 가격: 현재 가격에 인덱스 0을 사용하므로 Close[0]은 현재 종가, Open[0]은 현재 시가 등

tkuan77:
안녕하세요. 차트에서 최신 현재 가격을 확인하는 방법을 알고 싶습니다. 나는 그 멍청한 놈을 알고 있지만 그 개미를 찾지 못하는 것 같다. 도와주세요. 감사해요.

문안 인사

테런스
 

안녕하세요 Mladen, 제가 하려고 하는 것은 수표 입니다. 예를 들어 현재 가격이 SMA 100 이상인 경우 더 낮은 기간으로 축소하고 매수 신호만 봅니다. 그러나 내가 Bid 또는 Ask를 사용하는 경우 시스템은 Bid에서 현재 Long 또는 Short를 보고 있는지 결정할 수 없습니다.

내가 염두에 둔 개념은 체크 부분의 3 오리 거래 시스템과 비슷한 것입니다. 여기 조언 부탁드립니다. 감사해요.

문안 인사

테런스

mladen:
다음 중 하나에 따라 다릅니다.
- 현재 입찰가는 입찰가

- 현재 매도호가는 매도호가입니다.

- 기타 가격: 현재 가격에 인덱스 0을 사용하므로 Close[0]은 현재 종가, Open[0]은 현재 시가 등

 

...

테런스

이 경우 닫기[0]를 사용하십시오. 거의 모든 EA가 그 목적으로 close를 사용하고 있으므로 여러분에게도 효과가 있을 것이라고 생각합니다.

tkuan77:
안녕하세요 Mladen, 제가 하려는 것은 수표입니다. 예를 들어 현재 가격이 SMA 100 이상인 경우 더 낮은 기간으로 축소하고 매수 신호만 봅니다. 그러나 내가 Bid 또는 Ask를 사용하는 경우 시스템은 Bid에서 현재 Long 또는 Short를 보고 있는지 결정할 수 없습니다.

내가 염두에 둔 개념은 체크 부분의 3 오리 거래 시스템과 비슷한 것입니다. 여기 조언 부탁드립니다. 감사해요.

문안 인사

테런스
 

가격 변동 사이에 EA가 실행되지 않음

내 EA가 M1 시간 프레임에서 가격 이동 사이에서 실행되지 않는 것을 발견했습니다. EA가 들어오는 모든 틱마다 실행된다는 것을 알고 있습니다.

그러나 나는 그것이 새로운 막대를 시작할 때마다 실행되는 것을 보았습니다.

내가 오해하고 있습니까?

들어오는 모든 진드기에 힘이 활성화되는 방식이 있습니까?

이용손익으로 내 손익을 통제하려고 한다 핍이 아닙니다. 스파이크가 발생하면 EA는 새로운 막대가 발생할 때까지 설정 이익 또는 손실에 도달하면 주문을 닫지 않습니다.

누구든지이 문제를 해결하도록 도와주세요.

저는 EA 코딩이 처음입니다.

미리 감사드립니다.

사유: