저는 Metatrader4(및 fx 거래)를 처음 사용합니다. 내가 알고 싶은 것은 하나의 Metatrader4 플랫폼에서 동일한 통화 쌍 을 사용하여 동일한 입금액의 여러 데모 계정을 사용하여 여러 EA를 테스트할 수 있는지 여부입니다.
예를 들어, 한 플랫폼에서 GBPUSD만 사용하여 각각 $1000의 자체 데모 계정에 할당된 5개의 다른 EA가 있어 일정 기간 동안의 성능을 비교할 수 있습니다.
내 StrategyBuilder - Metatrader - Demo에서 이 작업을 시도했을 때 한 계정의 EA 설치가 다음 계정에 로그인할 때 이월되거나 이월된 계정에서 하나의 EA를 비활성화하여 다른 EA를 설치하는 것을 발견했습니다. 첫 번째 계정이 비활성화되었습니다.
동일한 계정의 다른 통화 쌍에 대해 다른 EA를 가질 수 있다는 것을 알고 있지만 이로 인해 다양한 EA의 성능을 동일한 통화 쌍과 비교할 수 없습니다.
내 행동 방침을 백테스팅하고 있습니다. 그렇다면 시작하는 방법에 대한 정보를 제공하십시오.
2차원 배열에 저장된 2차원 데이터 테이블이 있습니다. 해당 데이터 테이블의 열에 따라 정렬하는 것과 같은 조작을 하고 싶습니다.
명령어의 ArraySort() 함수는 첫 번째 차원에서 배열을 정렬할 수 있습니다. 그것이 나를 위해 어떻게 작동하는지 알 수 없습니다.
MetaTrader의 데이터 테이블 정렬에 대한 제안 사항이 있습니까?내가 들어본 모든 표준 배열 정렬 기능은 첫 번째 차원만 정렬합니다. 직접 만들어야 할 수도 있습니다. 또는 아직 시도하지 않은 경우 웹에서 고급 C++ 정렬 알고리즘을 확인하십시오.
여러 계정을 사용하는 여러 EA
여보세요,
저는 Metatrader4(및 fx 거래)를 처음 사용합니다. 내가 알고 싶은 것은 하나의 Metatrader4 플랫폼에서 동일한 통화 쌍 을 사용하여 동일한 입금액의 여러 데모 계정을 사용하여 여러 EA를 테스트할 수 있는지 여부입니다.
예를 들어, 한 플랫폼에서 GBPUSD만 사용하여 각각 $1000의 자체 데모 계정에 할당된 5개의 다른 EA가 있어 일정 기간 동안의 성능을 비교할 수 있습니다.
내 StrategyBuilder - Metatrader - Demo에서 이 작업을 시도했을 때 한 계정의 EA 설치가 다음 계정에 로그인할 때 이월되거나 이월된 계정에서 하나의 EA를 비활성화하여 다른 EA를 설치하는 것을 발견했습니다. 첫 번째 계정이 비활성화되었습니다.
동일한 계정의 다른 통화 쌍에 대해 다른 EA를 가질 수 있다는 것을 알고 있지만 이로 인해 다양한 EA의 성능을 동일한 통화 쌍과 비교할 수 없습니다.
내 행동 방침을 백테스팅하고 있습니다. 그렇다면 시작하는 방법에 대한 정보를 제공하십시오.
많은 도움을 주셔서 감사합니다.
자유 FX
자유 FX,
귀하의 활성 계정은 귀하의 터미널에서 실행되는 EA에 의해 관리되므로 귀하가 요청한 것을 수행할 수 없다고 생각합니다. 그러나 컴퓨터에 여러 개의 MT4 복사본을 설치하고 각 데모 계정 에 대해 하나씩 실행할 수 있습니다.
라이언클레파스,
다음은 현재 가격 조치(입찰/매도)를 기반으로 보류 중인 주문 을 입력하는 코드입니다.
내 질문:
현재 가격이 아닌 Daily 피벗에서 보류 중인 주문을 입력하기를 원합니다.
내가 이것을 시도하고 알아낼 수 있는 몇 가지 예를 알려줄 수 있습니까? 아니면 이 코드에 통합할 수 있는 높은 낮은 피벗 논리가 있고 입찰/요청 대신 참조로 가리킬 수 있습니까?
도와주셔서 감사합니다.
}
OrderSend(Symbol(),
OP_BUYSTOP,
lots,
Ask+open_long*Point, // Spread included
slippage,
Bid+(open_long-stop_long)*Point,
Bid+(open_long+take_profit)*Point,
NULL,
magic,
0,
FireBrick);
OrderSend(Symbol(),
OP_SELLSTOP,
lots,
Bid-open_short*Point,
slippage,
Ask-(open_short-stop_short)*Point,
Ask-(open_short+take_profit)*Point,
NULL,
magic,
0,
FireBrick);
clear_to_send = false;
}
noLagMACD
누구든지 이 코드 조각에 무엇이 잘못되었는지 말해 줄 수 있습니까? Makegrid193에 noLagMACD를 통합하려고 합니다. 컴파일 및 실행되며 myWantLongs 및 myWantShorts의 설정을 전혀 변경하지 않으므로 생성된 주문이 없습니다.
if(MACDNoLag 사용)
{
int limit=막대;
myWantLongs = 거짓;
myWantShorts = 거짓;
for(i=0; i<한계; i++)
{
FastEMABuffer=iMA(NULL,PERIOD_M5,emaFast,0,MODE_EMA,PRICE_CLOSE,i);
SlowEMABuffer=iMA(NULL,PERIOD_M5,emaSlow,0,MODE_EMA,PRICE_CLOSE,i);
}
for(i=0; i<한계; i++)
{
EMA=iMAOnArray(FastEMABuffer,0,emaFast,0,MODE_EMA,i);
ZeroLagEMAp=FastEMABuffer+FastEMABuffer-EMA;
EMA=iMAOnArray(SlowEMABuffer,0,emaSlow,0,MODE_EMA,i);
ZeroLagEMAq=SlowEMABuffer+SlowEMABuffer-EMA;
MACDBuffer=ZeroLagEMAp - ZeroLagEMAq;
}
더블 테스터1, 테스터2, 테스터3;
테스터1 = MACDBuffer[0];
테스터2 = MACDBuffer[1];
테스터3 = MACDBuffer[2];
if( (tester1 > 0.0) && (tester2 <= 0.0) ) // 교차
{
CloseAllPendingOrders();
if(닫기OpenPositions == true)
{
ClosePendingOrdersAndPositions();
}
if(wantLongs==true)
{
myWantLongs = 사실;
}
myWantShorts = 거짓;
}
if( (tester1 = 0.0) ) // 크로스 다운
{
CloseAllPendingOrders();
if(닫기OpenPositions == true)
{
ClosePendingOrdersAndPositions();
}
if(wantShorts==true)
{
myWantShorts = 사실;
}
myWantLongs = 거짓;
}
if( (tester1 > 0.0) && (tester2 > 0.0) && (tester3 > 0.0) && (wantLongs==true) ) // 0보다 훨씬 높습니다.
{
myWantLongs = 사실;
}
if( (tester1 < 0.0) && (tester2 < 0.0) && (tester3 < 0.0) && (wantShorts==true) ) // 0보다 훨씬 낮습니다.
{
myWantShorts = 사실;
}
}
괜찮아요
나는 Time[]과 iComplex를 발견했고 전에 올렸던 그 엉망이 되었습니다.
if(MACDNoLag 사용)
{
if(newbar != 시간[0])
{
newbar=시간[0];
myWantLongs = 거짓;
myWantShorts = 거짓;
MACD_Main = iCustom(NULL, 0, "ZeroLag MACD ", FastEMA, SlowEMA, SignalEMA, 0, 1);
if(MACD_메인 > 0)
{
if(!MACDup)
{
if(CloseOpenPositions == true)
{
ClosePendingOrdersAndPositions();
}
또 다른
{
CloseAllPendingOrders();
}
}
MACDup = 참;
myWantShorts = 거짓;
if(wantLongs==true)
{
myWantLongs = 사실;
}
}
if(MACD_메인 < 0)
{
if(MACDup)
{
if(CloseOpenPositions == true)
{
ClosePendingOrdersAndPositions();
}
또 다른
{
CloseAllPendingOrders();
}
}
MACDup = 거짓;
myWantLongs = 거짓;
if(wantShorts==true)
{
myWantShorts = 사실;
}
}
}
}
이거 너무 재밌어요!!! 이 EA로 좋은 결과를 얻으면 게시하겠습니다.
라이언클레파스,
다음은 현재 가격 조치(입찰/매도)를 기반으로 보류 중인 주문을 입력하는 코드입니다.
내 질문:
현재 가격이 아닌 Daily 피벗에서 보류 중인 주문을 입력하기를 원합니다.
내가 이것을 시도하고 알아낼 수 있는 몇 가지 예를 알려줄 수 있습니까? 아니면 이 코드에 통합할 수 있는 높은 낮은 피벗 논리가 있고 입찰/요청 대신 참조로 가리킬 수 있습니까?
도와주셔서 감사합니다.
}
OrderSend(Symbol(),
OP_BUYSTOP,
lots,
Ask+open_long*Point, // Spread included
slippage,
Bid+(open_long-stop_long)*Point,
Bid+(open_long+take_profit)*Point,
NULL,
magic,
0,
FireBrick);
OrderSend(Symbol(),
OP_SELLSTOP,
lots,
Bid-open_short*Point,
slippage,
Ask-(open_short-stop_short)*Point,
Ask-(open_short+take_profit)*Point,
NULL,
magic,
0,
FireBrick);
clear_to_send = false;
}
[/code]각 pviot 포인트는 가격 값입니다. 그리고 보류 중인 주문은 활성화될 특정 가격에 배치되어야 합니다. 따라서 보류 중인 주문을 할 때 진입 가격을 선택한 피벗 수준으로 설정하십시오. 그런 다음 주문의 진입 가격과 관련하여 손절매와 이익실현을 설정하십시오.
[암호]
}
주문 보내기(기호(),
OP_BUYSTOP,
많이,
피벗레벨가자여기 ,
미끄러짐,
pivotLevelGoesHere -(stop_long*Point),
pivotLevelGoesHere +(take_profit*Point),
없는,
마법,
0,
내화 벽돌);
주문 보내기(기호(),
OP_SELLSTOP,
많이,
또 다른PivotLevelGoesHere ,
미끄러짐,
anotherPivotLevelGoesHere+ (stop_short*Point),
anotherPivotLevelGoesHere -(take_profit*Point),
없는,
마법,
0,
내화 벽돌);
clear_to_send = 거짓;
}
그렇게 생각했는데 확인해주셔서 감사합니다. 피벗을 생성하여 다음으로 향할 곳을 만드는 논리가 확실하지 않습니다.
시간 내 줘서 고마워.
엘리엇 파동 표시기
각 웨이브를 그리고 레이블을 지정하는 엘리엇 웨이브 표시기가 있는 사람이 있습니까? 나는 ew 오실레이터와 다른 것을 보았지만 그들은 트릭을 수행하지 않았습니다. 어쩌면 각 패턴을 그리고 레이블을 지정하는 고조파 패턴 표시기???
그렇게 생각했는데 확인해주셔서 감사합니다. 피벗을 생성하여 다음으로 향할 곳을 만드는 논리가 확실하지 않습니다. 시간 내 줘서 고마워.
다음 링크에서 사용할 수 있는 피벗을 그리는 지표가 많이 있습니다. 또는 EA에서 직접 피벗을 계산할 수도 있지만 그것은 어리석은 일이라고 생각합니다.
http://www.forexmt4.com/
각 웨이브를 그리고 레이블을 지정하는 엘리엇 웨이브 표시기가 있는 사람이 있습니까? 나는 ew 오실레이터와 다른 것을 보았지만 그들은 트릭을 수행하지 않았습니다. 어쩌면 각 패턴을 그리고 레이블을 지정하는 고조파 패턴 표시기???
위의 링크도 도움이 될까요?