こんにちは、皆さん
EAをパスワードで保護するコードは何ですか?
そして、インターバンクFXサーバーでEAを動作させることは可能でしょうか?
どんな助けでも、これは感謝されます。
バイ
shwethaこんにちは、shwethaさん。
とても簡単です。
....
int start()
{
if (password != 123456) //change the 123456 to the password you will give to the user!
{
Alert ("Wrong password! Do you want to cheat my system which I spent my life developing!");
return (0);
....
}そして、EAをコンパイルして楽しんでください。
こんにちは、shwethaさん。
とても簡単です。
....
int start()
{
if (password != 123456) //change the 123456 to the password you will give to the user!
{
Alert ("Wrong password! Do you want to cheat my system which I spent my life developing!");
return (0);
....
}ところで、なぜ自分のEAを守ろうとするのですか?ここでは知識を共有するのではないのですか?
エラー表示
こんにちは、mohammedさん。
返信ありがとうございます。しかし、コンパイルすると以下のエラーが表示されます。
'{' - グローバルスコープでの式は許可されていません。
'\end_of_program' - エンディングブラケット '}' expected
ご回答お待ちしております。
バイバイ
shwetha
こんにちは、Mohammed
ご回答ありがとうございます。しかし、コンパイルすると以下のエラーが表示されます。
'{' - グローバルスコープでの式は許可されていません。
'\end_of_program' - エンディングブラケット '}' expected
ご回答お待ちしております。
バイバイ
シュエタshwethaです。
あくまで、どのようにコードを書くべきかのアイデアです。
まあ、コードはこんなものでしょう(Coders Guruの教育用EA "My First EA "に適用)。
//| My_First_EA.mq4 |
//| Coders Guru |
//| https://www.forex-tsd.com |
//+------------------------------------------------------------------+
#property copyright "Coders Guru"
#property link "https://www.forex-tsd.com"
//---- input parameters
extern double TakeProfit=250.0;
extern double Lots=0.1;
extern double TrailingStop=35.0;
extern string password = "000000";
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
int Crossed (double line1 , double line2)
{
static int last_direction = 0;
static int current_dirction = 0;
if(line1>line2)current_dirction = 1; //up
if(line1<line2)current_dirction = 2; //down
if(current_dirction != last_direction) //changed
{
last_direction = current_dirction;
return (last_direction);
}
else
{
return (0);
}
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if(StringFind(password, "123456", 0) == -1) //change the 123456 to the password you will give to the user!
{
Alert ("Wrong password! Do you want to cheat my system which I spent my life developing!");
return (0);
}
int cnt, ticket, total;
double shortEma, longEma;
if(Bars<100)
{
Print("bars less than 100");
return(0);
}
if(TakeProfit<10)
{
Print("TakeProfit less than 10");
return(0); // check TakeProfit
}
shortEma = iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,0);
longEma = iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0);
int isCrossed = Crossed (shortEma,longEma);
total = OrdersTotal();
if(total < 1)
{
if(isCrossed == 1)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"My EA",12345,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
if(isCrossed == 2)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"My EA",12345,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
return(0);
}
return(0);
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) // long position is opened
{
// should it be closed?
if(isCrossed == 2)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
return(0); // exit
}
// check for trailing stop
if(TrailingStop>0){
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else // go to short position
{
// should it be closed?
if(isCrossed == 1)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
return(0); // exit
}
// check for trailing stop
if(TrailingStop>0){
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
//+------------------------------------------------------------------+なぜ?
あなたはまだ私に返信していません;あなたはEAを守りたいのですか?私たちは知識を共有し、お互いに助け合うためにここにいるのではないでしょうか?(私のフリーコードをお見せするために、Coders GuruのフリーEAを使ったことを思い出してください)?
メタトレーダービルドバージョンでトライアルEAも可能です。
メタトレーダービルドバージョン190でのみEAを実行 !
MT Build != 190 ならば EA を消去 !
--
あるいは、もしあなたがIBで、新しい口座にシステムを提供するなら、そのシステムをあなたのIB口座に関連付けることができます。新しいトレーダーは、あなたとの取引口座でのみシステムを使用することができるようになります。そのトレーダーが、あなたに手数料が発生しないような口座でシステムを使用することから、あなたを守ることができるのです。
なぜPassWordなのでしょうか?それは、コードを保護する方法に違いがあるからです。
CockeyedCowboy
私のビルド191
私のメタトレーダーのバージョンは4ビルド191です。
さて、あなたのEAを保護する方法は何百とあります。
1- 私が提出したコード(ハードコードされたパスワード)を使用することができます。
2- アルゴリズムを作成して、何かを収集し、パスワードと比較することができます。(例えば、口座の証拠金×購入日÷100)。
3- dllを作成してEAに同梱し、そのdllでパスワードを処理することができる(Webサイトに接続してパスワードを取得することができる)。
4- ユーザーの口座番号とEAを紐付けることができる。電子メールでアカウント番号を教えてもらい、それをEAに組み込んでコンパイルし、コンパイルしたものをユーザーに送ります。
5- 指定されたMTのバージョンでのみEAを動作させることができます。
6- EAの実行回数を制限することができます。
7- EAを使用する日数を制限することができます。
8- EAを無料で公開し、気に入ったユーザーがいれば寄付を求めることができます。推奨
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
こんにちは、皆さん
EAをパスワードで保護 するコードは何ですか?
そして、インターバンクFXサーバーでEAを動作させることは可能でしょうか?
どんなヘルプでも結構です。
バイバイ
shwetha