그래서 Cross == 1 대신 MA_04_1H > MA_14_1H 로 Crossed 함수 를 수정했습니다... 그리고 일반적으로 문제가 해결되었습니다... 하지만 구매, 닫기, 구매, 닫기, 구매, 닫기, 판매, 닫기,... -0.17,-0.18,-0.21,-0.15 등과 같은 센트 단위의 잔액을 먹고 있습니다.
이제 나는 실제로 더 작은 로트를 사서 이익을 내면 교차가 발생할 때까지 해당 주문을 닫고 새로운 더 큰 주문을 여는 것을 실제로 구현하려고 노력하고 있지만 위의 문제는 해결할 수 없는 것 같습니다. .
또 다른 문제
그래서 Cross == 1 대신 MA_04_1H > MA_14_1H 로 Crossed 함수 를 수정했습니다... 그리고 일반적으로 문제가 해결되었습니다... 하지만 구매, 닫기, 구매, 닫기, 구매, 닫기, 판매, 닫기,... -0.17,-0.18,-0.21,-0.15 등과 같은 센트 단위의 잔액을 먹고 있습니다.
이제 나는 실제로 더 작은 로트를 사서 이익을 내면 교차가 발생할 때까지 해당 주문을 닫고 새로운 더 큰 주문을 여는 것을 실제로 구현하려고 노력하고 있지만 위의 문제는 해결할 수 없는 것 같습니다. .
그 작은 쓸모없는 거래를 걸러내는 방법을 아는 사람이 있습니까?
이 코드에는 fl이 필요합니다.
안녕 ,
나는 이 코드를 위한 afl이 필요하다
#속성 표시기_분리_창
#속성 표시기_버퍼 8
#속성 표시기_색상1 C'0x66,0xB3,0xFF'
#property indicator_color2 다저블루
#property indicator_color3 C'0x00,0x67,0xCE'
#property indicator_color4 흰색
#속성 표시기_색상5 C'0xFF,0x33,0x33'
#속성 표시기_색상6 C'0xC4,0x00,0x00'
#속성 표시기_색상7 C'0x8C,0x00,0x00'
#속성 표시기_색상8 C'0x82,0x24,0x00'
extern int 기간 = 30;
extern 부울 invert_strength = FALSE;
외부 문자열 CurrencyPair = "";
extern string NOTE0 = "통화쌍을 대문자로 입력";
extern string NOTE1 = "EURUSD와 유사";
extern string NOTE2 = "현재 기호를 비워 둡니다";
extern string NOTE3 = "미니 계정이 있는 경우";
extern string NOTE4 = "\"m\" 추가, 예: EURUSDm ";
이중 g_ibuf_132[];
이중 g_ibuf_136[];
이중 g_ibuf_140[];
이중 g_ibuf_144[];
이중 g_ibuf_148[];
이중 g_ibuf_152[];
이중 g_ibuf_156[];
이중 g_ibuf_160[];
이중 gda_unused_164[];
정수 초기화() {
SetIndexBuffer(0, g_ibuf_132);
SetIndexBuffer(1, g_ibuf_136);
SetIndexBuffer(2, g_ibuf_140);
SetIndexBuffer(3, g_ibuf_144);
SetIndexBuffer(4, g_ibuf_148);
SetIndexBuffer(5, g_ibuf_152);
SetIndexBuffer(6, g_ibuf_156);
SetIndexBuffer(7, g_ibuf_160);
SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 5, C'0x66,0xB3,0xFF');
SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 5, 다저블루);
SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 5, C'0x00,0x67,0xCE');
SetIndexStyle(3, DRAW_HISTOGRAM, EMPTY, 5, 흰색);
SetIndexStyle(4, DRAW_HISTOGRAM, EMPTY, 5, C'0xFF,0x33,0x33');
SetIndexStyle(5, DRAW_HISTOGRAM, EMPTY, 5, C'0xC4,0x00,0x00');
SetIndexStyle(6, DRAW_HISTOGRAM, EMPTY, 5, C'0x8C,0x00,0x00');
SetIndexStyle(7, DRAW_HISTOGRAM, EMPTY, 5, C'0x82,0x24,0x00');
(int li_0 = 0; li_0 < 8; li_0++) SetIndexLabel(li_0, NULL);
if (CurrencyPair == "") CurrencyPair = Symbol();
if ( iClose (CurrencyPair, 0, 0) == 0.0) CurrencyPair = Symbol();
IndicatorShortName(CurrencyPair + "(" + 마침표 + ")");
반환 (1);
}
정수 초기화() {
리턴(0);
}
정수 시작() {
이중 ld_8;
int li_0 = IndicatorCounted();
if (li_0 < 0) return (-1);
if (li_0 > 0) li_0--;
(int li_4 = 막대 - li_0, li_4 >= 0, li_4--) {
ld_8 = iRSI(통화쌍, 0, 주기, PRICE_CLOSE, li_4);
if (invert_strength == TRUE) ld_8 -= 2.0 * (ld_8 - 50.0);
if (ld_8 <= 45.0) {
if (ld_8 42.0) drawblock(0, 0, 0, 0, 5, 0, 0, 0, li_4);
또 다른 {
if (ld_8 38.0) drawblock(0, 0, 0, 0, 0, 5, 0, 0, li_4);
또 다른 {
if (ld_8 35.0) drawblock(0, 0, 0, 0, 0, 0, 5, 0, li_4);
else drawblock(0, 0, 0, 0, 0, 0, 0, 5, li_4);
}
}
} 또 다른 {
if (ld_8 >= 55.0) {
if (ld_8 > 55.0 && ld_8 < 57.0) drawblock(5, 0, 0, 0, 0, 0, 0, 0, li_4);
또 다른 {
if (ld_8 >= 58.0 && ld_8 < 60.0) drawblock(0, 5, 0, 0, 0, 0, 0, 0, li_4);
else drawblock(0, 0, 5, 0, 0, 0, 0, 0, li_4);
}
} else drawblock(0, 0, 0, 5, 0, 0, 0, 0, li_4);
}
}
리턴(0);
}
무효 drawblock(int ai_0, int ai_4, int ai_8, int ai_12, int ai_16, int ai_20, int ai_24, int ai_28, int ai_32) {
g_ibuf_132[ai_32] = ai_0;
g_ibuf_136[ai_32] = ai_4;
g_ibuf_140[ai_32] = ai_8;
g_ibuf_144[ai_32] = ai_12;
g_ibuf_148[ai_32] = ai_16;
g_ibuf_152[ai_32] = ai_20;
g_ibuf_156[ai_32] = ai_24;
g_ibuf_160[ai_32] = ai_28;
}
또는 나에게 이것 뒤에 논리를 설명하십시오
감사해요
크
구매, 닫기, 구매, 닫기 또는 판매, 닫기, 판매, 닫기를 하지 않는 방법...
제발... 저 수익성 없는 거래를 피하는 방법을 알고 싶습니다...
긴급 도움. 지표를 EA(Auto Trader)로 변환
저는 프로그래머이지만 mql4 프로그래밍 의 초보자입니다.
지표 관련 EA(Auto Trader)를 만들려고 합니다.
인디케이터를 부착했습니다. 이 표시기는 좋은 추세 신호를 제공합니다.
이제 추세 신호에 대해 자동 거래자를 만들고 싶습니다.
연산:
====================================================
DOWN SIGNAL이면 SELL 주문을 열고 이전 BUY 주문을 닫습니다.
UP SIGNAL이면 BUY 주문을 열고 이전 SELL 주문을 닫습니다.
계속하다 ....
====================================================
이 지표와 관련하여 자동 거래에서 수동 거래를 원합니다.
아무도 나를 도울 수 있습니까 ?? 시도했지만 결과를 얻지 못했습니다
나는 그것이 좋은 자동차 상인이 될 것이라고 생각합니다. 도와주세요.
간단한 질문, 답을 찾을 수 없습니다 ...
아무도 이것이 작동하는 이유를 말해 줄 수 있습니까?
가격 = MarketInfo("GBPJPY",MODE_ASK);
(심볼이 문자열 배열이고 9번째 항목이 "GBPJPY"인 경우):
가격 = MarketInfo(symbol[9],MODE_ASK);
??
아무도 이것이 작동하는 이유를 말해 줄 수 있습니까?
가격 = MarketInfo("GBPJPY",MODE_ASK);
(심볼이 문자열 배열이고 9번째 항목이 "GBPJPY"인 경우):
가격 = MarketInfo(symbol[9],MODE_ASK);
??당신이 제시한 정보에서 나는 이것이 작동해야 한다고 100% 확신합니다. 사실, 나는 그것을 증명하기 위해 간단한 테스트를 했습니다. 코드에 잘못된 다른 것이 있어야 합니다.
던,
코드를 뒤집는 가장 쉬운 방법(판매에서 구매 및 구매에서 판매)은 다음과 같이 변경됩니다.
if(signal0 > signal1) GlobalVariableSet("TM0",0);[/CODE]
To:
[CODE]if(signal0 > signal1 ) GlobalVariableSet("TM0",1);
if(signal0 < signal1) GlobalVariableSet("TM0",0);멋진! 이 정보를 주셔서 감사합니다.
배열을 문자열로 정의하지 않았을 가능성이 큽니다.
"GBPJPY"가 배열의 9번째 요소인 경우 mql 표기법의 인덱스는 9가 아닌 8이므로(mql 표기법에서 배열의 첫 번째 요소는 인덱스 0을 가짐) 이 경우 다음 형식을 사용해야 합니다.
그게 문제가 아닐까요?
아무도 이것이 작동하는 이유를 말해 줄 수 있습니까?
가격 = MarketInfo("GBPJPY",MODE_ASK);
(심볼이 문자열 배열이고 9번째 항목이 "GBPJPY"인 경우):
가격 = MarketInfo(symbol[9],MODE_ASK);
??나는 그것을 설명하기 위해 엉망이 된 번호를 올바르게 얻었습니다. 그것은 10 번째 항목이고 그것을 얻기 위해 기호 [9]를 사용했습니다. 이상하게도 다음과 같이 작동합니다.
높음 = iHigh(기호[9], ...)
그것은 나에게 높은 것을 제공합니다. 내 선언은 다음과 같습니다.
string symbol[] 아니면 string[] symbol[] 과 같아야 합니까?
Alert(symbol[9])를 사용하여 인쇄하려고 하면 빈 공간도 제공되며, 꽤 이상한 문제가 발생합니다. 하지만 어쨌든 제안해 주셔서 감사합니다.
이것은 내 코드입니다. 저는 alpari 5자리 브로커를 사용합니다(알림은 어떤 이유로 0을 표시함).
두 배 높은, 낮은, 가격, 거리, 접시;
int i,j,티켓,워드;
문자열 기호[];
문자열 zoekplaatssymbol;
//+----------------------------------------------- -------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
//----
//----
리턴(0);
}
//+----------------------------------------------- -------------------+
//| 전문가 초기화 해제 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
//----
//----
리턴(0);
}
//+----------------------------------------------- -------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- -------------------+
정수 시작()
{
//----
더블 USD=0.0;
이중 chf=0.0;
더블 유로=0.0;
이중 gbp=0.0;
더블 오디=0.0;
더블 캐드=0.0;
이중 jpy=0.0;
이중 nzd=0.0;
기호[21] = {"USDCHF", "EURUSD", "GBPUSD", "USDJPY", "AUDUSD", "USDCAD", "EURGBP", "EURCHF", "EURJPY", "GBPJPY", "GBPCHF", "유로", "NZDUSD", "CHFJPY",
"EURCAD", "AUDCAD", "AUDJPY", "CADJPY", "EURNZD", "AUDNZD", "NZDJPY"};
정수 합계=OrdersTotal();
//zoekplaatssymbol = 기호[9];
// 보호 = zoekplaats(zoekplaatssymbol);
가격 = MarketInfo(symbol[9],MODE_ASK);
경고(가격);
}